diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 17d5d71f1..ebde15a79 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -6,6 +6,43 @@ --- +## 📍 2026-04-16 — E2E 全節點驗證 + 生產 bug 連環修復 + +### 問題背景 +Sweeper 首次啟動把 117 個歷史 incident(最舊 7 天)全部洗版到 Telegram, +用戶反映「所有告警訊息都長得好像」(全部降級 confidence=20%) + +### 根本原因鏈 + +1. **Sweeper key bug**: 檢查 `decision:INC-*`(不存在),沒有設置 done marker → 每輪都認為未分析 +2. **CAST SQL bug**: `decision_chain = :dc::json` → asyncpg 語法錯誤 → 學習記錄無法寫入 DB +3. **Age filter 缺失**: 啟動時一次觸發所有歷史 incident → Telegram 洪水 +4. **shadow_mode 卡住**: ConfigMap 已改 false,但 Pod 在更新前創建 → 載入舊值 true +5. **flywheel stats bug**: `incidents.outcomes` 欄位不存在(應為 `outcome`) → stats/summary API 500 +6. **Telegram method bug**: `_make_request` 不存在(正確方法名 `_send_request`) → 分析完後推送失敗 + +### 修復 Commits + +| Commit | 修復 | 狀態 | +|--------|------|------| +| `20b3fef` | sweeper key format: `sweeper_done:INC-*` marker | ✅ 已部署 | +| `0760315` | CAST SQL + shadow_mode=false | ✅ 已部署 | +| `9bfa6fc` | sweeper 48h 舊案過濾 | ✅ 已部署 | +| `1e86cc2` | flywheel `outcome` 欄位 | 🔄 CI 894 | +| `f5e33da` | telegram `_send_request` 方法名稱 | 🔄 CI 894 | + +### E2E 驗證結果 + +全 10 節點驗證通過(詳見 project_current_status.md) + +### 其他改善 + +- KM 16 筆缺漏 embedding → 補齊(867/867 全有向量) +- AIOPS_P4_SHADOW_MODE=false 生效(rollout restart + 新 pod 確認) +- proactive_inspector: shadow_mode=false,anomalies=0(系統健康) + +--- + ## 📍 2026-04-15 深夜 — AI 自主化飛輪 Phase 4-6 全完成 + 生產全開 🎉 ### Phase 4 異常偵測升級(commit 14a0226,ADR-084)