Telegraf 是一款开源的数据采集工具,通过插件化设计提供灵活组合的指标收集、处理、聚合和写出能力。它的核心设计包含四种基础插件,输入(input)、处理(processor)、聚合(aggregator) 和输出(output)。
Telegraf 插件系统
输入(Input) 插件
输入插件支持从系统、服务及第三方 API 收集指标。根据服务特性的不同,消息队列类输入插件接收被推送的指标,接口类输入插件主动拉取指标。执行拉取策略的输入插件由 interval
选项决定拉取指标的时间间隔,而接受推送的输入插件事实上无视了 interval
并遵照事件驱动模式。
处理(Processor) 插件
处理插件对收集到的指标数据流执行一些简单处理,比如指标字段转型、重命名、过滤等。所有的处理插件串行执行,由 order
选项决定插件在插件列表中的顺序。
聚合(Aggregator) 插件
聚合插件用于创建聚合指标,比如平均值、最小值、最大值等。聚合插件由 period
选项构建时间窗口,对窗口内的所有指标数据做聚合操作。
对于聚合插件创建的聚合指标,也将像输入插件采集的指标一样,由排序后的处理插件串行执行后交付到输出插件。
输出(Output) 插件
输出插件负责将采集、处理和聚合后的指标,写出到各式数据库、服务或消息队列。