如何使用Telegraf代理设置来定时数据收集

导航至

许多Telegraf和InfluxDB用户常常花费大量时间寻找获取所需数据的最佳平衡点,同时避免写入过多数据,以免在数据库中处理不必要的冗余数据。本文将为您提供对Telegraf数据收集设置的更好理解,并帮助您调整配置。

您可以将本文作为指南,帮助您轻松设置Telegraf从您的设备收集数据的时间和频率,帮助您克服可能对查询次数有限制的端点。

本文仅涵盖Telegraf接收到的数据设置。在另一篇文章中,我将介绍数据是如何从Telegraf传输和发送出去的。

使用interval设置您希望收集指标的频率

间隔设置用于确定Telegraf应多久收集一次指标,它是所有输入的数据收集间隔。您希望更频繁地收集指标,则应将interval设置得越低。

间隔设置可以在代理或插件级别进行设置。您可以在插件级别使用它,如果某个输入应该比其他输入运行得更少或更多。

默认的间隔设置为10秒,每10秒收集一次数据。如果您希望数据收集频率加倍,则可以将设置降低到interval = "5s",使其在每分钟的5秒、10秒、15秒、20秒等时间运行。间隔设置相当直观,但也是数据收集行为的最重要配置之一。

set interval

在上面的图形中,这些设置是interval = "10m"round_interval = true,Telegraf每10分钟在整十秒收集一次数据。

round_interval确定Telegraf是否会四舍五入收集间隔

《round_interval》设置决定Telegraf是否会对收集间隔进行四舍五入。该设置将被设置为布尔值(true/false)。在先前的例子中,当《round_interval》设置为true时,Telegraf会在四舍五入后的10分钟进行收集。如果间隔设置为“5m”,并且《round_interval》被启用,那么Telegraf将分别在:05,10,15,20等时刻进行收集。时间戳在工作与时间序列数据时尤其重要。《round_interval》设置有助于确保所有来源的时间戳在您的所有Telegraf代理中都是对齐和统一的。

然而,如果我们将《round_interval》更改为false,Telegraf将在Telegraf启动时立即收集,然后继续以设置的间隔进行收集。在下面的例子中,我们将设置round_interval = false并保持相同的interval = "10m"。如果我们从小时的第7分钟开始启动Telegraf,Telegraf将立即收集指标,然后继续在小时的第17,27,37,47,57分钟进行收集。

round-interval

使用《collection_jitter》随机偏移收集

如果用户配置了大量的输入指标,则在收集过程中添加一些随机性可以帮助确保目标不会被过载。您可以使用《collection_jitter》来为此特定用例随机偏移收集。此设置可以在代理或输入插件级别使用。如果用于插件级别,每个插件将在收集前暂停一个随机时间。

收集范围在间隔及其加减随机偏移量之间。所以如果我们保持interval10m,并将collection_jitter = "2m",那么每个输入将在8-12分钟间隔之间随机触发。

collection_jitter

使用《collection_offset》精确安排收集

收集偏移量设置是Telegraf 1.22中添加的新代理设置。《collection_offset》设置用于按给定间隔偏移收集。此设置允许您通过手动安排时间来避免许多插件在相同时间查询受限设备,而不是像《collection_jitter》那样可以随机偏移时间。

如果您有在夜间同一时间更新的远程数据,您可以使用《collection_offset》来安排在数据上传后精确收集,并继续以每日的节奏进行。

在此示例中,我们将保持interval = "10m"设置,将round_intervalcollection_jitter恢复到默认值,并将collection_offset = "6m"。无论何时启动Telegraf,我们都会在每小时的第6,16,26,36,46,56分钟收集数据。

Collection_offset

与收集抖动不同,《collection_offset》允许您保持一致的精确间隔,Telegraf在此间隔上进行收集。收集偏移量为您提供受控数据收集以预测时间戳。

设置您的时间戳的《precision》

精度设置不一定控制数据收集方式,但查看时间数据的粒度很重要。通过精度设置,您可以通过指定整数和单位来设置时间戳的精度(例如:1ns1us1ms1s)。您的精度可以从秒到纳秒设置。需要注意的是,精度将不会用于服务输入插件,如statsd。

精度 Unix格式示例时间戳
1ns 1631202459121837307
1us 1631202459121837000
1ms 1631202459121000000
1s 1631202459000000000

了解更多!

观看Josh Powers的此视频,其中他讨论了这些设置以及更多的Telegraf代理设置。

如果您对如何在Telegraf配置中使用这些数据收集设置有任何疑问,请在我们的社区网站Slack上提出。如果您想更深入地了解Telegraf,InfluxDB大学提供了涵盖Telegraf、InfluxDB、Flux等多个主题的完整课程列表。