Prometheus 四大指标类型全解析

Prometheus 的 Exporter 输出的数据遵循其独特的指标格式规范。要真正掌握 Prometheus,理解其四种核心指标类型——**Counter, Gauge, Histogram, 和 Summary**——是必不可少的第一步。本文将详细拆解它们的特点和适用场景。

add_circle_outline1. Counter (计数器)

一句话定义:一个只增不减的累加器,如同汽车的总里程表。

特点

常见用途

示例

# HELP http_requests_total Total number of HTTP requests
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027
http_requests_total{method="post",code="400"} 3

注意: 不要用 Counter 来记录可增可减的数值,比如当前温度或内存使用量。

speed2. Gauge (仪表盘)

一句话定义:一个可以任意上下波动的瞬时值,如同汽车的速度表。

特点

常见用途

示例

# HELP temperature_celsius Current temperature in Celsius
# TYPE temperature_celsius gauge
temperature_celsius{location="server-room"} 23.7

bar_chart3. Histogram (直方图)

一句话定义:对一段时间内的观测值(如延迟)进行采样,并将其分布到预设的桶(buckets)中进行统计。

特点

常见用途

示例

# HELP http_request_duration_seconds HTTP request latency distribution
# TYPE http_request_duration_seconds histogram
http_request_duration_seconds_bucket{le="0.1"} 300
http_request_duration_seconds_bucket{le="0.5"} 450
http_request_duration_seconds_bucket{le="1"}   490
http_request_duration_seconds_bucket{le="+Inf"} 500
http_request_duration_seconds_sum 123.4
http_request_duration_seconds_count 500

解读: 上述示例表示,共有500次请求。其中,延迟≤0.1s的有300次,≤0.5s的有450次。总延迟为123.4秒。

stacked_line_chart4. Summary (摘要)

一句话定义:与 Histogram 类似,但它直接在客户端计算并暴露**分位数**(Quantiles),而不是桶。

特点

常见用途

示例

# HELP http_request_duration_seconds HTTP request latency summary
# TYPE http_request_duration_seconds summary
http_request_duration_seconds{quantile="0.5"} 0.25
http_request_duration_seconds{quantile="0.9"} 0.42
http_request_duration_seconds{quantile="0.99"} 0.78
http_request_duration_seconds_sum 123.4
http_request_duration_seconds_count 500

解读: 50%的请求延迟在0.25秒以下,90%的请求在0.42秒以下。

balance⚖️ Histogram vs. Summary 对比与总结

两者都用于测量延迟等分布性指标,但核心区别在于**计算和聚合的方式**。

一句话总结

特性 📊 Histogram 📉 Summary
核心机制 基于桶(Buckets)的计数 基于客户端计算的分位数
服务端聚合 ✅ **可聚合** ❌ **不可聚合**
分位数计算 需在 Prometheus 服务端通过 histogram_quantile() 函数估算 ✅ 在客户端直接计算并暴露
资源开销 服务端计算开销较高 客户端计算开销较高
典型用途 分布式系统中的 SLA/SLO 监控、整体延迟分析 单个节点的性能调优、黑盒监控

可视化对比