OPEN SOURCE · APACHE 2.0 · SELF-HOSTED

29 containers, one command133 features · 58 ADRs$0 licence · your infrastructureHow we compare →

The AI Agents that investigate your incidents - on your infrastructure.

Most AI SRE tools are someone else's SaaS reading your telemetry. Keel is the whole stack — Prometheus, Mimir, Loki, Tempo, Grafana, OTel and the AI brain — running inside your perimeter, on your keys, under Apache 2.0. Bring your own LLM. Bring your own observability stack, or take ours.

See how it works
keel.dev / production-sre
$ git clone https://github.com/supersaiyane/ai-sre-platform $ cd ai-sre-platform $ make all ✓ Starting 29 containers... ✓ OTel collector ready ✓ Mimir, Loki, Tempo online ✓ Supervisor agent listening on :5000 ✓ OmniView dashboard → http://localhost:3001
BY THE NUMBERS
0Features shipped
0Containers in full stack
0Architecture Decision Records
$0License cost, forever

Every number on this page is countable from a clone. git clone, make all, five minutes.

THE PROBLEM

SRE teams are stuck in a manual investigation loop.

01

Alert fatigue

Drowning in alerts at 3 AM, manually checking dashboards one by one. Forty-five minutes of triage before investigation even begins.

02

Context switching

Grafana, kubectl, Splunk, PagerDuty. Every tool is a tab, every tab is a context switch, every switch is minutes lost.

03

Tribal knowledge decay

When your senior SRE leaves, the investigation playbooks walk out the door. Each new incident feels like starting from scratch.

POSITIONING

Built for two kinds of teams.

Keel meets you where you are. Ship the full observability stack in one command, or plug the AI brain into the stack you already run.

ENTERPRISE

Plug into what you already own

Bring Your Own Stack. Point Keel at your existing Prometheus, Loki, and Tempo via three environment variables. Multi-tenant, hardened, and ready for audit.

  • BYOS mode - keep your Prometheus / Mimir / Loki / Tempo
  • Multi-tenancy (L2) via X-Tenant-ID isolation
  • HashiCorp Vault for secrets
  • Platform-wide API key authentication
  • Helm chart (21 templates, HA profile)
  • Terraform for AWS (EKS + RDS) and GCP (GKE + CloudSQL)
OPEN SOURCE

Ship the whole stack in one command

Full stack mode spins up 29 containers - Prometheus, Mimir, Loki, Tempo, Grafana, Jaeger, OTel, Alertmanager, MinIO - plus the AI brain. Five minutes from clone to first investigation.

  • make all - 5-minute demo in 29 containers
  • Pre-wired Grafana dashboards (3 static + auto-SLO)
  • 5 failure-mode simulator
  • 10 pre-scripted RCA rotations for demos
  • Apache 2.0 for Keel's own code - no vendor lock-in
  • $0 licence fee, $500/mo typical infra cost
  • The bundled stack includes AGPL-3.0, GPL-3.0 and BUSL-1.1 components - third-party licences
INTEGRATIONS

Connects to everything you already run.

OTLP traces, PromQL metrics, LogQL logs, TraceQL spans, webhooks for alerts. Nothing to rewrite.

PrometheusPrometheusGrafanaGrafanaLokiLokiTempoTempoMimirMimirJaegerJaegerOpenTelemetryOpenTelemetryAlertmanagerAlertmanagerMinIOMinIOPrometheusPrometheusGrafanaGrafanaLokiLokiTempoTempoMimirMimirJaegerJaegerOpenTelemetryOpenTelemetryAlertmanagerAlertmanagerMinIOMinIO
KubernetesKubernetesDockerDockerTerraformTerraformHelmHelmNeo4jNeo4jPostgreSQLPostgreSQLRedisRedisVaultVaultJiraJiraServiceNowServiceNowSlackSlackTeamsTeamsPagerDutyPagerDutyKubernetesKubernetesDockerDockerTerraformTerraformHelmHelmNeo4jNeo4jPostgreSQLPostgreSQLRedisRedisVaultVaultJiraJiraServiceNowServiceNowSlackSlackTeamsTeamsPagerDutyPagerDuty
CAPABILITIES

The product, in seven acts.

133 features shipped across nine benchmarked pillars.

Investigation

Six-step RCA with confidence calibration.

Every incident runs a structured pipeline — error rate, latency, cascade detection, logs, traces, LLM enrichment — with a confidence-gated re-investigation loop.

ErrorLatencyCascadeLogsTracesLLMConfidence Gate
Governance

The LLM gateway nobody else ships.

Per-model circuit breakers. Four load-balancing algorithms. Priority queue. $50/day cost cap. Self-healing daemon. Kill switch.

Circuit Breakers4 LB Algorithms$50/day CapKill Switch
Lifecycle

Five states. Three resolution paths.

Triage, Investigate, Remediate, Awaiting Resolution, Resolved. Human-in-the-loop approval for P1. Jira auto-transitions. Postmortems on closure.

TriageInvestigateRemediateAwaitingResolvedHuman-in-the-Loop
Intelligence

Detection patterns from the best. Built from scratch.

Risk-based alert scoring inspired by Splunk RBA. KPI health trees across weighted dimensions. YAML-defined correlation searches. Investigation workbench with disposition tracking.

Risk ScorerKPI HealthCorrelationWorkbenchDisposition
Extensibility

Extend it without forking it.

Integration registry with auto-discovery and YAML hot-reload. The ingestion queue runs in-process today — a durable broker is a design target, not a shipped backend. Service membership is a static list. Offline LoRA fine-tuning script for your own RCA corpus.

IntegrationsHot-reloadIn-process queueLoRA (offline)
Learning

Every incident leaves a fingerprint.

Episodic memory with multi-factor similarity matching. Two similar episodes? Keel synthesises a strategy and injects it into the next investigation.

EpisodesStrategiesSimilarityMemory
Explainability

Every decision, auditable.

Confidence breakdown. "Why this RCA?" evidence trail. Full decision audit log — triage, scoring, runbook, escalation — with 30-day retention. SOC 2 ready.

EvidenceAudit TrailConfidenceSOC 2
HOW IT WORKS

Three steps. Thirty seconds.

From alert to resolution — fully automated, human-gated.

01

Alert fires. Triage begins.

Alertmanager webhook hits. Keel deduplicates via SHA256 fingerprint, assigns an incident ID, computes priority from severity + blast radius.

02

Six-step investigation.

PromQL error rates, latency, cascade detection, LogQL, TraceQL, LLM enrichment — with episodic memory injected as context.

03

Human confirms. Jira closes.

Priority ≥ 0.8 gates for human approval. On confirm: Jira Done, postmortem to Slack + ServiceNow, episode written to memory.

HOW IT WORKS

Three steps. Thirty seconds.

From alert to resolution — fully automated, human-gated.

01

Alert fires. Triage begins.

Alertmanager webhook hits. Keel deduplicates via SHA256 fingerprint, assigns an incident ID, computes priority from severity + blast radius.

02

Six-step investigation.

PromQL error rates, latency, cascade detection, LogQL, TraceQL, LLM enrichment — with episodic memory injected as context.

03

Human confirms. Jira closes.

Priority ≥ 0.8 gates for human approval. On confirm: Jira Done, postmortem to Slack + ServiceNow, episode written to memory.

UNDER THE HOOD

Built for production. Benchmarked against it.

The technical numbers that separate a side project from a platform.

OTLPIngestion protocol

Traces, metrics, logs over OpenTelemetry. Every signal, one pipeline.

~50msMedian LLM Gateway latency

Priority queue + circuit breakers + multi-backend routing. Production-calibrated.

29Containers in full stack

One Docker Compose file. Five minutes from clone to first investigation.

BFSdepth 2Blast radius algorithm

Neo4j-backed service topology traversal. Knows which services are downstream before the first signal lands.

ARCHITECTURE

Fifty-eight decisions. All documented.

Most tools tell you what they do. We tell you why we built it that way.

We chose LangGraph over a linear pipeline because incident response is inherently stateful - a low-confidence investigation must be able to loop back and re-investigate with different context. The Router node gates this: confidence < 0.70 returns to Investigate for up to 2 retries before escalating to a human. Remediate only runs for P1/P2 incidents with LLM-enriched runbook steps. Notify runs unconditionally but in parallel fan-out to minimise time-to-Slack.

Running three backends (Ollama local, Anthropic, OpenAI) with different latency and cost profiles required production patterns - not just retry logic. Circuit breakers open per model after three consecutive failures and retry in half-open state after 30s. A self-healing daemon polls Ollama every 20s and auto-restarts failed models. Priority queue ensures CRITICAL alerts skip ahead of INFO. Sliding-window rate limiter caps spend at $50/day by default, configurable via env var. Kill switch via POST /pause for incident response.

LLMs are overconfident. We learned this after shipping the first version with a pure LLM self-rating and seeing 95% claimed confidence on RCAs that were wrong. The current formula blends the LLM's rating (40%) with actual signal coverage - how many of the six RCA steps returned useful data (60%) - and then applies a bonus/penalty based on whether the service has a history of accurate RCAs. This is the single most important reliability improvement we shipped.

We didn't want a RAG-over-logs approach - that's just search. Episodic memory stores structured episodes and matches new incidents against past ones using weighted similarity. When two or more similar episodes exist, we synthesise a strategy and inject it into the LLM prompt before the new investigation runs. This is the compounding-learning loop.

See all 58 decisions on GitHub →

WHERE WE ACTUALLY STAND

Second overall. First you can actually run yourself.

We scored Keel against 28 tools across 92 criteria and nine weighted pillars. We wrote the criteria, we scored our own product, and we scored theirs from public documentation without hands-on testing — so treat this as a capability map, not a league table. On a separate, stricter panel that weights market proof alongside capability, Keel comes second: 7.95 against Datadog's 8.01. We are publishing both, including the one where we lose.

How this benchmark was made, and where it is biased →

Here is the part that is not close. Among tools you can self-host, air-gap and run on your own LLM keys, nothing else ships this much. Datadog and Dynatrace cannot deploy inside most bank perimeters. incident.io, PagerDuty and Rootly are SaaS-only. Cleric and the pure-plays have no observability stack of their own. Keel is 29 containers and a Docker Compose file.

BUILT BY

An SRE who's been paged at 3 AM.

I wrote Keel the way I'd want an AI to help me at 3 AM, around three principles: investigations should be structured, not improvised. Memory should compound, not evaporate when a senior engineer leaves. And AI should propose, never execute - the human always signs off. No magic, no autonomy theatre - just a faster first ten minutes.

Gurpreet Singh - Creator · Engineer · Writer · LinkedIn →

Ship your own AI SRE platform.

One command. Full stack. Zero vendor lock-in.

git clone https://github.com/supersaiyane/ai-sre-platform && cd ai-sre-platform && make all