GitLab CI/CD Analyzer

perlgitlabci-cdcliobservability

GitLab tells you how many SaaS compute minutes you have burned through, but nothing about your self-hosted runners, and no way to put the two side by side. This tool fills that gap.

It pulls CI/CD job data through the glab install you already have, caches it in a local SQLite database, and reports three numbers per job. Run time is how long the job actually ran on a runner, which means the same thing whether the runner is GitLab’s or yours. Paid minutes is the SaaS compute time billed against your quota, and it is zero for self-hosted. Queue wait is how long a job sat waiting for a free runner before it started. That last one is a capacity signal rather than work: a high queue wait means you are short on runners, not that anything got slower.

Point it at a single project or a whole group, and for a group it walks every subgroup underneath. Any breakdown can be split by runner class, which is the reason the tool exists: seeing SaaS and self-hosted usage in the same table.

It is written in Perl, with the SQLite driver bundled so there is nothing to install system-wide.