linux-sre-handbook

04-事后复盘模板

复盘原则

事故报告模板

# 事故报告 #1234

## 摘要
API 服务在 2025-01-15 14:32-15:05 UTC 期间出现延迟飙升,
p99 延迟从 200ms 升至 5s,影响了约 30% 的请求。

## 时间线 (UTC)
- 14:30 — 部署 v2.3.1 到生产环境
- 14:32 — 监控告警:API p99 > 2s
- 14:34 — IC @zhangsan 响应,确认影响
- 14:37 — 回滚到 v2.3.0,开始恢复
- 14:45 — p99 降至 500ms
- 15:05 — 完全恢复,p99 回到 200ms

## 根因
v2.3.1 引入的新 ORM 查询未使用索引,导致
全表扫描,数据库 CPU 飙升至 100%。

## 影响
- 持续时间: 33 分钟
- 影响用户: ~30% 的 API 请求
- 错误率: 5% 的请求返回 504

## 为什么之前的检查没发现问题
- 性能测试环境的数据量远小于生产 (1万 vs 1000万)
- 慢查询告警阈值设得过高 (10s)

## Action Items
| # | 行动 | 负责人 | 截止 |
|---|------|--------|------|
| 1 | 性能测试使用生产级数据量 | @lisi | 2025-02-01 |
| 2 | 降低慢查询告警阈值到 1s | @wangwu | 2025-01-18 |
| 3 | 在 CI 中增加 SQL 执行计划检查 | @zhaoliu | 2025-01-25 |

复盘会议流程

  1. 事实陈述 (10 min) — IC 按时间线陈述,不解释、不指责
  2. 根因分析 (20 min) — 用 5 Whys 深挖系统层面原因
  3. Action Items (15 min) — 具体的、可追踪的改进行动
  4. 文档化 (5 min) — 明确报告编写和发布

延伸阅读