init stacks
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from fastapi import APIRouter
|
||||
from api.correlation.collectors import collect_metrics
|
||||
from api.correlation.engine import evaluate, RULES
|
||||
from api.llm.client import explain_incident
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/alerts")
|
||||
def alerts():
|
||||
metrics = collect_metrics()
|
||||
|
||||
# Récupère la liste de règles depuis RULES ; fallback sur [] si introuvable
|
||||
rules_list = []
|
||||
if isinstance(RULES, dict):
|
||||
rules_list = RULES.get("rules", []) or []
|
||||
elif isinstance(RULES, list):
|
||||
rules_list = RULES
|
||||
|
||||
incidents = evaluate(rules_list, metrics)
|
||||
|
||||
if not incidents:
|
||||
return {"status": "ok"}
|
||||
|
||||
for incident in incidents:
|
||||
# explain_incident doit être résilient — voir api/llm/client.py pour fallback
|
||||
incident["summary"] = explain_incident(incident, metrics)
|
||||
|
||||
return {
|
||||
"status": "incident",
|
||||
"incidents": incidents,
|
||||
}
|
||||
Reference in New Issue
Block a user