SRE 週報模板(Prometheus + SLA/SLO 版)
目的:每週用一致格式回報服務健康、SLO 達成、風險與改善進度。
期間:YYYY-MM-DD ~ YYYY-MM-DD
1) Executive Summary(給主管 30 秒看懂)
- 本週整體 SLO:
✅ 達標 / ⚠️ 風險 / ❌ 未達 - 最高風險服務:
<service-name> - 重大事件:
P1 x ?, P2 x ? - 下週最重要 3 件事:
- ...
- ...
- ...
2) SLA / SLO 達成概況
| Service | SLI | SLO Target | 本週實際 | 結果 |
|---|---|---|---|---|
| api-gateway | Availability | 99.90% | 99.95% | ✅ |
| checkout | P95 Latency | <= 300ms | 420ms | ❌ |
| webhook | Error Rate | < 0.1% | 0.08% | ✅ |
註:若有 SLA(對客承諾)請另外標註 SLA 違約風險。
3) Error Budget
| Service | 週期 | Budget 總量 | 已消耗 | 剩餘 | Burn Rate |
|---|---|---|---|---|---|
| api-gateway | 30d | 43.2 min | 12.1 min | 31.1 min | 0.8x |
| checkout | 30d | 43.2 min | 38.7 min | 4.5 min | 2.3x |
判讀規則(建議)
- Burn rate > 2x:高風險,需立刻抑制變更或啟動改善。
- 剩餘 budget < 20%:進入保守模式(減少高風險發布)。
4) 事件與穩定性
4.1 Incident Summary
- P1:
?次 - P2:
?次 - 平均 MTTR:
? 分鐘 - 最長中斷:
? 分鐘
4.2 Top Incident(最多 3 件)
- 事件名稱:
- 時間:
- 影響:
- 根因:
- 已修復:
- 待補強:
5) Prometheus 指標重點(Top Signals)
- Availability(up / success rate)
- Latency(P50/P95/P99)
- Error(5xx、timeout、retry)
- Saturation(CPU、Memory、Queue、DB 連線)
異常觀察(本週)
<metric>在<time range>出現尖峰,推測原因<cause><service>P95 latency 持續偏高,已建立 issue<link>
6) 變更與風險
- 本週發布次數:
? - 失敗回滾次數:
? - 高風險變更:
<change>(風險:高 / 狀態:已完成|回滾|觀察中)
7) 下週行動(Actionable)
| 優先級 | 項目 | Owner | ETA | 驗收標準 |
|---|---|---|---|---|
| P0 | 降低 checkout P95 latency | @owner | YYYY-MM-DD | P95 < 300ms 連續 7 天 |
| P1 | 補齊告警去噪 | @owner | YYYY-MM-DD | 誤報率下降 50% |
| P1 | 壓測 webhook 流量尖峰 | @owner | YYYY-MM-DD | 2x 流量無錯誤峰值 |
8) 附錄(連結)
- Grafana Dashboard:
<url> - Prometheus Query snippets:
<url/path> - Incident Postmortems:
<url> - 相關 GitHub Issues:
<url>
PromQL 範例(可直接改)
# 1) 5xx rate
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
# 2) P95 latency
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))
# 3) Availability (success rate)
1 - (
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
)