If you updated your containered Telegraf instance lately, you may get a warning to increase the lockable memory limit.
2024-08-02T17:08:46Z W! Insufficient lockable memory 64kb when 348kb is required. Please increase the limit for Telegraf in your Operating System!
2024-08-02T17:08:46Z W! Insufficient lockable memory 64kb when 84kb is required. Please increase the limit for Telegraf in your Operating System!
2024-08-02T17:08:46Z W! Insufficient lockable memory 64kb when 228kb is required. Please increase the limit for Telegraf in your Operating System!
This solution doesn't apply to Kubernetes installations because ulimit support is missing.
If you work with a docker compose file, edit your service accordingly. The memlock
ulimit has to be set to at least the required size in bytes.
services: telegraf: image: telegraf:1.31-alpine restart: on-failure volumes: - ./conf/telegraf.conf:/etc/telegraf/telegraf.conf env: - "INFLUX_TOKEN=d2lraS5kZWZlY3QuY2ggaXMgYXdlc29tZQ==" ulimits: memlock: 524288
The same configuration for a docker run
command.
docker run --restart on-failure -v ./conf/telegraf.conf:/etc/telegraf/telegraf.conf:ro --env INFLUX_TOKEN=d2lraS5kZWZlY3QuY2ggaXMgYXdlc29tZQ== --ulimit memlock=524288 telegraf:1.31-alpine
How to select the correct value? Multiply the required kb size with 1024.
this could be wrong information. According to the limits.conf(5) man page the expected value is in KB units. ⇒ I have to test this. Maybe my limits are set too high at the moment.
Required | Calculation | memlock |
---|---|---|
84kb | 84*1024 | 86016 |
228kb | 228*1024 | 233472 |
348kb | 348*1024 | 356352 |
512kb | 512*1024 | 524288 |