Telegraf 是一个插件驱动的服务器代理,用于指标数据的收集、处理、聚合以及编写。它基于插件系统,使开发人员可以快速的支持对额外指标的收集。
- 语言:Go
- 特点:内存占用小
- 使用方式:通过插件机制来支持对其他服务的扩展,有丰富的插件库
Telegraf 主要有四种类型的插件:输入插件、处理插件、聚合插件、输出插件,以下是这四种插件的详细介绍。
(示例中以收集 Prometheus 指标,并输出到文件系统为例进行说明)
1. 输入插件(Input Plugins)
用途:从各种数据源收集指标。
在 Telegraf 的插件库查找关于 Prometheus 的输入插件,可以搜索到 Prometheus Input Plugin,按照文档编写 Prometheus 的输入插件如下:
[[inputs.prometheus]]
## An array of urls to scrape metrics from.
urls = ["http://localhost:9090/metrics"]
## Agg some tags.
[inputs.prometheus.tags]
service = "prometheus-demo"
以上配置表明,从 URL( http://localhost:9090/metrics ) 获取指标数据源,并给数据打上 service 为 “prometheus-demo” 的标签。
2. 处理插件(Processor Plugins)
用途:转换、修饰、过来指标。
3. 聚合插件(Aggregatro Plugins)
用途:生成聚合指标,例如对数据求平均值、最大值、最小值等。
4. 输出插件(Output Plugins)
用途:将收集到的指标写入到各种数据存储系统,如: InfluxDB、Kafka、文件等
写入到文件的输出插件是:File Output Plugin
[[outputs.file]]
## Files to write to, "stdout" is a specially handled file.
files = ["stdout", "/tmp/metrics.out"]
## Data format to output.
data_format = "json"
这里可以指定输出数据的格式,相关内容可以看 Telegraf output data formats。