在Prometheus监控中,对于采集到服务端的指标,称为metrics数据。metrics指标为时间序列数据,它们按相同的时序,以时间维度来存储连续数据的集合。
metrics有自定义的一套数据格式,不管对于日常运维管理或者监控开发来说,了解并对其熟练掌握都是非常必要的,本文将对此进行详细介绍。
1、metric组成
每个metrics数据都包含几个部分:指标名称、标签和采样数据。
# HELP node_cpu Seconds the cpus spent in each mode.
# TYPE node_cpu counter
node_cpu{
cpu="cpu0",mode="idle"} 362812.7890625
指标名称
用于描述收集指标的性质,其名称应该具有语义化,可以较直观的表示一个度量的指标。名称格式可包括ASCII字符、数字、下划线和冒号。
如:node_cpu
标签
时间序列标签为key/value格式,它们给Prometheus数据模型提供了维度,通过标签可以区分不同的实例,
如:node_network_receive_bytes_total{device="eth0"} #表示eth0网卡的数据
通过标签 ,Prometheus可以在不同维度上对一个或一组数据进行查询处理。标签名称由 ASCII 字符,数字,以及下划线组成, 其中 __ 开头属于 Prometheus 保留,标签的值可以是任何 Unicode 字符,支持中文。标签可来自被监控的资源,也可由Prometheus在抓取期间和之后添加。
采样数据
按照某个时序以时间维度采集的数据,其值包含:
一个float64值
一个毫秒级的unix时间戳
2、Mtrics格式
结合以上这些元素,Prometheus的时间序列统一使用以下格式来表示。
<metric name>{
<label name>=<label value>, ...}
下面为一个node-exporter暴露的数据指标样本(http://192.168.75.162:9100/metrics):
# HELP node_cpu_seconds_total Seconds the cpus spent i