如何使用 Telegraf Agent 设置来定时数据采集
作者:Samantha Wang / 用例,产品,开发者
2022 年 4 月 12 日
导航至
许多 Telegraf 和 InfluxDB 用户经常花费大量时间来找到完美的平衡点,既能获取他们想要的数据,又不会写入过多数据,从而避免在数据库中处理不必要的数据。这篇博文将帮助您更好地理解 Telegraf 的数据采集设置,并帮助您微调配置。
您可以将这篇文章作为指南,帮助您轻松设置 Telegraf 从设备收集数据的时间和频率,从而帮助您克服可能对可执行查询数量有限制的端点。
这篇文章将只介绍 Telegraf 接收数据的设置。在另一篇文章中,我将介绍数据如何从 Telegraf 传输和发送出去。
使用 interval
设置指标收集频率
Interval 设置用于确定 Telegraf 收集指标的频率,是所有输入的数据采集间隔。您希望收集指标的频率越高,interval
设置就应该越低。
interval
设置可以在 agent 或插件级别设置。如果某个输入应该比其他输入运行频率更低或更高,您可以在插件级别使用它。
默认的 interval 设置为 10 秒,每 10 秒收集一次数据。如果您希望数据收集频率加倍,您可以将设置降低到 interval = "5s"
,使其在每分钟的 5、10、15、20 秒等时刻运行。interval 设置相当简单,但也是数据采集行为最重要的配置之一。
在上面的图表中,使用 interval = "10m"
和 round_interval = true
设置,Telegraf 每 10 分钟在整十分钟时刻收集数据。
round_interval
确定 Telegraf 是否会对齐采集间隔
round_interval
设置确定 Telegraf 是否会对齐采集间隔。此设置将设置为布尔值 (true
/false
)。在之前的示例中,当 round_interval
设置为 true 时,Telegraf 将在整十分钟时刻收集。如果 interval 设置为 “5m”,并且 round_interval
启用,则 Telegraf 将在 :05、:10、:15、:20 等时刻收集。时间戳在使用时间序列数据时尤为重要。round interval
设置有助于确保来自所有来源的时间戳在所有 Telegraf agent 中对齐和统一。
但是,如果我们将 round_interval
更改为 false
,Telegraf 会在 Telegraf 启动时立即收集,然后按照设置的 interval
继续收集。在下面的示例中,我们将 round_interval = false
,并保持相同的 interval = "10m"
。如果我们在一小时的第 7 分钟启动 Telegraf,Telegraf 将立即收集指标,然后继续每 10 分钟收集一次,即每小时的 17、27、37、47、57 分钟。
使用 collection_jitter
随机偏移采集
如果用户配置了大量输入指标,在采集过程中添加一些随机性可以帮助确保目标不会过载。您可以为此用例使用 collection_jitter
,以随机抖动采集。此设置可以在 agent 或输入插件级别使用。如果在插件级别使用,则每个插件将在设置的抖动范围内随机休眠一段时间,然后再进行采集。
用于采集的范围介于 interval
和 interval
加上或减去抖动量之间。因此,如果我们保持 interval
为 10m
,并将 collection_jitter = "2m"
,则每个输入将在 8-12 分钟的间隔内随机触发。
使用 collection_offset
精确调度采集
collection_offset
设置是 Telegraf 1.22 中新增的 agent 设置。collection_offset
设置用于将采集偏移给定的间隔。此设置允许您通过手动安排时间来避免许多插件同时查询受限设备,这与 collection_jitter
可以随机偏移时间不同。
如果您有远程数据在午夜同时更新,您可以使用 collection_offset
在数据上传后精确地安排采集,并每天按此节奏继续执行。
在本例中,我们将保持 interval = "10m"
设置,将 round_interval
和 collection_jitter
恢复为默认值,并将 collection_offset = "6m"
。无论我们何时启动 Telegraf,我们都将在每小时的 6、16、26、36、46、56 分钟收集数据。
此外,与 collection jitter
不同,collection offset
允许您保持 Telegraf 采集的间隔一致且精确。Collection offset
为您提供可控的数据采集,以获得可预测的时间戳。
设置时间戳的 precision
precision
设置不一定控制数据的采集方式,但它对于查看定时数据的粒度非常重要。使用 precision
设置,您可以通过指定整数和单位(例如:1ns
、1us
、1ms
和 1s
)来设置时间戳的精度。您的精度可以设置为秒到纳秒之间的任何值。重要的是要注意,precision
不会用于服务输入插件,例如 statsd。
精度 | Unix 格式的时间戳示例 |
1纳秒 |
1631202459121837307 |
1微秒 |
1631202459121837000 |
1毫秒 |
1631202459121000000 |
1秒 |
1631202459000000000 |
了解更多!
观看 Josh Powers 的这段视频,他讨论了其中一些设置以及更多 Telegraf agent 设置。
如果您对如何在 Telegraf 配置中使用这些数据采集设置有任何疑问,请随时访问我们的社区网站或 Slack 联系我们。如果您想深入了解 Telegraf,InfluxDB 大学提供了涵盖 Telegraf、InfluxDB、Flux 等内容的完整课程列表。