Skip to main content
Reference for the compute contention feature. Operational steps are in the guide.

Helm values

Thresholds are evaluated by the broker, so a change takes effect on the next findings poll without a controller restart.

Environment variables

Rendered by the chart; listed here for operators who run the binaries another way. Controller (kguardian-controller DaemonSet) When compute.enabled is false the chart renders only COMPUTE_ENABLED=false and no /sys/fs/cgroup mount. Broker (kguardian-broker Deployment) — rendered regardless of compute.enabled, so a cluster that turns the feature off still prunes what it collected. Two windows are fixed and run whatever retentionDays is: a container’s live row goes 10 minutes after its node last reported it (in batches of AUDIT_VERDICTS_RETENTION_BATCH_SIZE rows, so a backlog of dead containers is worked off across a pass rather than one batch per pass), and a node’s row goes about an hour after the node last reported at all (the pass runs every 600 s), so a node that left the cluster drops out of GET /compute/nodes about an hour after its last report.

Pod annotation

Broker endpoints

All read endpoints return JSON and are metered by the broker’s read budget. The two POSTs are for the controller. When broker.auth.enabled is set, the GETs need a token with the read scope and the POSTs need ingest (see Authentication).

Finding

Findings response

History row

GET /compute/history/{pod_uid} rows carry resolution_secs (60 or 300); gauges are stored as _avg / _max / _last columns (cpu_usage_millis, mem_current, mem_working_set, cpu_psi_some10, cpu_psi_full10, mem_psi_some10, mem_psi_full10), counters (cpu_nr_periods, cpu_nr_throttled, cpu_throttled_usec, mem_events_high, mem_events_max, mem_oom_kill, mem_refault, mem_pgmajfault, runq_count) are sums over the row’s interval, and runq_hist is the 24-bucket log2 latency histogram (bucket b is [2^b, 2^(b+1)) µs; bucket 23 is overflow and is never reported as a finite maximum).