§01Latency budgets for CI
Catch the 14 ms regression before it ships.
Gaugeline replays two thousand recorded production requests against every pull request, compares each span with main and fails the check when a budget is crossed. One YAML file. Nothing new running in production.
- 01Median check time
- 4 min 10 s
- 02Requests per run
- 2,000
- 03False-positive rate
- 0.6 %
§02How it works
Four minutes from push to a red check.
Everything runs in your CI. Production only ever sees a sidecar that reads.
-
01 / 05
1. Capture
A sidecar samples real requests at the edge, strips personal data by schema and keeps a rolling set of two thousand.
2,000 requests
-
02 / 05
2. Replay
Both builds run in identical containers on one host, interleaved request by request, so noise lands on both equally.
main + PR
-
03 / 05
3. Compare
Every span is compared at p50, p95 and p99. A change is reported only when its confidence bound clears your threshold.
99 % bound
-
04 / 05
4. Gate
Budgets live in gaugeline.yml next to your code. Cross one and the check fails; raise it in the same pull request and a reviewer sees why.
p95 ≤ 120 ms
-
05 / 05
5. Report
One comment on the pull request: the span that moved, by how much, and the commit that moved it.
1 comment
§03Configuration
The whole setup is one YAML file.
Budgets are reviewed like code because they are code. This is the file a new team commits on day one.
01# gaugeline.yml02version: 203capture:04 requests: 2000105 redact: [email, card, token]06replay:07 order: interleaved208 baseline: main09budgets:10 - route: POST /checkout11 p95: 120ms312 - route: GET /search13 p95: 80ms14 p99: 200ms15compare:16 confidence: 0.99417 min_change: 3ms18report:19 comment: on_regression
Line 04
Two thousand real requests
Sampled at the edge by the sidecar. Personal fields are dropped by schema before anything is stored.
Line 07
Interleaved, never in sequence
Main and the pull request answer the same request back to back on one host, so a noisy neighbour hits both.
Line 11
A budget per route
Cross it and the check fails. Raise it in the same pull request and the reviewer sees the change in the diff.
Line 16
Only what it can prove
A change is reported when its 99 % bound clears min_change. That is how false positives stay at 0.6 %.
§04Figures
Noise is what kills a latency check.
Most performance gates are switched off within a month because they cry wolf. These are Gaugeline's numbers across 1,140 repositories in September.
-
01False-positive rate
0.6%
Failed checks that the author later marked as noise.
-
02Smallest regression caught
3ms
At p95, from 2,000 requests, with a 99 % confidence bound.
-
03Median check time
250s
From the push to the status on the pull request.
-
04Repositories gated
1,140
Teams from four people to four hundred.
§05Notes
Questions we get in code review.
Does it touch production?
Only the capture sidecar does, and it only reads, adding under 0.2 ms at p99. Replays run in your CI, against your build.
What about requests with side effects?
Writes are replayed against a throwaway database snapshot taken at capture time. Outbound calls are answered from recorded responses.
How is this different from a load test?
A load test asks how much traffic you can take. Gaugeline asks whether this change made the same traffic slower, and by how much.
Can I fail a check on purpose?
Yes: lower a budget in gaugeline.yml and push. Most teams do this in their first hour to see the comment they will get.
§06Pricing
Priced per repository, not per seat.
Everyone on the team sees the checks. Every plan starts with fourteen days free, without a card.
-
- Item
- 01
- Qty
- 1 repo
- Rev
- 4
Team
$49per repo / month
For a service or two with one main branch.
Start a trial→Bill of materials, Team Pos Qty Description 01 2,000 Recorded requests per run 02 All Pull requests and budgets 03 2 CI providers: GitHub, GitLab 04 30 d Trace retention -
- Item
- 02
- Qty
- 1 repo
- Rev
- 4
- Note
- Recommended
Scale
$149per repo / month
For teams that gate every service in a monorepo.
Start a trial→Bill of materials, Scale Pos Qty Description 01 10,000 Recorded requests per run 02 All Budgets, scoped by path 03 6 CI providers, every one we support 04 1 SSO and audit log 05 90 d Trace retention -
- Item
- 03
- Qty
- 1 org
- Rev
- 4
Self-hosted
From$12kper year
Replay workers inside your own VPC.
Talk to us→Bill of materials, Self-hosted Pos Qty Description 01 1 Everything in Scale 02 1 Air-gapped install in your VPC 03 1 Bucket in your own object storage 04 1 Named support engineer
§07Start
Put a number on every pull request.
Fourteen days, every feature, no card. Most teams have their first budget failing on purpose within the hour.
Releasedfor productionRev 4 · 2026-10-30GL-240