Files
rippled/docker/telemetry/workload/baselines/baseline-timings.json
Pratik Mankawde 1282645289 test(telemetry): invalidate job-queue baselines captured on the old ladder
The workload harness gates regressions on histogram_quantile over
job_queued_us / job_running_us, so re-cutting the microsecond ladder changes
what those queries return and the stored baselines no longer describe the
same measurement.

baseline-timings.json's job.acceptLedger.queued.p95 was 96.79us, which is
0.95 / 0.9926 x 100 -- the old 100us bucket edge scaled by the quantile, with
99.3% of samples beneath it. It was never a latency. Keeping it would make the
gate LESS sensitive rather than more: a genuine regression from a real 40us to
90us would still sit under 96.79us + 50% and pass.

Removes the four job.* entries and records why, including their values. The
comparer reports a metric absent from the baseline as "new metric (not in
baseline)" and skips it, so the span baselines stay live and gating continues
for everything unaffected. is_placeholder() still returns False, so this does
not disable the gate wholesale. Recapture the job.* numbers on a node running
the re-cut ladder.

Also corrects _bucket_note in regression-thresholds.json. It described the
spanmetrics ladder as 15 edges starting at 1ms; the collector config has 20,
including five sub-millisecond edges. The note's own reasoning was void too --
it justified the 10ms absolute span bound as "~2 low-end bucket widths", but
the low-end bucket width is 0.01ms, not 5ms. The bound is kept and justified
on the band where span quantiles actually sit, rather than on a derivation
from a ladder that no longer exists.
2026-08-21 12:49:56 +01:00

107 lines
3.0 KiB
JSON

{
"_note": "job.* entries were removed on 2026-08-21. They were captured against the old microsecond ladder whose first edge was 100us, with 99.3% of job_queued_us samples beneath it, so job.acceptLedger.queued.p95 = 96.79us was 0.95/0.9926 x 100 -- arithmetic on the bucket edge, not a latency. Recapture them on a node running the re-cut ladder (floor 1us); until then the comparer reports them as \"new metric (not in baseline)\" and gates only the span metrics, which are unaffected. Removed values, for reference: job.acceptLedger.queued.p95=96.79us, job.acceptLedger.running.p95=10562.50us, job.transaction.queued.p95=478.97us, job.transaction.running.p95=494.14us.",
"captured_at": "2026-06-05T18:41:52Z",
"git_sha": "fd1c8c6060f7a15cc9e65b16f99629d9ab7ac7dc",
"metrics": {
"span.consensus.accept.p50": {
"unit": "ms",
"value": 1.059405940594059
},
"span.consensus.accept.p95": {
"unit": "ms",
"value": 9.749999999999996
},
"span.consensus.accept.p99": {
"unit": "ms",
"value": 23.704545454545432
},
"span.consensus.ledger_close.p50": {
"unit": "ms",
"value": 0.5284697508896797
},
"span.consensus.ledger_close.p95": {
"unit": "ms",
"value": 1.511111111111103
},
"span.consensus.ledger_close.p99": {
"unit": "ms",
"value": 7.878571428571429
},
"span.ledger.build.p50": {
"unit": "ms",
"value": 0.7412060301507538
},
"span.ledger.build.p95": {
"unit": "ms",
"value": 4.611111111111112
},
"span.ledger.build.p99": {
"unit": "ms",
"value": 7.541666666666674
},
"span.ledger.store.p50": {
"unit": "ms",
"value": 0.5
},
"span.ledger.store.p95": {
"unit": "ms",
"value": 0.95
},
"span.ledger.store.p99": {
"unit": "ms",
"value": 0.9900000000000001
},
"span.ledger.validate.p50": {
"unit": "ms",
"value": 0.5283687943262412
},
"span.ledger.validate.p95": {
"unit": "ms",
"value": 1.3666666666666627
},
"span.ledger.validate.p99": {
"unit": "ms",
"value": 6.699999999999978
},
"span.rpc.ws_message.p50": {
"unit": "ms",
"value": 0.5026522773001647
},
"span.rpc.ws_message.p95": {
"unit": "ms",
"value": 0.9550393268703128
},
"span.rpc.ws_message.p99": {
"unit": "ms",
"value": 0.9952515090543261
},
"span.tx.apply.p50": {
"unit": "ms",
"value": 0.6330472103004292
},
"span.tx.apply.p95": {
"unit": "ms",
"value": 4.203389830508474
},
"span.tx.apply.p99": {
"unit": "ms",
"value": 5.083333333333319
},
"span.tx.process.p50": {
"unit": "ms",
"value": 0.5042801992591597
},
"span.tx.process.p95": {
"unit": "ms",
"value": 0.9581323781882418
},
"span.tx.process.p99": {
"unit": "ms",
"value": 0.998474791584883
}
},
"profile": "full-validation",
"schema_version": 1,
"window": "3m"
}