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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Prometheus 与 Grafana 入门/课时/PromQL 基础
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综合练习

PromQL 基础

rate、sum by、简单告警表达式。

35 分钟

PromQL 基础

PromQL 是 Prometheus 查询语言:从时序里算速率、聚合、分位数,也是告警规则与 Grafana Panel 的共用语法。

学习目标

  • 使用 rate、sum by、histogram_quantile
  • 为 backend 写 HTTP 请求率与 5xx 比例表达式
  • 在 Prometheus UI 与 Grafana 中验证同一查询

核心内容

选择器与速率

# 5 分钟内 GET /api/tracks 的 QPS(Counter 用 rate)
sum(rate(http_server_requests_seconds_count{
  method="GET",
  uri="/api/tracks",
  status=~"2.."
}[5m]))

[5m] 是 range vector;rate 处理 Counter 重启与单调递增。

按维度聚合

# 各 URI 的请求速率 Top
sum by (uri) (rate(http_server_requests_seconds_count[5m]))

without (instance) 可去掉副本维度,多 Pod 部署时常用(见 kubernetes-essentials)。

错误率

sum(rate(http_server_requests_seconds_count{status=~"5.."}[5m]))
/
sum(rate(http_server_requests_seconds_count[5m]))

分母为 0 时 Grafana 可设 No data 处理;告警里可用 > 0.01(1%)阈值。

P99 延迟

histogram_quantile(0.99,
  sum by (le) (rate(http_server_requests_seconds_bucket[5m]))
)

实用函数速查

函数用途
rate(v[5m])Counter 每秒增速
increase(v[1h])窗口内增量
avg_over_time(g[1h])Gauge 一段时间均值
absent(up{job="..."})目标消失告警

先在 Prometheus Graph 调试,再粘贴到 Grafana(prom-grafana)。

练习

  • 写 PromQL:过去 5 分钟 JVM heap 使用 jvm_memory_used_bytes{area="heap"}
  • 对比 rate[1m] 与 rate[5m] 曲线平滑度
  • 为 自定义 Counter(若已加)写 查询
course.enroll
rate

小结

PromQL 核心:rate 处理 Counter,sum by 做维度聚合,histogram_quantile 看尾延迟。 下一课把 Spring Boot 指标完整接到 Prometheus。

加载本节练习…
← 上一课抓取配置下一课 →Spring Micrometer