Workqueue saturation see history edit this page

Talks about: , , , and

Symptom

workqueue_depth{controller="stageset"} stays high; StageSets reconcile slowly or lag behind their spec.interval. The StageSetControllerWorkqueueDepthHigh alert fires (see operations for the alert set and its thresholds).

Cause

The controller is enqueuing reconcile requests faster than it completes them. Common causes:

Diagnosis

# which StageSets are churning?
kubectl get stagesets --all-namespaces --sort-by=.status.observedGeneration
# controller logs for slow operations / retries
kubectl --namespace stageset-system logs deploy/stageset-controller --tail=200

Correlate with controller_runtime_reconcile_time_seconds (see reconcile latency ) and apiserver latency.

workqueue_longest_running_processor_seconds{name="stageset"} answers the question the log cannot: a value climbing towards a stage timeout means a worker is parked inside a reconcile, not that the controller has stopped. Zero, with a non-empty workqueue_depth, points elsewhere.

Remediation