深色模式
指标类型 Counter/Gauge/Histogram
Counter、Gauge、Histogram、Summary 各管什么?一篇文章配例子讲清,别再选错类型。
适用环境
- 已安装 Prometheus 与 node_exporter
- 能在 Graph 页面执行 PromQL 验证
bash
# 查看指标类型声明(HELP/TYPE)
curl -s http://localhost:9100/metrics | grep -E '^# TYPE' | head1
2
2
操作步骤
1. Counter:只增不减的计数器
适合请求数、错误数、字节数。重启可能归零,所以永远用 rate() 看增量。
promql
# 每秒请求数
rate(http_requests_total[5m])1
2
2
2. Gauge:可升可降的瞬时值
适合 CPU 使用率、内存占用、温度、在线人数。
promql
# 当前内存使用字节
node_memory_MemAvailable_bytes1
2
2
3. Histogram:分桶统计
把请求耗时按桶(le)计数,可算分位数与平均数。
promql
# P95 耗时(需应用暴露 _bucket)
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))1
2
2
4. Summary:客户端算分位
客户端直接算好分位数,节省服务端算力,但无法跨实例聚合。
promql
# 直接读分位(_quantile)
http_request_duration_seconds{quantile="0.99"}1
2
2
验证
promql
# 用 node_exporter 验证两种类型
rate(node_cpu_seconds_total[5m]) # Counter 派生
node_load1 # Gauge 直接读1
2
3
2
3
常见坑
Counter 别直接减
Counter 只应用 rate/irate/increase 取增量,直接对两个时间点相减会踩到重启归零的坑。
Histogram 桶边界要合理
默认桶覆盖不到你的真实耗时区间,分位数会失真,需按业务设置 le。