From f547c80f4cf6c6f207a79aaf879c04a48f2c36bc Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 23 Jul 2026 14:05:37 +0100 Subject: [PATCH] fix(telemetry): mirror second-scale histogram buckets into Alloy config The Alloy spanmetrics connector (perf-iac nodes run Alloy instead of the collector-contrib image) carried the same old [.. 1s, 5s] bucket list, whose buckets are documented as "copied from" the collector config. Sync it to the 15-bucket layout (adds 2s, 3s, 4s, 10s, 30s) so Alloy-fed nodes get the same accurate second-scale consensus and ledger.acquire percentiles as collector-fed nodes. unit was already "ms". Kept strictly ascending. Co-Authored-By: Claude Opus 4.8 (1M context) --- docker/telemetry/alloy/config.alloy | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docker/telemetry/alloy/config.alloy b/docker/telemetry/alloy/config.alloy index f56a947426..87cb52ca16 100644 --- a/docker/telemetry/alloy/config.alloy +++ b/docker/telemetry/alloy/config.alloy @@ -189,7 +189,14 @@ otelcol.connector.spanmetrics "xrpld" { histogram { unit = "ms" explicit { - buckets = ["1ms", "5ms", "10ms", "25ms", "50ms", "100ms", "250ms", "500ms", "1s", "5s"] + // Buckets MUST stay strictly ascending (the connector binary-searches + // them and silently misbuckets otherwise) and MUST match the two + // otel-collector-config*.yaml lists. Sub-second boundaries cover + // RPC/tx/ledger spans; 2s-4s resolve second-scale consensus spans + // (consensus.round ~3.9s, consensus.establish ~1.9s) that used to pile + // into one 1s-5s bucket; 10s/30s give the ledger.acquire catch-up tail + // (~17% exceeds 5s) a measurable home so its p95/p99 stop reading +Inf. + buckets = ["1ms", "5ms", "10ms", "25ms", "50ms", "100ms", "250ms", "500ms", "1s", "2s", "3s", "4s", "5s", "10s", "30s"] } }