下载工作台
项目运维与部署

可观测性实战

试读上半部分 · 解锁后可读全文

第 7 章 · 可观测性实战

本章目标:落地 指标(Metrics)→ 日志(Logs)→ 告警(Alerts)→ SLO 四层可观测性;为 demo-api 建 Dashboard 与告警规则;用 traceId 串联日志;告别「用户先于我们发现问题」。

学时建议:2.5~3 小时(含 2 小时跟练)

前置小紫云计算 · 运维 → 监控告警架构 ch13 SLO 理论;ops-deploy ch05 日检告警项。


7.1 场景说明

项目内容
背景demo-mall prod 发布 1.4.3 后用户反馈「偶发慢」,但运维 Dashboard 空白
痛点只有 系统容器 肉眼看日志;无 5xx 率告警;无法关联 Jenkins 发布时间
你的角色SRE 见习,负责 demo-api 可观测性基线
本章任务Dashboard ≥6 面板;2 条告警 staging 触发;traceId 串联 2 服务日志
约束告警必须 可操作(每条有 runbook 链接)

7.2 学完你能

能力验收标准
黄金三角说清 Metrics / Logs / Traces 分工
RED 指标Rate、Errors、Duration 各举 PromQL
配置告警编写 HighErrorRate、HighP99 规则
Dashboarddemo-api ≥6 面板含发布标注
日志查询kubectl / Loki / AI 助手三种方式
SLO计算错误预算与冻结发布条件

7.3 可观测性黄金三角

Metrics(发生了什么)──┐
Logs(为什么)─────────┼──► 定位根因
Traces(路径)─────────┘
信号工具(小紫生态)关键问题
MetricsPrometheus + GrafanaQPS、延迟、错误率
LogsLoki / 系统容器 日志异常栈、业务上下文
TracestraceId + 网关日志慢请求路径

Google SRE 四大黄金指标

指标含义运维动作
Latency延迟优化/扩容/回滚
Traffic流量容量规划 ch10
Errors错误回滚/修 bug
Saturation饱和度HPA/加节点

RED 方法(服务级):Rate、Errors、Duration。


7.4 逐步跟练 · 第一步:Prometheus 告警规则(约 40 分钟)

运维 → 监控告警 → 规则管理 导入或编辑:

groups:
  - name: demo-api
    rules:
      - alert: HighErrorRate
        expr: |
          sum(rate(http_requests_total{job="demo-api",status=~"5.."}[5m]))
          / sum(rate(http_requests_total{job="demo-api"}[5m])) > 0.01
        for: 5m
        labels:
          severity: critical
          service: demo-api
        annotations:
          summary: "demo-api 5xx 率 > 1%"
          runbook: "https://wiki.internal/runbooks/high-error-rate"
      - alert: HighP99Latency
        expr: |
          histogram_quantile(0.99,
            sum(rate(http_request_duration_seconds_bucket{job="demo-api"}[5m])) by (le)
          ) > 0.5
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "demo-api P99 > 500ms"

字段说明

字段含义
for: 5m条件持续 5min 才告警,防抖
severity: critical映射 P0/P1(ch05)
runbookOn-call 第一步点哪里

你应该看到监控告警 → 规则 列表显示 2 条规则,状态 Active。


7.5 逐步跟练 · 第二步:Grafana Dashboard(约 45 分钟)

运维 → 监控告警 → Dashboard 新建 demo-mall / demo-api

面板 #名称用途查询提示
1QPS流量趋势sum(rate(http_requests_total[5m]))
2P50/P95/P99体验histogram_quantile
35xx 率可用性5xx/total
4Pod CPU容量container_cpu_usage
5Pod 内存OOM 预警container_memory_working_set
6发布标注变更关联Annotation: deploy tag

发布标注技巧:每次 prod 发布后在 Dashboard 加 vertical line,备注 1.4.3 @ 22:15

你应该看到:6 面板有数据;时间范围选 Last 6 hours 可见趋势。


以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。