How mkdirer/ai-sre-platform works
AI SRE Platform turns alerts into durable, evidence-grounded incident investigations, then gates rollback on human approval and verifies recovery. The main path is Alertmanager webhook → Incident API → queued worker → telemetry/deployment evidence → investigation report → approval → remediation and recovery checks; the frontend reviews incidents through the API. Knowledge retrieval and offline evaluation are additional capabilities. Connections follow the README or SOURCE INDEX references; unsampled implementation details are represented only where documented, so some internal links are omitted.
Main entry points: main.py Incident API · workflow.py Investigation workflow · evidence_collection.py Evidence collection · service.py Remediation service
Components 25
API and review
- Incident API
apps/incident_api/main.py - Review UI
apps/frontend/src/pages/IncidentListPage.tsx - API client
apps/frontend/src/api/client.ts
Incident processing
- Incident store
packages/persistence/incident_store.py - Task queue
packages/task_queue/publisher.py - Investigator worker
apps/investigator_worker/celery_app.py
Investigation and evidence
- Evidence collection
packages/incidents/evidence_collection.py - Metrics adapter
packages/tools/prometheus.py - Logs adapter
packages/tools/loki.py - Traces adapter
packages/tools/tempo.py - Deployment evidence
packages/tools/deployments.py - Evidence store
packages/persistence/evidence_store.py - Investigation workflow
packages/agents/workflow.py - Model provider
packages/agents/provider.py - Report store
packages/persistence/investigation_store.py
Knowledge and evaluation
- Knowledge retrieval
packages/rag/service.py - Embedding provider
packages/rag/embeddings.py - Knowledge store
packages/persistence/knowledge_store.py - Investigation evals
packages/evals/scenario.py
Approval and recovery
- Approval store
packages/persistence/approval_store.py - Remediation service
packages/remediation/service.py - Execution store
packages/persistence/remediation_store.py - Rollback adapter
packages/remediation/adapter.py
Other components
- Alertmanager
- Reviewer
Connections 25
- Alertmanager → Incident API: sends alerts
README.md - Incident API → Incident store: persists incidents
README.md - Incident API → Task queue: queues jobs
README.md - Task queue → Investigator worker: dispatches jobs
README.md - Reviewer → Review UI: reviews incidents
README.md - Review UI → API client: requests data
- API client → Incident API: calls API
README.md - Investigator worker → Evidence collection: collects evidence
apps/investigator_worker/celery_app.py - Evidence collection → Metrics adapter: queries metrics
packages/incidents/evidence_collection.py - Evidence collection → Logs adapter: queries logs
packages/incidents/evidence_collection.py - Evidence collection → Traces adapter: queries traces
packages/incidents/evidence_collection.py - Evidence collection → Deployment evidence: queries deployments
packages/incidents/evidence_collection.py - Investigator worker → Investigation workflow: runs investigation
apps/investigator_worker/celery_app.py - Investigation workflow → Model provider: requests analysis
packages/agents/workflow.py - Investigation workflow → Evidence store: reads evidence
packages/agents/workflow.py - Investigation workflow → Report store: stores reports
- Investigation workflow → Knowledge retrieval: retrieves context
packages/agents/workflow.py - Knowledge retrieval → Embedding provider: embeds text
packages/rag/service.py - Knowledge retrieval → Knowledge store: searches knowledge
packages/rag/service.py - Investigation evals → Investigation workflow: evaluates workflow
packages/evals/fixtures.py - Incident API → Approval store: records decisions
- Incident API → Remediation service: requests approved action
README.md - Remediation service → Execution store: claims executions
packages/remediation/service.py - Remediation service → Rollback adapter: runs rollback
packages/remediation/service.py - Remediation service → Metrics adapter: checks recovery
packages/remediation/service.py