RunnerManagerNotRequestingJobs
A runner manager completed no job request in 10 minutes, for 10 minutes. A manager polls continuously whether or not there is work (on the job router path about 15 long-polls per 10 minutes, each returning a job or no_job), so zero means it stopped polling. The pod stays Ready and logs nothing while this lasts.
The rule uses the job router request counter, so it covers the shards with FF_USE_JOB_ROUTER on. On the direct HTTP path the runner labels every API request endpoint="metrics" behind the ci-gateway URL, so there is no per-pod job request counter there yet.
Impact
Section titled “Impact”The manager runs no new jobs until it polls again. On a shard with request_concurrency = 1 one stuck request is enough.
Causes seen so far
Section titled “Causes seen so far”- Worker disabled by the health check. Three job requests in a row judged unhealthy disable the worker for
unhealthy_interval(1h by default).gitlab_runner_worker_health_check_failures_totalfor the pod increases and the log hasRunner ... is unhealthy and will be disabled. TheError requesting a joblines before it have the response. Restarting the pod clears it early. If a whole shard shows this and the cause is the request path rather than the token, turnFF_USE_JOB_ROUTERoff for the shard and open a runner issue with the response. - A request that never returns.
gitlab_runner_request_concurrencyfor the pod stays at its configured maximum, the health check counter does not move, nothing is logged. Observed on the private shard for 30 to 60 minutes at a time, several pods at once, ending on their own. Restarting the pod releases it.
What to check
Section titled “What to check”- How many pods on the shard fire at once. A handful is the known pattern; all of them points at KAS or the router.
- The rule only considers managers with a free job slot (
gitlab_runner_jobsbelowconcurrentandlimit); one at capacity stops requesting until a job finishes and does not fire.