请参与 Prometheus 用户调研(2026 年 3 月版) ,帮助社区确定未来开发工作的优先级!

指标类型

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 分数 。在操作桶时,请记住直方图是累积的 。有关直方图使用和与摘要之间差异的详细信息,请参阅直方图和摘要

注意从 Prometheus v2.40 开始,实验性地支持原生直方图。原生直方图只需要一个时间序列,其中包含动态数量的桶,以及观测值的总和与计数。原生直方图以极低的成本提供更高的分辨率。一旦原生直方图更接近稳定功能,将提供详细文档。
注意从 Prometheus v3.0 开始,经典直方图的 le 标签值在摄取期间会进行规范化,以遵循 OpenMetrics 标准数字 的格式。

直方图客户端库使用文档

总结

直方图类似,摘要(summary)对观测值(通常是请求持续时间和响应大小等)进行采样。它也提供观测值的总计数和所有观测值的总和,但它会在滑动时间窗口内计算可配置的分位数。

一个以 <basename> 作为基本指标名称的摘要在抓取期间会暴露多个时间序列

  • 观测事件的流式 φ 分位数 (0 ≤ φ ≤ 1),暴露为 <basename>{quantile="<φ>"}
  • 所有观测值的总和,暴露为 <basename>_sum
  • 已观测事件的数量,暴露为 <basename>_count

有关 φ 分位数、摘要使用以及与直方图之间差异的详细解释,请参阅直方图和摘要

注意从 Prometheus v3.0 开始,quantile 标签的值在摄取期间会进行规范化,以遵循 OpenMetrics 标准数字 的格式。

摘要客户端库使用文档

本页内容