Skip to content

Infrastructure

Know which pod broke it,and which deploy shipped it.

Pods, nodes and deploys sit next to the services they run. When checkout starts crash-looping, you see the pod, its version and the failing request together.

cluster prod-eu · 3 nodes · 12 pods

node-a

node-b

node-c

checkout · v2.14

checkout-7f9c

status
crash
restarts
14
memory
91%
cpu96%
memory91%

In CrashLoopBackOff since deploy v2.14. It runs out of memory at boot and has restarted 14 times. The last trace shows the config loader allocating 1.8 GiB.

Click a pod or pick a deploy. The crash follows v2.14 around, whichever node it lands on.

Fewer kubectl commands per outage.

The routine you know by heart, and the shorter version.

Today

5 steps · 3 tools
  1. 1kubectlget pods, spot the CrashLoopBackOff
  2. 2kubectldescribe pod, read the events
  3. 3kubectllogs --previous, scroll to the stack trace
  4. 4ArgoCDfind which sync shipped this image
  5. 5Grafanacheck whether memory was the limit

With FerrisTrace

2 steps · 1 tool
  1. 1FerrisTraceclick the red pod
  2. 2FerrisTraceread deploy, restarts, memory and last trace on one card

You read one card instead of running five commands.

What the cluster view shows.

  • Pods by node and serviceState, restarts, CPU and memory, with unhealthy pods in red and amber.
  • Version on every podPut two deploys side by side and see which one the errors follow.
  • Pod in every traceSpans carry the pod, node and deployment, so you can filter traces by any of them.
  • Alerts that name the podAlerts name the pod and the deploy involved, next to the metric that fired.
  • Any clusterManaged or on-premise, it works wherever the OpenTelemetry Collector runs.
  • GitOps readySelf-host it from the Kustomize manifests and let ArgoCD deploy it with your apps.

Put your pods next to your traces.

Point an OpenTelemetry Collector at FerrisTrace and your pods show up on the map.