Prometheus Exporter 5
一.概述
上一篇中了解了Exporter的基本用途,本章将对Exporter的类型以及文本数据格式进行说明,讨论如何从官方的Exporter列表获取常用的Exporter,比如用于监控基础设施中服务器性能的node_exporter、wmi_exporter,并对这些获取特定目标监控样本数据的Exporter软件包进行安装集成,最终可以很直观地通过Prometheus web ui浏览采集到的各类监控数据。
exporter本质上是将收集的数据转化为对应的文本格式,并提供HTTP接口,供Prometheus定期采集数据。
二.Exporter类型
通常来说可以将Exporter分为两类:
1)直接采集型。这类Exporter直接内置了相应的应用程序,用于向Prometheus直接提供Target数据支持,这样设计的好处是,可以更好地监控各自系统的内部运行状态,同时也适合更多自定义监控指标的项目实施。例如:k8s等 均内置了用于向Prometheus提供监控数据的端点。
2) 间接采集型。原始监控目标并不直接支持Prometheus,需要我们使用Prometheusr提供的client library编写该监控目标的监控采集程序,用户可以将该程序独立运行,去获取指定的各类监控数据值。例如由于linux操作系统自身并不能直接支持Prometheus,用户无法从操作系统层面上直接提供对Prometheusr的支持,因此单独提供Node exporter,还有数据库或网站HTTP应用类等Exporter。
2.1 文本数据格式
在Prometheus监控环境中,所有返回监控样本数据的Exporter程序,均需要遵守Prometheus规范,即基于文本的数据格式,其特点是具有更好的跨平台和可读性。
从图可以看到,Exporter收集的数据值转化成文本内容展示。基于文本的格式是面向行的,行由换行符(\n)分隔,最后一行必须以换行符结尾,空行被忽略,以#开始的行通常都是注释内容,这些样本数据集合说明如下:
1)以#HELP开始的行,表示metric的帮助与说明注释,可以包含当前监控指标名称和对应的说明信息。
2)以#TYPE开始的行,表示定义metric类型,可以包含当前监控指标名称和指标类型。
3)以非#开始的行,即监控样本数据。
4) 其他一般性注释,方便阅读使用,会被Prometheus忽略。
由于指标的Histogram和Summary类型很难用文本格式表示,因此需要特别注意的是,如果某样本数据metric叫作x,且它的类型正好是Histogram或Summary时,必须满足以上适用约定:
1)样本数据的总和应表示为x_sum
2)样本数据的总量应表示为x_count
3)Summary类型的样本数据的quantile应表示为x{quantile="xx"}
4)Histogram类型的样本分区统计数据应表示为x_bucket{le="xx"}
5)Summary和Histogram中quantile和le必须按由小到大的顺序进行排列。
2.2 获取Exporter
Prometheus Exporter社区很活跃,提供了120+常见的开源组件的Exporter,有些是官方维护的,被标记了(official),所有导出器见链接:
https://prometheus.io/docs/instrumenting/exporters/