Prometheus 的四种指标类型是什么?
Prometheus 四种指标类型:Counter(只增计数)、Gauge(可增可减瞬时值)、Histogram(分布直方图)、Summary(分位数摘要)。本文讲清每种类型的语义、适用场景与查询方式。
四种类型:Counter 记只增总量、Gauge 记瞬时水位、Histogram 统计分布(服务端算分位)、Summary 也算分位(客户端算死)。日常用得最多的是前两种 + Histogram。
1. Counter(计数器)
只增不减(重启归零),记录累计量:请求总数、错误总数、完成订单数。查询必配 rate()/increase():
rate(http_requests_total[5m])
2. Gauge(仪表盘)
可增可减的瞬时值:当前内存、队列深度、在线连接数、温度。直接查值即可:
node_memory_available_bytes
3. Histogram(直方图)
把观测值分桶统计,暴露 xxx_bucket{le="..."} 序列。服务端可灵活算任意分位数、可跨实例聚合:
histogram_quantile(0.95, sum(rate(request_duration_seconds_bucket[5m])) by (le))
4. Summary(摘要)
客户端直接算好分位数({quantile="0.95"})再上报。代价:分位数在客户端算死、不能跨实例聚合——多副本服务的 P95 没法合并,因此生产更推荐 Histogram。
选型速查
| 场景 | 类型 |
|---|---|
| 计数(请求/错误) | Counter |
| 水位(内存/队列) | Gauge |
| 延迟/大小分布 | Histogram(优先)/ Summary |
观测云对照
观测云指标完全兼容这四种类型的语义;通过 DataKit 采集的 Prometheus 指标按原类型入库,DQL 提供分位数等聚合函数,Histogram 数据同样支持 P95/P99 计算。
常见问题(FAQ)
Q:Histogram 桶边界怎么定? 围绕 SLO 设:如延迟 SLO 500ms,桶取 50/100/250/500/1000ms 等。
Q:类型用错了能改吗? 客户端库一般禁止同名不同类型;改类型等于换指标名重建。