Telegraf 的四种插件

1,868 阅读1分钟

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