Monitoring Your Fleet
A few views show what your fleet is doing now and lately. None need extra setup — they read the same state the orchestrator already tracks.
Fleet overview
Section titled “Fleet overview”The home page is a live dashboard of the whole fleet:
- KPI tiles — live jobs, queued jobs, total capacity, hosts, scale sets, and connected orgs at a glance.
- Per-scale-set capacity bars — how full each pool is against its ceiling.
- Per-host rows — each host’s live CPU, RAM, disk, and load gauges.
- Recent events — the latest entries from the event timeline.
The dashboard updates as things change rather than on a fixed poll, so a saved setting or a new job shows up within about a second.
The jobs page lists GitHub Actions jobs correlated to your runners: status, how long each waited in the queue, how long it ran, whether it passed or failed, and which runner picked it up.
A badge near the page title reports for how many of your orgs webhooks are active. Enabling webhooks for an org makes its job history complete — without them the job list is filled by polling, which is accurate but may miss short-lived jobs between polls.
Idle vs. busy runners
Section titled “Idle vs. busy runners”A status poll every 30 seconds checks GitHub and splits your live runners into idle and busy, so the UI reflects which runners are actually executing a job versus waiting for one. This poll only reads state — it never spawns or removes anything.
Events
Section titled “Events”The events page is a filterable, append-only timeline. It records reconciler decisions (spawns, reaps, drains), backoff transitions, GitHub and Docker incidents, and runner state changes. Entries are kept for 14 days by default and then swept. Use it as your first stop when a runner doesn’t appear or a host goes quiet.
Cost savings
Section titled “Cost savings”The cost-savings view estimates what the same work would have cost on GitHub-hosted runners. It’s computed against the lowest GitHub-hosted tier, so it’s conservative by design — larger hosted runners cost more, so your real savings are at least what’s shown. Treat it as a floor, not an invoice.