Files
rippled/docker/telemetry
Pratik Mankawde 84cf05d230 Fix all 5 remaining telemetry validation failures
Root causes investigated and fixed:

1. span.attrs.tx.receive — xrpl.tx.suppressed and xrpl.tx.status were
   only set conditionally (suppressed/bad paths). Added defaults ("new",
   false) on span creation so attributes are always present.

2. Peer_Finder_Active_Inbound/Outbound_Peers — metrics existed in
   Prometheus but went stale (gauge value stabilized, no new emissions).
   Changed validation to use /api/v1/series endpoint which finds metrics
   regardless of staleness.

3. rippled_jobq_job_count — gauge value was always 0 at sample time and
   never marked dirty (initial m_dirty=false, value never changed from 0).
   Set StatsDGaugeImpl m_dirty=true in constructor so all gauges emit
   their initial value on first flush.

4. rippled_ios_latency — I/O latency sampler has 10ms threshold that was
   never reached in CI. Added first-sample unconditional emission so the
   metric is registered in Prometheus on startup.

5. RPC load generator — switched from JSON-RPC format ({"method":...}) to
   native WebSocket command format ({"command":...}) matching tx_submitter.
   Fixed success detection to check response.status == "success".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:59:16 +00:00
..