Increase p50 SLO threshold from 0.122 to 0.126 ms after post-2026-09-28 shift - #454
Merged
Merged
Conversation
Six consecutive matched baseline+only-tracing runs on master since pipeline 140553788 (2026-09-28 13:39 UTC) show a persistent +3.4% shift on normal_operation/only-tracing agg_http_req_duration_p50, with 90% CI upper bounds reaching 123.685 µs. Throughput is unaffected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: faydef <82442451+faydef@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: faydef <82442451+faydef@users.noreply.github.com>
|
Bits Code status: ✅ Done Comment @DataDog to request changes |
faydef
marked this pull request as ready for review
September 30, 2026 12:04
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
xlamorlette-datadog
approved these changes
Sep 30, 2026
xlamorlette-datadog
left a comment
Collaborator
There was a problem hiding this comment.
For future similar automated PR, I would like to get a better PR description:
- For such a simple change, the summary should be only one sentence (max 20 words I guess).
- Stating what was not changed is noise.
- Given the change is a one-liner, explaining the change is useless, the summary should be enough.
- Evidence should give links to failing jobs.
- Important: Evidence must contain links/logs demonstrating that the increase was observed in the baseline.
- The table and numbers in the Evidence are not readable.
- The final 'Generated with Claude Code' and 'some AI-generated links and images were removed […]' sentences are just noise and useless ad (as 'Sent from my [telephone brand name]').
This comment has been minimized.
This comment has been minimized.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Since 2026-09-28 13:39 UTC,
normal_operation/only-tracingagg_http_req_duration_p50has jumped from a stable ~0.11884 ms mean (48 runs over ~29 days) to ~0.12293 ms (6 consecutive matched runs on master and one feature branch), a +3.4 % / +0.00409 ms shift. The current threshold of< 0.122 msfails on every run since the shift began; five master-branch check-slo-breaches jobs have errored with 90 % CIs reaching[123.487 µs; 123.685 µs]. This PR raises the threshold to< 0.126 msso the SLO gate reflects the new steady state and stops blocking release branches.high_load/only-tracingthroughput is unchanged (mean 4036.9 → 4037.7 op/s, always well above the 3700 op/s SLO), so its threshold is left as-is.Changes
agg_http_req_duration_p50threshold fornormal_operation/only-tracingfrom< 0.122 msto< 0.126 ms.warning_range: 2is preserved, so the warning band tracks the new SLO.Sizing rationale
Post-shift 90 % CI upper bound peaked at 123.685 µs; 0.126 ms leaves ~2.3 µs of buffer, matching the ~2–3 µs buffer used in prior threshold bumps (PRs #354, #385, #429).
Testing/Validation
python3 -c "import yaml; yaml.safe_load(open('.gitlab/bp-runner.fail-on-breach.yml'))".git difffrom the pre-session base — the only functional change is the threshold value.Evidence
Historical daily-mean
apm_sdk_slo.v1.measurement{project:nginx-datadog,metric:agg_http_req_duration_p50,scenario:normal_operation/only-tracing,statistic:mean}for the last 30 days:| Window | Runs | Min | Max | Mean | | --- | --- | --- | --- | --- | | 2026-08-30 → 2026-09-27 | 48 | 0.11763 ms | 0.11994 ms | 0.11884 ms | | 2026-09-28 → 2026-09-29 | 6 | 0.12208 ms | 0.12359 ms | 0.12293 ms |
Failing check-slo-breaches jobs on master with reported 90 % CIs on p50:
| Job | Pipeline | Start (UTC) | 90 % CI on p50 | | --- | --- | --- | --- | | 2085294589 | 140553788 | 2026-09-28 13:39 | [123.487 µs; 123.685 µs] | | 2086161863 | 140619512 | 2026-09-28 16:06 | [123.001 µs; 123.288 µs] | | 2087791446 | 140763707 | 2026-09-28 23:33 | [122.829 µs; 123.003 µs] | | 2088668144 | 140840356 | 2026-09-29 09:21 | [122.927 µs; 123.124 µs] | | 2088790411 | 140850056 | 2026-09-29 09:53 | [122.731 µs; 122.937 µs] |
Job URLs follow the pattern
https://gitlab.ddbuild.io/DataDog/apm-reliability/nginx-datadog/-/jobs/<job-id>(e.g..../jobs/2085294589,.../jobs/2086161863,.../jobs/2087791446,.../jobs/2088668144,.../jobs/2088790411,.../jobs/2089008535).The shift is confined to per-request latency (throughput is flat) and starts one minute after commit b7d2e16 (Upgrade C++ Tracer from v2.1.1 to v2.3.0, 2026-09-28 13:38 UTC) landed on master. Given the tracer-version alignment, the underlying cause should be investigated separately; this PR only unblocks CI at the observed steady state.
Marking as draft for review.
🤖 Generated with Claude Code
PR by Bits - View session in Datadog