telegraf 学习二 几个概念
telegraf 自身包好了自己处理metrics 的数据模型,以及出炉方法
metrics
Telegraf指标是用于在处理期间对数据建模的内部表示。这些指标完全基于InfluxDB的数据模型,包含四个主要组件:
- 度量名称:度量标准的描述和命名空间。
- 标签:键/值字符串对,通常用于标识度量标准。
- 字段:键入的键/值对,通常包含度量标准数据。
- 时间戳:与字段关联的日期和时间。
此度量标准类型仅存在于内存中,必须转换为具体表示才能传输或查看。Telegraf 为这些转换提供输出数据格式(也称为序列化器)。
Telegraf的默认串行器转换为nfluxDB Line Protocol,,该协议提供Telegraf指标的高性能和一对一直接映射。
聚合以及处理插件
除输入插件和输出插件外,Telegraf还包括聚合器和处理器插件,用于在通过Telegraf时聚合和处理指标。
- 参考图
- 说明
处理器插件在通过时处理指标,并根据它们处理的值立即发出结果。例如,这可能是打印所有指标或向所有通过的指标添加标记。
另一方面,聚合器插件有点复杂。聚合器通常用于发出新的聚合度量,例如运行平均值,最小值,最大值,分位数或标准偏差。因此,
所有聚合器 插件都配置了一个period。这period是每个聚合表示的度量窗口的大小。换句话说,发出的 聚合度量将是过去period秒的聚合值。
由于许多用户只关心他们的聚合而不是每个收集的度量标准,因此还有一个drop_original参数,它告诉Telegraf只发出聚合而不是原始指标。
注意由于聚合器插件仅在其句点内聚合度量标准,因此不支持历史数据。换句话说,如果您的指标时间戳比now() - period过去多,则不会聚合
术语表
- agent
agent是Telegraf的核心部分,它从声明的输入插件收集指标,并根据给定配置启用的插件将指标发送到声明的输出插件
关联内容: input plugin, output plugin - aggregator plugin
Aggregator插件从输入插件接收原始指标并从中创建聚合指标。然后将聚合度量传递给配置的输出插件。
关联内容: input plugin, output plugin, processor plugin - batch size
代理会批量发送指标到输出插件,而不是单独发送。批处理大小控制Telegraf发送到输出插件的每个写批处理的大小
关联内容: output plugin - collection interval
从每个输入插件收集数据的默认全局间隔。每个输入插件的配置都可以覆盖收集间隔。
关联内容: input plugin - collection jitter
用于防止每个输入插件同时收集指标,这可能对系统产生可测量的影响。每个收集间隔,每个输入插件将在收集指标之前在零和收集抖动
之间休眠一段随机时间
关联内容: collection interval, input plugin - flush interval
将数据从每个输出插件刷新到其目标的全局间隔。不应将此值设置为低于收集间隔。
关联内容: collection interval, flush jitter, output plugin - flush jitter
刷新抖动用于防止每个输出插件同时发送写入,这可能会淹没某些数据接收器。每个刷新间隔,每个输出插件将在发出指标之前在零和刷新抖动之间休眠一段随机时间。这有助于在运行大量Telegraf实例时平滑写入峰值。
关联内容: flush interval, output plugin - input plugin
输入插件主动收集指标并将其交付给核心代理,其中聚合器,处理器和输出插件可以对指标进行操作。要激活输入插件,需要在Telegraf的配置文件中启用和配置
关联内容: aggregator plugin, collection interval, output plugin, processor plugin - metric buffer
当写入输出插件失败时,指标缓冲区会缓存各个指标标准。Telegraf将在成功写入输出后尝试刷新缓冲区。当此缓冲区填满时,将首先删除最旧的指标标准
关联内容: output plugin - output plugin
输出插件将指标传递到其配置的目标。要激活输出插件,需要在Telegraf的配置文件中启用和配置。
关联内容: aggregator plugin, flush interval, input plugin, processor plugin - precision
精度配置设置确定从输入插件接收的点中保留多少时间戳精度。所有传入的时间戳都被截断为给定的精度。然后,Telegraf用零填充截断的时间戳以创建纳秒时间戳; 输出插件将以纳秒为单位发出时间戳。有效精度为ns,us或者µs,ms和s。
例如,如果精度设置为ms,则纳秒时间戳1480000000123456789将被截断为1480000000123毫秒精度,然后用零填充以生成新的,不太精确的纳秒时间戳1480000000123000000。输出插件不会进一步改变时间戳。服务输入插件忽略精度设置。
关联内容: aggregator plugin, input plugin, output plugin, processor plugin, service input plugin - processor plugin
处理器插件转换,修饰和/或过滤由输入插件收集的指标,将转换后的指标传递给输出插件。
关联内容: aggregator plugin, input plugin, output plugin - service input plugin
service input plugin是在Telegraf代理运行时以被动收集模式运行的输入插件。他们在套接字上侦听已知的协议输入,或者在将它们提供给Telegraf代理之前将其自己的逻辑应用于摄取的度量标准
关联内容: aggregator plugin, input plugin, output plugin, processor plugin
说明
benthos 基于golang 的pipeline 数据处理与telegraf 是很类似的,而且也是一个不错的数据收集处理工具