mirror of
https://github.com/XRPLF/rippled.git
synced 2026-03-22 12:42:26 +00:00
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>