Task 2: AlertGroupingService — Redis 5分鐘滑動視窗,防告警風暴 - apps/api/src/services/alert_grouping_service.py (新增) - webhooks.py 整合:指紋生成後/LLM前短路子告警 - Threshold=3,Graceful Degradation,16 tests Task 3: approval_execution.py 執行失敗重試 - MAX_RETRY=2, RETRY_DELAY_SECONDS=30 - _is_transient_error() 瞬態/永久分類,永久錯誤不重試 - Timeline 記錄重試進度,成功後標注重試次數,29 tests Task 4: report_generation_service.py 自動報告 - 日度巡檢報告:每日 08:00 台北時間,Telegram SRE 群組推送 - Postmortem:Incident resolved + duration > 10 分鐘自動觸發 - main.py lifespan 掛載 run_daily_report_loop(),30 tests 測試: 600 → 675 通過 (+75),0 failed Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
8.6 KiB
LOGBOOK - AWOOOI 進度軌跡
用途: AI 代理進度追蹤,防止 Session 斷層 規則: 完成重要節點後追加一行 歷史: 舊條目已壓縮,詳細記錄見 git log
📍 當前狀態 (2026-04-14 — 戰術 B 四大 Task 全部完成,675 tests ✅)
本次 session 新增(4 Task,6 檔案,75 新測試):
feat(adr-076): Task 2—alert_grouping_service.py— 5分鐘滑動視窗告警聚合引擎 + 16 testsfeat(adr-076): Task 3—approval_execution.py— 執行失敗重試(MAX_RETRY=2, 30s, 瞬態/永久分類)+ 29 testsfeat(adr-076): Task 4—report_generation_service.py— 日度巡檢報告(08:00台北) + Postmortem + 30 testswebhooks.py— ADR-076 聚合邏輯整合(指紋後/LLM前)main.py— 日度報告迴圈掛進 lifespan
測試: 600 → 675 通過(+75),10 skipped,0 failed
下一步:git push gitea main → Pod 部署驗證 → 觀察 E2E
📍 前次狀態 (2026-04-14 — MASTER AIOps Blueprint 完成,等待統帥批准)
本次 session 新增(無 commit,純文件工作):
docs/superpowers/plans/2026-04-14-MASTER-aiops-full-automation-blueprint.md— 整合4份計畫文件的主計畫書 v1.0- Memory:
aiops_current_architecture_diagnosis.md— 完整架構診斷報告
飛輪現況: Pod 38ff2bb,飛輪 83% 完整,4 Phase 等待批准後實作
業界標準文件缺口(已識別,尚未建立):SLO/SLI、AI Model Card、Human-in-Loop Spec、Alert Taxonomy Catalog、Configuration Reference
下一步:等統帥批准 MASTER 計畫書後,開始 Phase 1 實作
📍 前次狀態 (2026-04-14 — 飛輪 Bug 修補完成,全面部署 38ff2bb ✅)
本次 session 修補(6 commits,全已部署,Pod 跑 38ff2bb):
38ff2bbheartbeat → ADR-075 TYPE-1 格式(INFO 樹狀結構)f1face4HostHighCpuLoad 獨立規則 → NO_ACTION(停止 kubectl scale unknown)1a4b52efingerprint 加 alertname 防跨告警指紋衝突 + 心跳分類補入b17a677gitea webhook analysis.model_dump() dict bug0c88f67DIAGNOSE 強制 deepseek-r1:14b(不用 gemma3:4b)09134f5incident.title bug + DIAGNOSE→NEMOTRON confidence=0.0 修復
飛輪狀態:規格書層次一二三四全完成,ADR-075 全完成,本次額外修補已補齊
下一步:觀察自動修復 E2E,或繼續 ADR-075 Phase 3(Prometheus 規則)
📍 前次狀態 (2026-04-12 深夜 — ADR-075 Phase 1+2+CR 全完成,git push gitea main ✅)
ADR-075 全部完成(3 commits: 2cef209 → 561c1d8 → 1cb654c):
Phase 1(4 斷點修復):
- ✅ 斷點 A: decision_manager 提取 alert_category → send_approval_card
- ✅ 斷點 B: send_approval_card 新增參數 → _build_inline_keyboard
- ✅ 斷點 C: 互動型通知(TYPE-3/4/4D/8M)禁止發 SRE 群組
- ✅ 斷點 D: k8s_workload → kubernetes + 6 新類按鈕組
- ✅ classify_alert_early: 13 條規則,7 新分類,52 tests
Phase 2(TYPE-8M):
- ✅ send_meta_alert() ⚙️ META SYSTEM 卡片
- ✅ decision_manager TYPE-8M elif 分支
CR 修補:
- ✅ P0-2: NotificationType.TYPE_8M 加入 enum + classify_notification 早期回傳
- ✅ P1-1: 移除 _CATEGORY_BUTTONS 死碼
- ✅ P1-4: 測試 docstring 更新 13 條規則
- 664 tests all pass
下一步:ADR-075 Phase 3(Prometheus 規則),或評估下一個 ADR
📍 前次狀態 (2026-04-12 — 層次三+四全部完成,CD 推送中)
系統狀態: ADR-073 Phase 1-4 ✅ | ADR-074 M1-M5 ✅ | ADR-073-C C1-C4 ✅ | git push gitea main ✅
Phase 1 完成清單:
- ✅ 1-1~1-3: Harbor 確認 + kustomization→105998d + ArgoCD sync
- ✅ 1-4: Pod image
105998d已驗證 - ✅ 1-5:
_collect_mcp_context存在 Pod - ✅ 1-6: debounce 5→30 min
- ✅ 1-7: alertname NULL 根因修復(signals JSONB alias)
- ✅ 1-8: cold_start_playbooks.py — Playbooks 0→15
- ✅ 1-9: batch_vectorize_km.py — 711/713 KM 向量化
架構修復:
- ArgoCD ignoreDifferences 移除(image 更新路徑修通)
- B5 CI break-glass(TODO 2026-04-13 恢復)
Phase 2 完成清單:
- ✅ 2-1: DB Migration — alertname column 新增 (已在 Pod 執行)
- ✅ 2-2: classify_alert_early() — 6 條規則 config_drift/info/backup/infra/k8s/db/general
- ✅ 2-3: _try_auto_repair_background() outcome 寫入點
- ✅ 2-4: create_incident_for_approval() notification_type/alert_category 寫入
- ✅ 2-5: 134 筆 alertname NULL → 0 回填完成
下一步: Phase 3(Tier 3 — 首席架構師授權後執行)
里程碑摘要(壓縮版)
| 日期 | 里程碑 | commit |
|---|---|---|
| 2026-04-08 | Sprint 5.1 資料安全護欄完成(Guardrail BLOCK/HITL/MultiSig) | 88696db/0f5fecf |
| 2026-04-10 | ADR-068 飛輪閉環 E2E 驗收(HostHighCpuLoad→PB-20260406) | — |
| 2026-04-10 | ADR-067 五大 Ollama 應用全完成(Phase 30-34) | — |
| 2026-04-10 | B5 CI 整合測試 640 通過 | — |
| 2026-04-11 | ADR-070 全自動 AIOps 閉環(MCP 10 providers) | a2cc985 |
| 2026-04-11 | ADR-071 A-J Telegram 通知卡片 10 種 | 1ec1965 |
| 2026-04-11 | ADR-072 Bug 修復 P0-P2 全完成 | f34fe19 |
| 2026-04-11 | MCP Security Code Review P0/P1/P2 全修補 | f323633 |
| 2026-04-11 | ADR-069 基礎設施重建 Sprint A/B/C 全完成 | — |
| 2026-04-11 | D1 models.json v1.3.0(9 purpose keys) | f2c18c4 |
| 2026-04-11 | M3 alertname_to_type 抽至 constants | 1ede9f9 |
| 2026-04-11 | I1 ADR-064 Rule Engine get_incident_type() 整合 | 615822d |
| 2026-04-11 | ArgoCD MCP 連線修復(IP 120:30443) | f23176c |
| 2026-04-11 | 首席架構師 CR Round 1 — get_incident_type rule.id bug + 11 tests | d77b2ad |
| 2026-04-11 | ADR-070 全自動化三大修復(auto_approve/MCP context/target) | c439277 |
| 2026-04-11 | 首席架構師 CR Round 2 — Tier 3 ternary/timeout/DESTRUCTIVE_PATTERNS + 25 tests | 8be87b0 |
| 2026-04-12 | SSH MCP 188/110 連通驗證,authorized_keys 確認 | 796517f |
| 2026-04-12 | fix(test): integration 測試排除(pytest addopts),618 單元測試全通過 | 6e0ee8b |
| 2026-04-12 | refactor: I2 DI 化 MCP Providers + config list bug + model_regression integration | 184b37a/a67a27f |
| 2026-04-12 | docs(spec): AIOps 飛輪全面修復整合規格書 v1.0(四層方案+監控缺口+ADR-074) | 77771c1 |
| 2026-04-12 | docs(adr): ADR-073 補充 ADR-071 整合工作序 + ADR-074 Sprint | f2b427d |
| 2026-04-12 | docs(spec): v2.2 §15 Subsystem 1 四階段路線圖(截圖定案) | d3ddaaf |
| 2026-04-12 | docs(spec): 規格書 v2.0 — 四階段細化實施步驟 + 防偏差守則(等待批准) | — |
| 2026-04-12 | fix(flywheel): Phase 1 — kustomization→8be87b0 + debounce 30min + alertname NULL | 7c4b36c |
| 2026-04-12 | fix(ci): Break-Glass — B5 flaky PG test bypass,解封 P0 飛輪部署 | 105998d |
| 2026-04-12 | fix(argocd): 移除 ignoreDifferences image,修復 GitOps image 更新斷路 | — |
| 2026-04-12 | feat(flywheel): Phase 1 完成 — 15 Playbooks 冷啟動 ✅ | 711/713 KM 向量化 ✅ |
| 2026-04-12 | feat(flywheel): Phase 2 完成 — classify_alert_early + outcome寫入 + 134筆回填 | 54efa30/97fc49a |
| 2026-04-12 | feat(flywheel): Phase 3 完成 — Tier 3 七大修復 (首席架構師授權) | dbc77c5 |
| 2026-04-12 | feat(flywheel): Phase 4 完成 — KM conversion hook + daily vectorize cron | f2fc471 |
| 2026-04-12 | feat(adr-074): M1 飛輪 Prometheus Exporter + M2 主機網路監控 | 16d6823 |
| 2026-04-12 | fix(cr): ADR-073 CR P0/P1/P2 全修補 + B5 CI 0收集修復 | e770813/c09521a |
| 2026-04-12 | feat(m3-m5): ADR-074 M3 CI Webhook + M4 備份驗證 + M5 詳細告警 | 3489e05~ec6a341 |
| 2026-04-12 | feat(c2-c4): ADR-073-C 前端飛輪 KPI+WebSocket+介入路徑視覺化 | 4b51f9b~9b1812c |
ADR-073 飛輪完整盤點(2026-04-12)
| 項目 | 發現 |
|---|---|
| Playbooks | 0 — 飛輪從未冷啟動 |
| EXECUTION_SUCCESS | 2/380(0.5%) — 自動修復幾乎從未成功 |
| KM vectorized | 全部 False(699 筆) — RAG 無法查詢歷史案例 |
| alertname in DB | 全部 NULL — signals JSONB 結構問題 |
| debounce window | 5 分鐘(應 30 分鐘)— 同一問題反覆重建 Incident |
8be87b0 部署 |
❌ CD 失敗未上線 — 三大修復未生效 |
| ADR-073 | 已寫入 docs/adr/ADR-073-flywheel-full-audit.md,等待統帥批准後實作 |
已知技術債(下 Sprint 評估)
| 項目 | 說明 |
|---|---|
| NetworkPolicy ClusterIP 10.43.16.201/32 | ArgoCD 重裝需更新 |
_collect_mcp_context Provider 直接實例化 |
✅ 已 DI 化(I2)184b37a |
| B3 Phase 15.5 Trace Context UI | 統帥裁示暫緩 |
| A-3 bitan Docker 化 | P3 低優先 |