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