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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

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

指标 vs 日志

何时查 metrics、何时查 logs。

25 分钟

指标 vs 日志

Prometheus 擅长时间序列与聚合;日志 保留单次请求的上下文与堆栈。两者互补,不能互相替代。

学习目标

  • 按场景选择 metrics 或 logs 作为第一排查手段
  • 知道 trace-id 如何串联 logs 与 traces
  • 理解 metrics 高基数限制与 logs 采样策略

核心内容

决策表

问题首选原因
过去 1 小时 QPS 是否翻倍?Metricsrate() 一眼看趋势
某 userId 报名为何 500?Logs需 stack trace、参数
网关到 DB 哪一跳慢?Traces跨服务时序(见 sc-observability)
磁盘将满?Metricsnode_filesystem_avail_bytes
谁改了配置导致异常?Logs / 审计结构化 log 含操作者

典型工作流

Grafana 告警 HighErrorRate 触发
    → PromQL 确认 uri=/api/enroll 5xx 升高
    → Loki/ELK 搜 trace-id 或 status=500 + uri
    → 定位 NullPointerException 行号
    → 修复发布;metrics 验证 error rate 回落

Spring Boot 默认 logback 输出到 stdout;K8s 用 kubectl logs 或集群日志栈采集(kubernetes-essentials)。

关联字段

sc-observability 强调 trace-id 写入 MDC:

# logback-spring.xml 概念:pattern 含 %X{traceId}
logging:
  pattern:
    console: "%d{ISO8601} [%X{traceId}] %-5level %logger - %msg%n"

metrics 的 uri label 与 logs 的 request path 应对齐命名,便于跳转。

勿用 logs 做聚合

用 grep 数 5xx 行数不如 rate(http_server_requests_seconds_count{status=~"5.."}) 准确且便宜。指标聚合、日志取证 是分工底线。

练习

  • 虚构一次「错误率升但单接口」事故,写 4 步排查顺序(含 metrics 与 logs)
  • 说明为何把 user_id 放进 Prometheus label 危险,放进 log 字段却可行
  • 在 backend 日志里找一条 HTTP 访问 log,对照 Grafana 同一时间点的 QPS

小结

Metrics 回答「多少、多快、多坏」;Logs 回答「这一次发生了什么」。 下一课把 Spring Cloud 可观测性与本 track 串起来。

加载本节练习…
← 上一课K8s 中的 Prometheus下一课 →与 Spring Cloud 可观测