Radar OSS · Issues & root cause

One question: what's actually broken?

Radar folds a cluster's failures into a triage queue with the root cause on top - deterministically, with classification rules over live state, not an LLM guessing. When Radar isn't sure, the row says so.

Apache 2.0 · Runs on your laptop or in-cluster · No account needed
Five minutes, one queue

How an incident reads in Radar.

  1. 11:42

    The pager fires. kubectl shows a wall of red.

    checkout is down. Four things look broken at once: the Deployment reports degraded, two pods are in CrashLoopBackOff, and the ArgoCD app failed its last sync. Four alarms. You don't know yet that they're one problem.

  2. 11:43

    The queue has already done the join.

    Open Issues. Not four rows - one: the Deployment, marked critical, with its crashlooping pods folded underneath and the failed sync linked to it. Same-subject grouping folded the symptoms; the causal link carries a confidence label so you know how sure Radar is.

  3. 11:44

    The row names the cause - and the next step.

    Expand it. WHAT'S WRONG: container OOMKilled, with when it started and when it was last seen. NEXT STEP: the concrete action, not a link to a runbook. And the part that usually takes longest to find: the meaningful change that preceded it - a memory-limit edit, minutes before the first restart.

  4. 11:47

    Revert, watch the queue clear itself.

    The Issues view is live state, not an alert log. When the fix lands and pods go healthy, the row disappears on its own - no acknowledging, no resolving, no stale incidents to clean up after the postmortem.

Illustrative incident; the diagnosis mechanics are the shipped ones.

The queue, on a real cluster

Radar's Issues view with one issue expanded - what's wrong, the next step to fix it, and the pods it was grouped from

Grouped from three pods into one row, with the next step included.

The blast radius, linked

An expanded PVC issue in Radar - what's wrong, the next step, the raw error, and a high-confidence causal link to the deployment and pods the broken PVC is blocking

A broken PVC, and the deployment and pods it's blocking - linked, with the confidence stated (“high confidence”), plus the exact next step.

See your own cluster's queue in one command: curl -fsSL https://get.radarhq.io | sh && kubectl radar

Under the hood

Deterministic diagnosis, honest confidence.

01

Rules, not a model

Diagnoses are deterministic signals computed from the state and events Radar already watches. The same failure produces the same diagnosis every time - with the underlying kubelet and status detail (evictions, image-pull errors, config errors, probe failures) carried alongside Radar's stable labels.

02

Confidence you can see

Every cross-resource causal link carries its confidence - when Radar isn't sure the node is what took your pods down, the link says so instead of asserting it. And a fold never lowers severity.

03

Wired into everything

Issues appear in each resource's detail view and on the home dashboard, not only in the cluster-wide queue. Helm install/upgrade failures surface as first-class issues. AI agents read the same diagnoses over Radar's MCP server.

This is the part Lens and similar tools leave to you: they hand you the raw materials - an events view, metrics, logs - and, lately, an AI chat to reason about them. Radar ships the diagnosis itself: a deterministic queue, folded and linked, the same answer every time.

What the engine catches, beyond one incident.

The same classifier runs across the quieter failures teams usually miss - not just the loud crashloops:

  • Same-subject grouping - a fold never lowers severity
  • Causal links across resources, each carrying a stated confidence
  • Cause and action for crashloop exit codes, image-pull failures, and admission blockers (quota, webhooks, Pod Security)
  • Pods that bind to a node and stall silently - no events at all - caught too
  • Explicit HPA diagnosis: maxed-out, can't-read-metrics, pinned, paused
  • GitOps sync failures and stalled rollouts, with the triggering change
  • Any CRD's .status.conditions gone False - Argo, Flux, Knative, Crossplane, cert-manager, KEDA - caught by the generic fallback
Open source

Apache 2.0. Yours to inspect, fork, or self-host.

Radar's source is on GitHub. Every feature on this page is in the binary you install with brew install. No telemetry, no mandatory login, no cluster data out. The one outbound call is an anonymous version check when the UI opens. If we ever change that, you'll see it in a diff first.

skyhook-io/radar
2.6k★ GitHub stars
Apache 2.0 · Actively maintained
FAQ

Questions we get about Issues.

Is the Issues engine AI-based?
No. Diagnosis is deterministic - classification rules run over the cluster state and events Radar already watches, so the same input produces the same diagnosis. AI agents can read the resulting diagnoses over Radar's MCP server, but nothing about the diagnosis itself is generated by a model.
How is this different from alerting?
Issues is the live answer to "what's broken right now" - a triage queue that corrects itself as the cluster changes. Alerting is the push side: Radar Cloud lets you write notification rules over the fleet Issues queue and delivers to Slack or the in-app tray, with a durable history that deep-links back to each issue.
What failure types does Radar diagnose?
Cause and action for pod-startup failures (crashloop exit codes, image-pull errors, admission blockers like quota, webhooks, and Pod Security, plus eventless post-bind stalls); probable cause and the triggering change for GitOps/ArgoCD sync failures, autoscaler problems, and stalled rollouts; explicit state diagnosis for HPAs. Native Helm install/upgrade failures surface as first-class issues, and a generic fallback catches any CRD whose conditions go False. Posture findings (Kyverno policies, best-practice checks) deliberately live in Checks, not Issues - a healthy pod can fail many posture checks, and a crashing pod can pass all of them.
Does one incident flood the queue with rows?
No - that's what the engine exists to prevent: when one failure spawns many rows, same-subject grouping folds them into the single root-cause incident, and causally related problems on other resources are linked to it rather than listed as separate mysteries.
What does Radar Cloud add on top?
The Issues and Checks queues go org-wide: every cluster's failures roll up into shared queues, and triage is shared too - acknowledge, snooze, or dismiss an issue once for everyone. Plus alert rules with Slack and in-app delivery and a durable alert history.

Running a fleet? Radar Cloud rolls every cluster's Issues into one shared triage queue with Slack alerting.

Triage the cause, not the symptoms.

The failures are already classified, folded, and linked. Open the queue.

Apache 2.0 OSS · Unlimited clusters self-hosted · Hosted free tier for up to 3 clusters