与 Spring Cloud 可观测
对照 sc-observability、分布式追踪直觉。
25 分钟
与 Spring Cloud 可观测
微服务拆分后,单点 /actuator/prometheus 不够看全局。spring-cloud-essentials 的 sc-observability 讲应用侧 Micrometer;本课讲 多服务 + 网关 在 Prometheus/Grafana 上的呈现策略。
学习目标
- 为每个服务配置统一
application/env标签 - 在 Grafana 按 service 维度看 RED(Rate、Errors、Duration)
- 理解 metrics 与 distributed tracing 的分工
核心内容
多 job 抓取
scrape_configs:
- job_name: backend
metrics_path: /actuator/prometheus
static_configs:
- targets: ["backend:8080"]
labels: { service: backend, env: dev }
- job_name: gateway
metrics_path: /actuator/prometheus
static_configs:
- targets: ["gateway:8081"]
labels: { service: gateway, env: dev }
PromQL 跨服务:
sum by (service) (rate(http_server_requests_seconds_count[5m]))
RED 方法
| 字母 | 含义 | PromQL 思路 |
|---|---|---|
| R | Rate | sum(rate(..._count[5m])) by (service) |
| E | Errors | 5xx / total ratio |
| D | Duration | histogram_quantile on _bucket |
网关 metrics 看 入口;backend 看 业务与 DB;两者 error rate 不一致时常指网关超时 vs 服务内部错误。
与 Tracing 配合
Metrics 发现「P99 升」;Jaeger 用同一 trace-id(sc-observability)看 Gateway → user-service → course-service 哪段慢。Logs 带 trace-id 完成三角定位。
Metrics: 发现 anomaly(Grafana 告警)
Traces: 定位 slow span
Logs: 读异常栈与业务参数
部署演进
| 阶段 | 监控方式 |
|---|---|
| 本机 ops lab | compose + static_configs |
| K8s dev | ServiceMonitor(prom-k8s) |
| 生产 GitOps | Helm values 版本化() |