Skip to content

Phase 6: Integrate beast::insight StatsD metrics into telemetry pipeline#6439

Draft
pratikmankawde wants to merge 1 commit intopratik/otel-phase5-docs-deploymentfrom
pratik/otel-phase6-statsd
Draft

Phase 6: Integrate beast::insight StatsD metrics into telemetry pipeline#6439
pratikmankawde wants to merge 1 commit intopratik/otel-phase5-docs-deploymentfrom
pratik/otel-phase6-statsd

Conversation

@pratikmankawde
Copy link
Collaborator

@pratikmankawde pratikmankawde commented Feb 26, 2026

PR Chain: #6436#6437#6438#6424#6425#6426#6427#6433 / #6439 (this PR)
Base: pratik/otel-phase5-docs-deployment

Summary

  • Adds StatsD receiver to the OTel Collector, bridging rippled's 300+ existing beast::insight metrics into Prometheus alongside span-derived RED metrics
  • Creates 3 new Grafana dashboards (24 panels): Node Health, Network Traffic, RPC & Pathfinding (StatsD)
  • Adds 6 new spans (ledger.build, ledger.validate, ledger.store, tx.apply, peer.proposal.receive, peer.validation.receive) and expands existing dashboards to 32 panels
  • Extends integration test to verify StatsD metrics flow through the pipeline

Chained on: #6427 (Phase 5)

Details

StatsD Pipeline Integration

  • OTel Collector statsd receiver on UDP 8125 with timer_histogram_mapping for histogram conversion
  • [insight] config added to integration test node configs (server=statsd, address=127.0.0.1:8125, prefix=rippled)
  • Metrics pipeline: receivers: [spanmetrics, statsd] → single Prometheus endpoint on port 8889

New Grafana Dashboards (StatsD)

  • Node Health: Validated/Published Ledger Age, Operating Mode, I/O Latency, Job Queue, Ledger Fetch/History
  • Network Traffic: Active Peers, Disconnects, Bytes/Messages In/Out, TX/Proposal/Validation Traffic
  • RPC & Pathfinding: RPC Rate/Latency/Size, Pathfinding Fast/Full Duration, Resource Warnings/Drops

New Spans (6)

  • ledger.build, ledger.validate, ledger.store (fills empty trace_ledger category)
  • tx.apply (transaction batch application per ledger)
  • peer.proposal.receive, peer.validation.receive (extends peer tracing, disabled by default)

Known Limitation

Resource Manager warn and drop metrics use non-standard |m StatsD type which the OTel receiver silently drops. Fix (|m|c in StatsDCollector.cpp:706) is deferred as a separate breaking change (Phase 6 Task 6.1).

Test plan

  • pcc passes on all changed C++ files
  • All dashboard JSON files parse cleanly (python3 -m json.tool)
  • docker compose up starts StatsD receiver on port 8125
  • StatsD metrics visible in Prometheus after configuring [insight] in rippled
  • New spans appear in Jaeger: ledger.build, ledger.validate, ledger.store, tx.apply
  • Integration test passes StatsD metric verification step

🤖 Generated with Claude Code

@codecov
Copy link

codecov bot commented Feb 26, 2026

Codecov Report

❌ Patch coverage is 43.75000% with 9 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (pratik/otel-phase5-docs-deployment@85f583f). Learn more about missing BASE report.

Files with missing lines Patch % Lines
src/xrpld/overlay/detail/PeerImp.cpp 0.0% 6 Missing ⚠️
src/xrpld/app/ledger/detail/LedgerMaster.cpp 40.0% 3 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@                         Coverage Diff                          @@
##             pratik/otel-phase5-docs-deployment   #6439   +/-   ##
====================================================================
  Coverage                                      ?   79.7%           
====================================================================
  Files                                         ?     851           
  Lines                                         ?   67968           
  Branches                                      ?    7602           
====================================================================
  Hits                                          ?   54187           
  Misses                                        ?   13781           
  Partials                                      ?       0           
Files with missing lines Coverage Δ
src/xrpld/app/ledger/detail/BuildLedger.cpp 92.9% <100.0%> (ø)
src/xrpld/app/ledger/detail/LedgerMaster.cpp 42.7% <40.0%> (ø)
src/xrpld/overlay/detail/PeerImp.cpp 5.8% <0.0%> (ø)

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase5-docs-deployment branch from fc1ed3c to 3581839 Compare February 27, 2026 18:01
@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase6-statsd branch from 8e54a05 to 2c0b65a Compare February 27, 2026 18:04
@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase5-docs-deployment branch from 3581839 to 56cc5e6 Compare February 27, 2026 18:06
@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase6-statsd branch from 2c0b65a to b006bb0 Compare February 27, 2026 18:06
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase5-docs-deployment branch from 56cc5e6 to 85f583f Compare February 27, 2026 18:16
@pratikmankawde pratikmankawde force-pushed the pratik/otel-phase6-statsd branch from b006bb0 to f705af8 Compare February 27, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DistributedTracingAndObservability Distributed Tracing And Observability related changes DraftRunCI Normally CI does not run on draft PRs. This opts in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant