PricingPricingDocsDocsBlogBlogBook a demoBook a demoCompanyCompany (opens in a new tab)
Product
DocsAPI ReferencePricingConsole DemoBlogCompany
Start Freev3.4.7
Wave Diagnosis

Pod & Container Failures

Detects abnormal pod and container terminations and keeps the logs, YAML, and timeline you need to find the cause.

The challenge

The Pod restarts every 5 minutes, and kubectl get shows only CrashLoopBackOff

kubernetes.io, Pod Lifecycle and Assign Memory Resources to Containers and Pods; Komodor, 2025 Enterprise Kubernetes Report.

kubectl get pods shows CrashLoopBackOff, not the cause. The cause, such as OOMKilled, is in kubectl describe, and the log of the failed container is in kubectl logs --previous.

Between restarts the kubelet waits 10s, 20s, 40s, and so on, up to 5 minutes. By the time someone looks, the log of the container that failed is often gone.

A high-impact Kubernetes outage takes a median of 51 minutes to resolve, and 39% take an hour or more (Komodor, 2025 Enterprise Kubernetes Report).

Restart loop, then a failure with its typeWithout WaveWith WaveOOMKilledrestarts, no causetype + logs saved
Without Wave
Restarts with a growing back-off, and no cause shownSTATUS CrashLoopBackOff RESTARTS 610s20s40s80s160s300skubectl get does not show OOMKilled
kubectl get shows CrashLoopBackOff, not why. The container has restarted 6 times so far, after 10s, 20s, 40s, and so on, up to 5 minutes.
With Wave
One detected failure with its type and saved filesOOMKilled · api-7f9cDetected: container killed for memorySaved for youprevious logpod.yamlnode.yaml
Wave records each failure with its type, and keeps the previous log, pod.yaml, and node.yaml when they are available.

Back-off: 10s, doubling, up to 5 minutes (kubernetes.io, Pod Lifecycle). Restart count is illustrative.

How Wave does it

From a container failure to its cause
Kubernetes by defaultCause found by hand, if the log is still there
  1. Container
    goes over its memory limit, or crashes
  2. ↓restart→
    kubelet
    restarts it after 10s, 20s, 40s, up to 5 min
  3. ↓status→
    kubectl get pods
    shows CrashLoopBackOff, not the cause
  4. ↓by hand→
    Engineer
    runs kubectl describe and logs --previous
Wave DiagnosisType and log kept for each failure
  1. Wave Agent
    with cAdvisor on every node, reports each state change
  2. ↓gRPC→
    Wave Core
    matches 11 failure types, no polling
  3. ↓on failure→
    Evidence
    previous log, pod.yaml, node.yaml, kept at failure time
  4. ↓incident→
    Wave Console
    48-hour heatmap and incident timeline
Default lane: kubernetes.io (Pod Lifecycle, Resource Management for Pods and Containers, Assign Memory Resources). Wave lane: Wave Pod/Container Failures docs and Wave Architecture docs.
1

Detect 11 abnormal transitions

OOMKilled, CrashLoopBackOff, ContainerCrash, evictions, preemptions, and more, from the data Wave Agent already pushes. Nothing to enable per workload.

2

Keep the evidence

At the moment of failure, Wave keeps the previous container's log, pod.yaml, and node.yaml.

3

Show when it started

A 48-hour heatmap per workload, then an incident timeline with a plain-language explanation of what failed and what to check.

Related in Wave Diagnosis

Memory Leak Detection →Pod Scheduling Delay Detection →CPU Utilization Analysis →Idle Node Detection →Unused PV Detection →Cluster Resource Forecast →PV Capacity Forecast →Read the docs →
Book a demoStart free
Product
WaveWave GPULLM Serving Professional ServiceWave AI Agent2026 Q4
Resources
DocsAPI ReferenceBlogConsole DemoPricing
Company
STCLabBook a demoContact
STCLab© 2026 Wave All rights reserved.
Terms of ServicePrivacy PolicyCookies