From 3a3ae1c3aeba6528ffa01b53d9056691a4bf3556 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Mon, 17 Aug 2026 12:02:46 +0100 Subject: [PATCH] fix(telemetry): name the job-queue depth metric jobq_job_count The integration test asserted `rippled_job_count`, which never reports any series, so that check always failed. `JobQueue` registers the gauge as `makeGauge("job_count")`, but `Application.cpp` passes it `collectorManager_->group("jobq")`, so the emitted StatsD name is `jobq.job_count` and the exported Prometheus name is `_jobq_job_count`. Corrected the same name in two runbook tables that also dropped the `jobq` segment. `09-data-collection-reference.md` already had it right, which is why the two documents disagreed. Routed here rather than to the phase-10 PR where it was reported: the wrong name is present in `integration-test.sh` on every branch from phase 6 onward, and this is the branch that introduces the file. Left alone deliberately: - `statsd-node-health.json` still queries the old name, but that dashboard is deleted at phase 7 in favour of `node-health.json` - `06-implementation-phases.md` names `job_count`, which is accurate as the code-level makeGauge argument rather than the exported metric name --- docker/telemetry/integration-test.sh | 2 +- docs/telemetry-runbook.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/telemetry/integration-test.sh b/docker/telemetry/integration-test.sh index 0ba2327da7..fb9f4eda06 100755 --- a/docker/telemetry/integration-test.sh +++ b/docker/telemetry/integration-test.sh @@ -589,7 +589,7 @@ check_statsd_metric() { # Node health gauges check_statsd_metric "rippled_LedgerMaster_Validated_Ledger_Age" check_statsd_metric "rippled_LedgerMaster_Published_Ledger_Age" -check_statsd_metric "rippled_job_count" +check_statsd_metric "rippled_jobq_job_count" # State accounting check_statsd_metric "rippled_State_Accounting_Full_duration" diff --git a/docs/telemetry-runbook.md b/docs/telemetry-runbook.md index 9c5337508b..0c7a2ca68d 100644 --- a/docs/telemetry-runbook.md +++ b/docs/telemetry-runbook.md @@ -541,7 +541,7 @@ The OTel Collector receives these via a `statsd` receiver on UDP port 8125 and e | `xrpld_Peer_Finder_Active_Inbound_Peers` | PeerfinderManager.cpp:214 | Active inbound peer connections | | `xrpld_Peer_Finder_Active_Outbound_Peers` | PeerfinderManager.cpp:215 | Active outbound peer connections | | `xrpld_Overlay_Peer_Disconnects` | OverlayImpl.h:557 | Peer disconnect count | -| `xrpld_job_count` | JobQueue.cpp:26 | Current job queue depth | +| `xrpld_jobq_job_count` | JobQueue.cpp:26 | Current job queue depth | | `xrpld_{category}_Bytes_In/Out` | OverlayImpl.h:535 | Overlay traffic bytes per category (57 categories) | | `xrpld_{category}_Messages_In/Out` | OverlayImpl.h:535 | Overlay traffic messages per category | @@ -728,7 +728,7 @@ Requires `trace_peer=1` in the `[telemetry]` config section. | Operating Mode Duration | timeseries | `xrpld_State_Accounting_*_duration` | — | | Operating Mode Transitions | timeseries | `xrpld_State_Accounting_*_transitions` | — | | I/O Latency | timeseries | `histogram_quantile(0.95, xrpld_ios_latency_bucket)` | — | -| Job Queue Depth | timeseries | `xrpld_job_count` | — | +| Job Queue Depth | timeseries | `xrpld_jobq_job_count` | — | | Ledger Fetch Rate | stat | `rate(xrpld_ledger_fetches[5m])` | — | | Ledger History Mismatches | stat | `rate(xrpld_ledger_history_mismatch[5m])` | — | | Key Jobs Execution Time | timeseries | `xrpld_acceptLedger{quantile="$quantile"}` (+ 10 more key jobs) | `quantile` |