1

Prometheus的生态中,Exporter扮演了重要的角色。对于“知名”应用程序,服务器或数据库,Prometheus官方提供了足够多的Exporters。这也是Prometheus监视目标的主要方式。

exporters-prometheus.png

当然当你需要监控的中间件或是数据库类型比较少的时候,并没有什么问题。

但是当你的监控系统扩展到一定规模的时候,你可能需要维护几百种exporter,数量甚至是到了几万个的时候,这时候你大多的精力浪费在维护和升级exporter,甚至是管理他们的部署。

如果没有深切体会,请看下面官方包括社区提供的诸多Exporters吧!

Databases

Hardware related

Issue trackers and continuous integration

Messaging systems

Storage

HTTP

APIs

Logging

此时本文的主角Telegraf 该出场了。

Telegraf

Telegraf是一种用Go语言编写的服务端采集,处理,聚合,输出metrics的组件。它由Influxdata开发,却不仅仅支持influxdb,Telegraf的输出很多,其中就包括了Prometheus。

设计目标是使插件系统的内存占用最小,以便社区中的开发人员可以轻松添加对收集指标的支持。

Telegraf是插件驱动的,具有4种不同的插件类型的概念:

  • 输入插件从系统,服务或第三方API收集指标
  • 处理器插件转换,修饰和过滤指标
  • 聚合插件可创建聚合指标(例如,平均值,最小值,最大值,分位数等)
  • 输出插件将指标写入各个目标

目前支持的采集数据源如下:

基本上涵盖了主流的使用场景。

使用Telegraf的好处

  • 采用server端采集方式之后,运维将节省大量的维护工作,统一升级。
  • 如果是场景更加丰富的话,Telegraf对接配置中心。相比更改诸多Exporter代码,简单很多。
  • Telegraf pipeline的架构,可以在processor这个环节,提前实现一下metrics的预聚合,可以很大程度上降低Prometheus的处理数据压力。

iyacontrol
1.4k 声望2.7k 粉丝

专注kubernetes,devops,aiops,service mesh。