可观测性入门
Metrics / Logs / Traces 三支柱;与 Actuator 关系。
30 分钟
可观测性入门
线上排障不能只靠 SSH 看日志。可观测性(Observability) 用系统对外暴露的信号回答「现在发生了什么、为什么慢、影响面多大」。本 track 聚焦 指标(Metrics) 链路:Prometheus 采集 → PromQL 查询 → Grafana 展示。
学习目标
- 区分 Metrics、Logs、Traces 三支柱及各自适用场景
- 理解 Pull 模型:Prometheus 定期抓取应用暴露的 HTTP 端点
- 知道 CodeRoadMap 后端如何通过 Actuator 成为监控目标
核心内容
三支柱速览
| 支柱 | 典型工具 | 回答的问题 |
|---|---|---|
| Metrics | Prometheus、Grafana | QPS 多少?P99 延迟?错误率? |
| Logs | Loki、ELK | 某次请求具体报了什么错? |
| Traces | Jaeger、Zipkin | 跨服务调用哪一跳最慢? |
本课与 sc-observability 互补:那边讲 Micrometer 出指标,这边讲 运维侧如何存、查、看。
Pull vs Push
Prometheus 默认 拉取(scrape) 目标 /metrics 或 /actuator/prometheus,而非应用主动推送。好处:配置集中、目标挂了能立刻发现 up==0。
CodeRoadMap backend :8080
└─ GET /actuator/prometheus ← Prometheus 每 15s 拉一次
└─ 写入 TSDB(时序库)
└─ Grafana 查询展示
在本站实验环境
ops lab 提供 Prometheus(:9090)与 Grafana(:3000)容器,与本地 backend 同网段。先确保 backend 已暴露 prometheus 端点(见 prom-spring)。
# ops lab 概念拓扑(compose 见 prom-install)
services:
prometheus:
ports: ["9090:9090"]
grafana:
ports: ["3000:3000"]
backend:
ports: ["8080:8080"]
练习
- 画一张「浏览器 → backend → Prometheus → Grafana」数据流图
- 说明为何 metrics 适合看趋势,logs 适合查单次异常
- 在 后端路线图 找到 Micrometer / 可观测性相关节点
小结
指标是可观测性的量化入口;Prometheus 负责存时序,Grafana 负责可视化。 下一课讲 Counter、Gauge 等四种指标类型。