fix(flywheel): 修補飛輪四個核心斷點,讓完整流程真正串接起來
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
1. incident_service.py: save_to_episodic_memory() 補寫 alertname/notification_type/alert_category → 之前這3欄在DB永遠NULL,LLM無alertname,Playbook匹配全失敗 2. telegram_gateway.py: Telegram批准後呼叫 execute_approved_action() → 之前sign_approval()只改DB狀態,380筆批准0筆真正執行kubectl指令 3. approval_execution.py: 執行成功後呼叫 resolve_incident() webhooks.py: auto-repair成功後呼叫 resolve_incident() → 之前Incident永遠停在INVESTIGATING,KM轉換永遠不觸發,Playbook=0 4. webhooks.py: TYPE-1告警短路,不進LLM → 之前Heartbeat/Backup/Info仍燒LLM token,產生垃圾修復建議 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -171,6 +171,21 @@ class ApprovalExecutionService:
|
||||
except Exception as _disp_e:
|
||||
logger.warning("disposition_record_failed", error=str(_disp_e))
|
||||
|
||||
# ADR-073 修補: 執行成功 → 解決 Incident → 觸發 KM 轉換
|
||||
# 之前 RESOLVED 從未被呼叫,導致 KM 永遠不生成、Playbook 永遠是 0
|
||||
if approval.incident_id:
|
||||
try:
|
||||
from src.services.incident_service import get_incident_service
|
||||
_inc_svc = get_incident_service()
|
||||
await _inc_svc.resolve_incident(approval.incident_id)
|
||||
logger.info(
|
||||
"incident_resolved_after_execution",
|
||||
incident_id=approval.incident_id,
|
||||
approval_id=str(approval.id),
|
||||
)
|
||||
except Exception as _resolve_e:
|
||||
logger.warning("incident_resolve_after_execution_failed", error=str(_resolve_e))
|
||||
|
||||
else:
|
||||
logger.error(
|
||||
"background_execution_failed",
|
||||
|
||||
Reference in New Issue
Block a user