对于上述情况,用户可以选择使用独立运行的 Exporter。除了用户自行实现外,Prometheus 社区也提供了
许多独立运行的 Exporter,常见的有 Node Exporter、MySQL Server Exporter。更多详情可以到官网了
解:https://prometheus.io/docs/instrumenting/exporters/
Exporter 接口数据规范
Exporter 通过 HTTP 接口以文本形式向 Prometheus 暴露样本数据,格式简单,没有嵌套,可读性强。每个监
控指标对应的数据文本格式如下:
# HELP <监控指标名称> <监控指标描述># TYPE <监控指标名称> <监控指标类型><监控指标名称>{ <标签名
称>=<标签值>,<标签名称>=<标签值>...} <样本值1> <时间戳><监控指标名称>{ <标签名称>=<标签值>,<标
签名称>=<标签值>...} <样本值2> <时间戳>...
以 # 开头的行,如果后面跟着"HELP",Prometheus 将这行解析为监控指标的描述,通常用于描述监控数
据的来源;
以 # 开头的行,如果后面跟着"TYPE",Prometheus 将这行解析为监控指标的类型,支持的类型有:
Counter、Gauge、Histogram、Summary、Untyped。在往期文章中介绍过 Prometheus 在存储数据时
是不区分数据类型的,所以当你在犹豫一个数据类型应该用 Counter 或 Gauge 时,可以试试 Untype;
以 # 开头的行,如果后面没有跟着"HELP"或"TYPE",则 Prometheus 将这行视为注释,解析时忽略;
如果一个监控指标有多条样本数据,那么每条样本数据的标签值组合应该是唯一的;
每行数据对应一条样本数据;
时间戳应为采集数据的时间,是可选项,如果 Exporter 没有提供时间戳的话,Prometheus Server 会在拉
取到样本数据时将时间戳设置为当前时间;
Summary 和 Histogram 类型的监控指标要求提供两行数据分别表示该监控指标所有样本的和、样本数量,
命名格式为:<监控指标名称>_sum、<监控指标名称>_count;
Summary 类型的样本数据格式:
1. 根据 Exporter 提供的分位点,样本会被计算后拆分成多行数据,每行使用标签"quantile"区
分,"quantile"的值包括 Exporter 提供的所有分位点。
2. 数据的排列顺序必须是按照标签"quantile"值递增;
3. 举个栗子:一个名为x的监控指标,提供的分位点为:0.5, 0.9, 0.99,那么它暴露给 Prometheus 的接口数
据格式如下:
# HELP x balabala# TYPE x summaryx{quantile="0.5"} value1x{quantile="0.9"}
value2x{quantile="0.99"} value3x_sum sum(values)x_count count(values)
Histogram 类型的样本数据格式:
1. 根据 Exporter 提供的 Bucket 值,样本会被计算后拆分成多行数据,每行使用标签"le"区分,"le"为
Exporter 提供的 Buckets;
2. 数据的排列顺序必须是按照标签"le"值递增;
3. 必须要有一行数据的标签 le="+Inf",值为该监控指标的样本总数;
4. 举个栗子:一个名为 x 的监控指标,提供的 Buckets 为:20, 50, 70,那么它暴露给 Prometheus 的接口
数据格式如下:
# HELP x The temperature of cpu# TYPE x histogramx_bucket{le="20"} value1x_bucket{le="50"}
value2x_bucket{le="70"} value3x_bucket{le="+Inf"} count(values)x_sum sum(values)x_count
count(values)
评论