Telegraf 是一款开源的数据采集工具,通过插件化设计提供灵活组合的指标收集、处理、聚合和写出能力。它的核心设计包含四种基础插件,输入(input)、处理(processor)、聚合(aggregator) 和输出(output)。

Telegraf 插件系统

输入(Input) 插件

输入插件支持从系统、服务及第三方 API 收集指标。根据服务特性的不同,消息队列类输入插件接收被推送的指标,接口类输入插件主动拉取指标。执行拉取策略的输入插件由 interval 选项决定拉取指标的时间间隔,而接受推送的输入插件事实上无视了 interval 并遵照事件驱动模式。

处理(Processor) 插件

处理插件对收集到的指标数据流执行一些简单处理,比如指标字段转型、重命名、过滤等。所有的处理插件串行执行,由 order 选项决定插件在插件列表中的顺序。

聚合(Aggregator) 插件

聚合插件用于创建聚合指标,比如平均值、最小值、最大值等。聚合插件由 period 选项构建时间窗口,对窗口内的所有指标数据做聚合操作。

对于聚合插件创建的聚合指标,也将像输入插件采集的指标一样,由排序后的处理插件串行执行后交付到输出插件。

输出(Output) 插件

输出插件负责将采集、处理和聚合后的指标,写出到各式数据库、服务或消息队列。

Telegraf 插件系统执行流

Telegraf Plugins System Execution Flow