Telegraf Input - amqp_consumer ACK


I’m testing around Telegraf with an amqp_consumer input and a InfluxDB (single node) output (using Docker on OS X).
Everything was working fine except when I tested some failure scenarios.

If InfluxDB server stops, Telegraf cannot write the data and therefore the buffer is not cleared. But the messages are still ACKed on the RabbitMQ side. So if Telegraf would go down, messages already delivered would be lost.

Is there anyway to tell Telegraf input plugin amqp_consumer to ACK messages only when data is written ?

There is a max_undelivered_messages property (plugin README) but it seems buggy atm :

E! Error parsing /etc/telegraf/telegraf.conf, line 10: field corresponding to ‘max_undelivered_messages’ is not defined in ‘*amqp_consumer.AMQPConsumer’

This should be addressed in 1.9.0 which is currently in available as a release candidate. The max_undelivered_messages option was only added for 1.9 as well. If you could try out the latest pre-release, currently 1.9.0-rc2, and let us know if you run into any issues or if it works well that would be very much appreciated.

After testing version 1.9.0-rc2 (still inside a Docker container), everything work fine and as expected using max_undelivered_messages :grin:

Is there a release date for the 1.9.0 ?

1 Like

That is great to hear, we are planning to release early next week (unless a severe bug is found).