CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Prometheus 与 Grafana 入门/课时/指标类型
RawBlame
课时目录12 节

Prometheus 与 Grafana 入门

  1. 01可观测性入门
  2. 02指标类型
  3. 03Docker 部署
  4. 04抓取配置
  5. 05PromQL 基础
  6. 06Spring Micrometer
  7. 07Grafana 看板
  8. 08告警规则
  9. 09K8s 中的 Prometheus
  10. 10指标 vs 日志
  11. 11与 Spring Cloud 可观测
  12. 12综合练习

指标类型

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/increaserate(x[5m])
Gauge是avg(x)
Histogram用 bucket 算分位histogram_quantile

与 sb-actuator 的 /actuator/metrics 对照:Actuator 是人类可读名,Prometheus 格式是 exposition 文本。

练习

  • 在 /actuator/prometheus 找一条 _total 与一条 _bucket
  • 解释为何 Counter 重启后 rate() 仍可用(窗口内自动处理 counter reset)
  • 列举两个适合 Gauge、两个适合 Counter 的业务例子
  • 小结

    Counter 看增量,Gauge 看当前,Histogram 看分布。 下一课在 ops lab 用 Docker 部署 Prometheus 与 Grafana。

    加载本节练习…
    ← 上一课可观测性入门下一课 →Docker 部署