Find the slow step, then the expensive one
CI observability and analytics
Per-job duration, queue time, cache hit rate and cost, broken down by workflow, label and repository.
Duration percentiles
p50 and p95 per job, because the average hides the runs that hurt.
Cost attribution
Spend per workflow, per label, per repository, per team.
Cache insight
Hit rate and restore time per cache key.
OpenTelemetry export
Ship CI spans to the tracing backend you already run.
Most CI optimisation work targets the wrong step because nobody measured. Duration percentiles per job usually reveal that one flaky integration test, not the build, owns your p95.
Common questions
- What should I look at first?
- p95 duration, not the mean. Developers experience the slow tail, and a healthy average with a triple-length p95 means half your team is waiting.
- How do I find which workflow got slower?
- Compare p95 per workflow month over month, and segment by cache hit and miss — those are effectively two different distributions and a regression often only affects one.
- Can I export this to my own tooling?
- Yes. Workflow runs export as OpenTelemetry traces with jobs and steps as spans, so CI sits alongside production telemetry in whatever backend you already run.
Your next build could be twice as fast, at half the price
Start free. Migrating away is the same one line, and we publish that diff too.