Flight recorder for Kubernetes

See what changed. See what broke. Share what happened.

kubexray keeps a record of every change to your cluster. When something breaks, it names the change that likely caused it and who made it. Then it plays the whole incident back for anyone on your team, with no access to your cluster.

helm install kubexray oci://ghcr.io/kubexray/charts/kubexray
kubexray Replay kind-kubexray-demo · 3m 45s recorded
  1. api scaled 3 → 4 replicasby an autoscaler or kubectl scale Healthy
  2. ConfigMap checkout-config editedby kubectl patch Broke checkout
  3. Incident checkout is degraded 1 pod CrashLoopBackOff, 45 s after the edit Likely cause: the ConfigMap edit at T+00:55
  4. ConfigMap checkout-config editedby kubectl patch Fixed it
  5. checkout 3/3 readyrecovered 12 s after the fix
A real recording from the demo cluster. Each line opens the player at that moment. Play the incident
kubexray showing an incident: checkout is degraded, likely caused by an edit to the ConfigMap checkout-config, with the shop namespace mapped from Ingress to Service to app to config.

T+02:11 The same moment in the player: the incident, the likely cause, and the failing path on the map.

Caused by

Every incident comes with its likely cause

Dashboards tell you a pod is crashing. kubexray tells you why, and what changed just before.

  • What's wrong, in plain English, with the command to run next
  • The likely cause, who made it, and the evidence for it
  • One cause with many symptoms is one incident, not twelve alerts
An incident card for checkout, with what's wrong and the likely cause, above the map with the failing path highlighted in red.

Change feed

Every change, and what it did

One line per Helm upgrade, Argo CD sync or kubectl edit, with a verdict once things settle.

  • Healthy settled, and how long it took
  • Broke checkout and when it was over
  • Fixed it brought an app back
  • Drift hand edits to managed objects
The Changes view: stat cards, a histogram of changes over time, and change cards marked Healthy, Broke checkout and Fixed it.

Rewind

Go back to the moment before it broke

kubexray records around the clock. Drag the timeline to any moment and the whole cluster is drawn as it was. Compare two moments to see exactly what changed in between.

The timeline: play, a track with red marks where things went wrong, Compare, and the current moment.

In your terminal

Ask why, get an answer

kubexray why gives the same diagnosis without opening a browser: impact, symptom, likely cause, evidence, and what to run next.

$ kubexray why deploy/checkout -n shop
checkout (Deployment, shop) is degraded: 2 of 3 pods ready
  impact        Service checkout → 2 of 3 pods ready
  symptom       1 pod CrashLoopBackOff
  likely cause  ConfigMap checkout-config was edited
                by kubectl patch at 00:09:47 (1m ago)
  evidence      1 pod started after the edit is failing
                2 pods started before it are healthy
  next          kubectl -n shop rollout restart deployment/checkout

Built to run in production

Read-only and private

It only lists and watches. Secret and ConfigMap contents are never read, and replays are scrubbed.

Alerts with the cause attached

An Alertmanager receiver that forwards to Slack or a webhook with the likely cause and a link to the moment it started.

Sign in with your company accounts

Built-in OpenID Connect for Google, Okta, Entra ID and Keycloak, with an allow-list and an audit log.

History that survives restarts

Seven days on a volume by default, with a disk budget. The incident from 3 a.m. is still there in the morning.

Fast at scale

Every incident and its cause found in 1 ms on 1,000 pods. The full map renders in about 80 ms.

Post-mortems drafted for you

A Markdown timeline of what changed, what broke and when it recovered, linking to the replay.

Install

In your cluster

Records around the clock behind authentication. Open it with a port-forward, or put it behind an Ingress with sign-in.

helm install kubexray oci://ghcr.io/kubexray/charts/kubexray -n kubexray --create-namespace
Helm chart values →

On your laptop

One binary that uses your kubeconfig, like kubectl. It prints which cluster it's reading before it connects.

brew install --cask kubexray/tap/kubexray
All releases →

Watch an incident as it happened

A ConfigMap edit breaks checkout a minute later. See kubexray catch it, explain it and trace it back.