在用telegraf对接influxdb的过程中,发现写入间隔每次都是10秒,虽然input的数据是每秒一个metric。
一番搜索之后,发现是agent的flush interval这个参数默认是10秒。可以修改成需要的值,例如
[agent]
flush_interval = “5s”
下面试着翻译一下telegraf的一位maintainer的话,有一些单词就保留下来了
你可以将input归为两类:polling(定期)和事件驱动(服务输入)。interval就是polling inputs插件获取数据的时间间隔。
所有搜集到的数据都是是带时间戳的,这意味着不管这些数据过了多久发给output,当初它被取样的时间都已经记录下来了。(换句话说,写入output是按照input获取到数据时候的时间戳,而不是写到output的时间戳)
flush_interval表示的是output写入数据的时间间隔。这个是正常情况下,每过多久数据被写到output。metric_batch_size也是用在这里,只要积攒的metrics数量达到size,就会立即flush。换句话说,要么是因为收集到的metris数量超过size,要么是flush_interval时间到了,无论哪个条件先满足,telegraf会被触发写数据。