Cost Analytics for GitHub Actions Pipelines
GitHub Actions provides runner pricing and monthly billing summaries, but slicing that data by repository, workflow, branch, or team is difficult. Engineering leaders need this granular visibility to make informed decisions about CI/CD investments and identify optimisation opportunities.
OrbitCI now tracks costs at the job level. Every job generates an OpenTelemetry span with a new orb.job.cost attribute representing the cost of running that job on its specified runner type. Currently this works for GitHub-hosted runners. Self-hosted runner cost tracking is coming soon. Combined with the existing span context (repository, branch, workflow, runner type), you can slice costs however you need.
Key capabilities:
- Cost attribution - Understand which repositories, workflows, and teams drive CI spending
- Waste identification - Quantify resources spent on failed jobs or retries
- Optimisation measurement - Track savings from switching to smaller runners or ARM architecture
- Forecasting - Project future costs based on actual usage patterns
As the GitHub workflow job span contains all the additional metadata about the repository, workflow, runner and job, the job-level data rolls up to any level:
- Repository - Compare costs across repositories and projects
- Workflow - Identify expensive workflows running multiple jobs
- Branch type - Analyse PR builds vs. production deploys
- Outcome - Understand the cost of job failures
Using the new span attribute, it's straightforward to query the cost of flaky pipelines across your CI estate. Here's an example in Datadog:

Reach out to us at hello@orbit.ci to get started with OrbitCI and gain visibility into your GitHub Actions costs.
No spam, no sharing to third party.