{ "_description": "Per-metric regression thresholds. A metric regresses when current - baseline exceeds BOTH the percentage and absolute bounds (AND, not OR — this tolerates small-value noise). Defaults apply unless a per-metric override exists.", "_bucket_note": "SpanMetrics latency histograms use explicit buckets [0.01,0.05,0.1,0.25,0.5,1,5,10,25,50,100,250,500]ms then [1,2,3,4,5,10,30]s (20 edges; docker/telemetry/otel-collector-config.yaml is the authoritative list). An earlier version of this note claimed 15 edges starting at 1ms and justified the 10ms absolute span bound as \"~2 low-end bucket widths\" — that derivation is void, because the sub-millisecond edges make the low-end bucket width 0.01ms, not 5ms. The 10ms bound is retained on its own merit: it is roughly two bucket widths in the 5-25ms band where most span quantiles actually sit, so it still absorbs single-bucket quantization jitter while catching multi-bucket regressions. Second-scale consensus spans have 2s/3s/4s boundaries, so their quantiles quantize to ~1s widths there. The job_queue running bound is widened similarly — per-ledger apply work scales with TxQ burst load. NOTE: the native job_queue histograms are microsecond-valued and their ladder was re-cut (floor 100us → 1us), so any job_queue baseline captured before that change is an interpolation artefact, not a latency.", "defaults": { "span": { "p50": { "max_pct_increase": 50.0, "max_abs_increase_ms": 10.0 }, "p95": { "max_pct_increase": 50.0, "max_abs_increase_ms": 10.0 }, "p99": { "max_pct_increase": 50.0, "max_abs_increase_ms": 15.0 } }, "job_queue": { "p95": { "max_pct_increase": 50.0, "max_abs_increase_us": 20000.0 } } }, "overrides": { "span.consensus.ledger_close": { "p50": { "max_pct_increase": 5.0, "max_abs_increase_ms": 200.0 }, "p95": { "max_pct_increase": 5.0, "max_abs_increase_ms": 500.0 }, "p99": { "max_pct_increase": 5.0, "max_abs_increase_ms": 1000.0 } }, "span.consensus.accept": { "p50": { "max_pct_increase": 5.0, "max_abs_increase_ms": 200.0 }, "p95": { "max_pct_increase": 5.0, "max_abs_increase_ms": 500.0 }, "p99": { "max_pct_increase": 5.0, "max_abs_increase_ms": 1000.0 } } } }