Files
awoooi/docs/templates/POSTMORTEM-TEMPLATE.md
OG T 43c96890d1 docs: 新增4份治理文件 — 告警目錄/AI模型卡/事後分析模板/值班手冊
- docs/reference/ALERT-TAXONOMY-CATALOG.md:16大類、56筆alertname、24條Rule優先順序表
- docs/ai/AI-MODEL-CARDS.md:7個AI模型治理卡(deepseek/qwen/gemini/claude/nemotron)+fallback順序
- docs/templates/POSTMORTEM-TEMPLATE.md:對齊report_generation_service,[AUTO]欄位已標記
- docs/operations/ON-CALL-HANDBOOK.md:P0/P1 SOP、Kill Switch、SLO應對、常用指令速查

建立: 2026-04-14 台北時間 Claude Sonnet 4.6(戰術B Phase 1 完整收尾)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-14 15:29:12 +08:00

6.6 KiB
Raw Blame History

AWOOOI 事後分析報告模板Postmortem Template

文件類型: 事後分析標準模板
版本: v1.0
建立日期: 2026-04-14台北時間
建立者: Claude Sonnet 4.6(首席架構師)
使用方式: 複製本模板,替換 {佔位符} 後提交至 docs/postmortems/YYYY-MM-DD-{alertname}.md
對齊: report_generation_service.format_postmortem() 自動填入欄位已標記 [AUTO]


事後分析:{INCIDENT_TITLE}

Incident ID: {INC-YYYYMMDD-XXXXXX}
告警名稱: {alertname}
嚴重等級: {P0 / P1 / P2 / P3}
發生時間: {YYYY-MM-DD HH:MM}(台北時間) [AUTO]
解決時間: {YYYY-MM-DD HH:MM}(台北時間) [AUTO]
停機時長: {N} 分鐘 [AUTO]
撰寫人: {統帥 / SRE / AI 自動生成}
審查日期: {YYYY-MM-DD}


0. 執行摘要Executive Summary

三行以內,給不想讀全文的決策者看

  • 發生了什麼: {一句話描述事件}
  • 根本原因: {一句話描述根因}
  • 最終處置: {人工介入 / 自動修復 / 降級 / 重啟}
  • 影響範圍: {受影響服務} × {停機 N 分鐘} × {用戶影響程度}

1. 時間軸Timeline[AUTO from AIDecisionChain]

時間(台北) 事件
{HH:MM} Alertmanager 觸發告警:{alertname}
{HH:MM} AWOOOI API 接收 webhookPOST /webhooks/alerts
{HH:MM} LLM RCA 完成hypothesis{LLM假設}confidence{0.XX}
{HH:MM} Telegram 審核卡發出TYPE-{1/2/3/4}
{HH:MM} {統帥} 審核:{APPROVE / REJECT / 未審核}
{HH:MM} 自動執行:{kubectl command / SSH command / NO_ACTION}
{HH:MM} 告警解除Alertmanager resolved
{HH:MM} Playbook 萃取完成,知識庫更新

總耗時: {分析延遲 Xs} + {等待審核 Xm} + {執行 Xs} = {總計 Xm}


2. 根本原因分析Root Cause Analysis[AUTO]

2.1 AI 假設

{AIDecisionChain.hypothesis 欄位內容}

AI 信心度: {AIDecisionChain.confidence}
模型: {AIDecisionChain.model_used}
推理步驟:

{AIDecisionChain.reasoning_steps 列表}

2.2 實際根因(人工確認)

填寫AI 假設是否正確?若不正確,真正的根因是?

  • AI 假設是否正確: {是 / 否 / 部分正確}
  • 實際根因: {描述}
  • 觸發鏈: {A → B → C → 告警}

2.3 原因分類

選擇適用的類別(可複選)

  • 硬體問題(磁碟、記憶體、網路卡)
  • 資源耗盡磁碟滿、OOM、連線池滿
  • 程式碼 Buglogic error、memory leak
  • 配置錯誤YAML 錯誤、環境變數缺失)
  • 依賴服務故障(外部 API、上游服務
  • 容量不足(流量峰值超出設計)
  • 人為操作錯誤(誤刪、誤改)
  • 告警誤報(規則設定過於敏感)
  • 其他:{描述}

3. 影響評估Impact Assessment

維度 內容
受影響服務 {services} [AUTO from affected_services]
用戶影響 {無 / 部分功能降級 / 完全中斷}
停機時長 {N 分鐘} [AUTO]
資料影響 {無資料遺失 / 部分資料遺失 / 需確認}
SLO 影響 SLO-1 成功率:{X%} / Error Budget 消耗:{X%}
業務影響 {描述具體業務損失或用戶體驗影響}

4. 處置過程Resolution[AUTO + 人工補充]

4.1 自動修復

執行指令: {approval.action}
執行結果: {成功 / 失敗}
執行者:   AIOps 自動執行
執行時間: {YYYY-MM-DD HH:MM}(台北)

4.2 人工介入

若有人工操作,填寫以下內容

  • 操作者: {統帥 / SRE}
  • 操作時間: {YYYY-MM-DD HH:MM}(台北)
  • 執行步驟:
    {步驟 1}
    {步驟 2}
    ...
    
  • 為何需要人工介入: {AI 信心不足 / 自動修復失敗 / P0/P1 強制審核 / Kill Switch 啟動}

4.3 修復驗證

  • 驗證方式: {curl 測試 / Pod 狀態確認 / 告警解除 / 用戶確認}
  • 驗證結果: {服務恢復正常 / 部分恢復 / 降級運行}

5. 飛輪學習KM Update[AUTO]

本次 Incident 是否產生了新的 Playbook

  • Playbook 萃取: {是 / 否}
  • Playbook ID: {PB-YYYYMMDD-XXXXXX} [若有]
  • 修復步驟: {動作描述}
  • 加入知識庫: {是 / 否(原因:{效果評分 < 3 / 統帥不建議}}
  • 知識庫查詢觸發: {下次同類告警將自動匹配此 Playbook}

效果評分: {1-5} / 統帥回饋: {如有}


6. 預防措施Action Items

# 類型 描述 負責人 截止日期 狀態
AI-1 監控優化 {告警規則閾值調整} {統帥} {YYYY-MM-DD} {TODO}
AI-2 系統加固 {修復根本原因} {統帥} {YYYY-MM-DD} {TODO}
AI-3 知識庫 {更新 Playbook / 新增規則} AIOps {自動} {自動}
AI-4 演練計畫 {定期演練此類故障} {統帥} {YYYY-MM-DD} {TODO}

7. 五個為什麼5 Whys

用於複雜/P0 事件;追溯到技術或流程根源

  1. 為什麼服務中斷?
    {描述直接原因}

  2. 為什麼 {直接原因} 發生?
    {描述次級原因}

  3. 為什麼 {次級原因} 沒有被預防?
    {描述}

  4. 為什麼 {原因3} 存在?
    {描述}

  5. 為什麼 {原因4} 沒有在系統設計中被考慮?
    {根本原因 — 技術債 / 流程缺失 / 資源不足}

根本改善方向: {描述}


8. 附件Appendix

8.1 相關 Logs

# 關鍵錯誤日誌(僅附最相關的 5-10 行)
{log lines}

8.2 相關截圖

附 Grafana / SignOz / Telegram 截圖路徑

  • docs/postmortems/assets/{INC-ID}-grafana.png
  • docs/postmortems/assets/{INC-ID}-telegram.png

8.3 參考資料

  • Incident DB: SELECT * FROM incidents WHERE incident_id = '{INC-ID}'
  • Langfuse Trace: https://langfuse.awoooi.internal/trace/{trace_id}
  • 相關 ADR: {ADR-XXX}
  • 相關 Playbook: {PB-ID}

使用說明

何時填寫: P0/P1 事件 24 小時內P2 事件 72 小時內P3 可選

自動填入欄位 [AUTO]: 由 report_generation_service.format_postmortem() 自動填入,人工只需補充 2.2、4.2、5、6

存放位置:

docs/postmortems/
  YYYY-MM-DD-{alertname}-{incident_id}.md
  assets/
    {incident_id}-*.png

提交方式: git push gitea main → 自動部署


本模板由 Claude Sonnet 4.6 於 2026-04-14 台北時間建立