指标类型
Counter、Gauge、Histogram、Summary。
30 分钟
指标类型
Prometheus 数据模型基于 时间序列:(metric_name{labels}, timestamp, value)。理解四种核心类型,才能正确写 PromQL 与告警。
学习目标
- 区分 Counter、Gauge、Histogram、Summary
- 读懂
/actuator/prometheus里http_server_requests_*命名 - 避免对 Counter 直接做
avg()等错误聚合
核心内容
Counter — 只增计数
累计值,重启归零。典型:http_requests_total、业务 course_enroll_total。
# 正确:看增速(每秒请求数)
rate(http_server_requests_seconds_count{uri="/api/tracks"}[5m])
Gauge — 可增可减
瞬时值:内存占用、队列长度、当前连接数。
jvm_memory_used_bytes{area="heap"}
process_cpu_usage
Histogram — 分桶延迟
把观测值落入 bucket,可算 P50/P95/P99。Spring Micrometer 常导出 _bucket、_count、_sum。
histogram_quantile(0.99,
sum(rate(http_server_requests_seconds_bucket[5m])) by (le, uri)
)
Summary — 客户端分位数
类似 Histogram,分位数在应用侧预计算;Prometheus 原生 histogram 更常见,本站以 Histogram 为主。
标签(Labels)
标签是维度,不是数值。Good:http_server_requests_seconds_count{method="GET",status="200"}。Bad:把 user_id 做成 label(基数爆炸)。
| 类型 | 能否直接相减 | 典型 PromQL |
|---|---|---|
| Counter | 否,用 rate/increase | rate(x[5m]) |
| Gauge | 是 | avg(x) |
| Histogram | 用 bucket 算分位 | histogram_quantile |
与 sb-actuator 的 /actuator/metrics 对照:Actuator 是人类可读名,Prometheus 格式是 exposition 文本。
练习
- 在
/actuator/prometheus找一条_total与一条_bucket - 解释为何 Counter 重启后
rate()仍可用(窗口内自动处理 counter reset)