Prometheus 客户端库提供四种核心指标类型。目前这些类型仅在客户端库(用于提供针对特定类型使用的定制 API)和传输协议中进行区分。Prometheus 服务器尚未利用类型信息,而是将所有数据扁平化为无类型的时间序列。这在未来可能会改变。
Counter(计数器)
counter 是一个累积指标,表示一个单调递增的计数器,其值只能增加或在重启时重置为零。例如,你可以使用计数器来表示已服务的请求数、已完成的任务数或错误数。
不要使用计数器来暴露可能减少的值。例如,不要使用计数器来表示当前运行的进程数;应该使用仪表盘(gauge)。
各客户端库的计数器使用文档:
Gauge(仪表盘)
gauge 是一个表示单个数值的指标,该数值可以任意上升和下降。
仪表盘通常用于测量值,如温度或当前内存使用量,也用于可以上下波动的"计数",如并发请求数。
各客户端库的仪表盘使用文档:
Histogram(直方图)
histogram 对观测值(通常是请求持续时间或响应大小等)进行采样,并在可配置的桶中对其进行计数。它还提供所有观测值的总和。
基本指标名称为 <basename> 的直方图在抓取期间暴露多个时间序列:
- 观测桶的累积计数器,暴露为
<basename>_bucket{le="<upper inclusive bound>"} - 所有观测值的总和,暴露为
<basename>_sum - 已观测事件的计数,暴露为
<basename>_count(与上面的<basename>_bucket{le="+Inf"}相同)
使用 histogram_quantile() 函数从直方图甚至直方图的聚合中计算分位数。直方图也适合计算 Apdex 评分。在对桶进行操作时,请记住直方图是累积的。有关直方图用法以及与 Summary 的区别的详细信息,请参阅直方图和摘要。
注意:从 Prometheus v2.40 开始,提供了对原生直方图的实验性支持。原生直方图只需要一个时间序列,除了观测值的总和和计数外,还包括动态数量的桶。原生直方图以极低的成本实现了更高的分辨率。当原生直方图更接近成为稳定功能时,将提供详细文档。
注意:从 Prometheus v3.0 开始,经典直方图的 le 标签值在摄取期间会进行标准化,以遵循 OpenMetrics 规范数字格式。
各客户端库的直方图使用文档:
Summary(摘要)
与 histogram 类似,summary 对观测值(通常是请求持续时间和响应大小等)进行采样。虽然它也提供观测值的总计数和所有观测值的总和,但它会在滑动时间窗口上计算可配置的分位数。
基本指标名称为 <basename> 的摘要在抓取期间暴露多个时间序列:
- 流式 phi-分位数(0 <= phi <= 1)的观测事件,暴露为
<basename>{quantile="<phi>"} - 所有观测值的总和,暴露为
<basename>_sum - 已观测事件的计数,暴露为
<basename>_count
有关 phi-分位数、摘要用法以及与直方图的区别的详细解释,请参阅直方图和摘要。
注意:从 Prometheus v3.0 开始,quantile 标签的值在摄取期间会进行标准化,以遵循 OpenMetrics 规范数字格式。
各客户端库的摘要使用文档: