Guides
How to export CI traces with OpenTelemetry
CI timing data lives in a separate tool from the rest of your observability.
6 min read
CI timing data lives in a separate tool from the rest of your observability.
Why it happens
Workflow runs are naturally traces — jobs and steps are spans — but nothing emits them by default.
How to fix it
- Model the run as a trace with jobs and steps as child spans
- Export to your existing backend so CI sits alongside production telemetry
- Use span attributes for runner label, cache hit and exit code
- The critical path becomes visible immediately, which a duration list never shows
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.
Related
How to collect runner metricsYou cannot tell whether a job is CPU-bound, memory-bound or disk-bound.How to track build duration percentilesAverage build time looks fine but developers still complain.How to query CI data programmaticallyYou need CI data in a dashboard or a weekly report.How to run a weekly CI health reportCI degrades gradually and nobody notices until it is bad.