SureshKumarParamasivam's picture
Update App.py
2d5804a verified
Raw History Blame Contribute Delete
2.39 kB
import time
import random
# Simulated Alert Stream
alerts = [
{"id": 1, "type": "CPU_HIGH", "service": "payment-api", "severity": "warning"},
{"id": 2, "type": "LATENCY_SPIKE", "service": "payment-api", "severity": "critical"},
{"id": 3, "type": "DB_CONN_ERROR", "service": "payment-api", "severity": "critical"},
{"id": 4, "type": "DISK_USAGE", "service": "notification-service", "severity": "warning"},
]
# Historical Incident Database (simulated)
incident_history = {
"CPU_HIGH+LATENCY_SPIKE+DB_CONN_ERROR": {"likely_root": "DB connection pool issue", "auto_fix": True},
}
# Agentic AI Decision Engine
def agentic_ai_decision(alerts):
correlated = []
action_plan = {}
# Step 1: Correlate alerts based on service and time proximity
services = set(alert['service'] for alert in alerts)
for service in services:
service_alerts = [a for a in alerts if a['service'] == service]
alert_types = "+".join(sorted(a['type'] for a in service_alerts))
# Step 2: Check historical incident patterns
if alert_types in incident_history:
incident = incident_history[alert_types]
print(f"\n📌 Correlated incident pattern detected for {service}")
print(f"Likely Root Cause: {incident['likely_root']}")
if incident['auto_fix']:
action = "AUTO_REMEDIATE"
else:
action = "ESCALATE"
correlated.append(service)
action_plan[service] = action
else:
action_plan[service] = "ESCALATE"
# Step 3: Handle uncorrelated alerts (noise suppression)
uncorrelated = [a for a in alerts if a['service'] not in correlated]
for a in uncorrelated:
if a['severity'] == "warning":
action_plan[a['service']] = "SUPPRESS"
else:
action_plan[a['service']] = "ESCALATE"
return action_plan
# Simulate agent decision-making
actions = agentic_ai_decision(alerts)
# Step 4: Execute actions
for service, action in actions.items():
if action == "AUTO_REMEDIATE":
print(f"\n✅ Auto-remediating issue in {service}… Restarting service.")
elif action == "ESCALATE":
print(f"\n🚨 Escalating incident for {service} to on-call.")
elif action == "SUPPRESS":
print(f"\n🔕 Suppressing non-critical alert for {service}.")