From c7b04a043ee58e3c5fe783f8ec24f122efed7fd2 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 9 Jul 2026 14:00:17 +0100 Subject: [PATCH 1/4] fix(telemetry): drop unused from SpanGuard.h (misc-include-cleaner) Co-Authored-By: Claude Opus 4.8 (1M context) --- include/xrpl/telemetry/SpanGuard.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/xrpl/telemetry/SpanGuard.h b/include/xrpl/telemetry/SpanGuard.h index b0a937b9f3..d5e3a5781f 100644 --- a/include/xrpl/telemetry/SpanGuard.h +++ b/include/xrpl/telemetry/SpanGuard.h @@ -122,7 +122,6 @@ exposed — all interaction goes through the public methods. */ -#include #include #include #include From 84f2ff6b58e488a51bf5e407c67f238d87e2b862 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 9 Jul 2026 14:00:20 +0100 Subject: [PATCH 2/4] fix(telemetry): drop unused from Redaction.cpp and its test (misc-include-cleaner) std::ranges::transform/all_of come from , which is already included. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/libxrpl/telemetry/Redaction.cpp | 1 - src/tests/libxrpl/telemetry/Redaction.cpp | 1 - 2 files changed, 2 deletions(-) diff --git a/src/libxrpl/telemetry/Redaction.cpp b/src/libxrpl/telemetry/Redaction.cpp index d6bfe52ec3..7164c4dee6 100644 --- a/src/libxrpl/telemetry/Redaction.cpp +++ b/src/libxrpl/telemetry/Redaction.cpp @@ -6,7 +6,6 @@ #include #include -#include #include #include diff --git a/src/tests/libxrpl/telemetry/Redaction.cpp b/src/tests/libxrpl/telemetry/Redaction.cpp index db1cc95135..2ef6ed377b 100644 --- a/src/tests/libxrpl/telemetry/Redaction.cpp +++ b/src/tests/libxrpl/telemetry/Redaction.cpp @@ -4,7 +4,6 @@ #include #include -#include #include using namespace xrpl; From ebf8b6e8a937d1923b0a9042a46f3fd005d8c9c7 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 9 Jul 2026 14:00:22 +0100 Subject: [PATCH 3/4] fix(telemetry): add to TxTracing.h for std::uint8_t (misc-include-cleaner) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/xrpld/telemetry/TxTracing.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xrpld/telemetry/TxTracing.h b/src/xrpld/telemetry/TxTracing.h index 066c018601..a6633034d3 100644 --- a/src/xrpld/telemetry/TxTracing.h +++ b/src/xrpld/telemetry/TxTracing.h @@ -17,6 +17,8 @@ #include #include +#include + namespace xrpl::telemetry { /** Create a "tx.receive" span for a transaction received from a peer. From 7ab34d2e37b0bcd07bd6844ff508993bb154a3b4 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 9 Jul 2026 15:09:43 +0100 Subject: [PATCH 4/4] fix(telemetry): resolve phase-7 clang-tidy findings - OTelCollector::formatName made static (no member state); braces added; added for std::tolower. - Telemetry.cpp getMeter(): braces around single-statement if. - GetMeter.cpp: drop unused and sync_instruments.h; add and ; make sdkProvider const. - ValidationTracker.h: add for std::size_t. - detail/ValidationTracker.cpp: use std::views::reverse range-based loop; add . - test ValidationTracker.cpp: use auto for cast result. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/libxrpl/beast/insight/OTelCollector.cpp | 11 ++++++++--- src/libxrpl/telemetry/Telemetry.cpp | 2 ++ src/tests/libxrpl/telemetry/GetMeter.cpp | 6 +++--- src/tests/libxrpl/telemetry/ValidationTracker.cpp | 2 +- src/xrpld/telemetry/ValidationTracker.h | 1 + src/xrpld/telemetry/detail/ValidationTracker.cpp | 7 ++++--- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/libxrpl/beast/insight/OTelCollector.cpp b/src/libxrpl/beast/insight/OTelCollector.cpp index 5ce716118c..1b608ba5c8 100644 --- a/src/libxrpl/beast/insight/OTelCollector.cpp +++ b/src/libxrpl/beast/insight/OTelCollector.cpp @@ -56,6 +56,7 @@ #include #include +#include #include #include #include @@ -490,8 +491,8 @@ public: * @param name Raw metric name from beast::insight callers. * @return Fully-qualified metric name. */ - std::string - formatName(std::string const& name) const; + static std::string + formatName(std::string const& name); private: /** Journal for log output. */ @@ -821,7 +822,7 @@ OTelCollectorImp::otelMeter() const } std::string -OTelCollectorImp::formatName(std::string const& name) const +OTelCollectorImp::formatName(std::string const& name) { // Produce a clean, lowercase, Prometheus-compatible metric name. // No prefix — the OTel resource (service.name) identifies the service. @@ -831,9 +832,13 @@ OTelCollectorImp::formatName(std::string const& name) const for (char const c : name) { if (c == '.' || c == ' ') + { result += '_'; + } else + { result += static_cast(std::tolower(static_cast(c))); + } } return result; } diff --git a/src/libxrpl/telemetry/Telemetry.cpp b/src/libxrpl/telemetry/Telemetry.cpp index c9376a806b..293e2b57a9 100644 --- a/src/libxrpl/telemetry/Telemetry.cpp +++ b/src/libxrpl/telemetry/Telemetry.cpp @@ -535,8 +535,10 @@ public: getMeter(std::string_view name = kMeterName) override { if (!meterProvider_) + { return metrics_api::Provider::GetMeterProvider()->GetMeter( std::string(name), std::string(kMeterVersion)); + } return meterProvider_->GetMeter(std::string(name), std::string(kMeterVersion)); } diff --git a/src/tests/libxrpl/telemetry/GetMeter.cpp b/src/tests/libxrpl/telemetry/GetMeter.cpp index b69920fdeb..f19f18cbee 100644 --- a/src/tests/libxrpl/telemetry/GetMeter.cpp +++ b/src/tests/libxrpl/telemetry/GetMeter.cpp @@ -17,18 +17,18 @@ #ifdef XRPL_ENABLE_TELEMETRY +#include #include #include -#include #include #include -#include #include #include #include #include +#include #include using namespace xrpl; @@ -85,7 +85,7 @@ TEST(GetMeter, global_provider_meter_accepts_updown_counter) // A views-less SDK MeterProvider with no reader is sufficient to prove the // API contract: it hands out a real (non-noop) Meter that creates working // instruments. No exporter/reader means no background threads or network. - std::shared_ptr sdkProvider = + std::shared_ptr const sdkProvider = metrics_sdk::MeterProviderFactory::Create(); metrics_api::Provider::SetMeterProvider( opentelemetry::nostd::shared_ptr(sdkProvider)); diff --git a/src/tests/libxrpl/telemetry/ValidationTracker.cpp b/src/tests/libxrpl/telemetry/ValidationTracker.cpp index 7a5179c871..f3d80d7420 100644 --- a/src/tests/libxrpl/telemetry/ValidationTracker.cpp +++ b/src/tests/libxrpl/telemetry/ValidationTracker.cpp @@ -176,7 +176,7 @@ TEST_F(ValidationTrackerTest, MaxPendingEventsTrimming) for (std::size_t i = 0; i < kCount; ++i) { auto const hash = makeHash(i + 1); - LedgerIndex const seq = static_cast(i + 1); + auto const seq = static_cast(i + 1); tracker_.recordOurValidation(hash, seq); tracker_.recordNetworkValidation(hash, seq); } diff --git a/src/xrpld/telemetry/ValidationTracker.h b/src/xrpld/telemetry/ValidationTracker.h index dac2f9c706..08b8d04f49 100644 --- a/src/xrpld/telemetry/ValidationTracker.h +++ b/src/xrpld/telemetry/ValidationTracker.h @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/src/xrpld/telemetry/detail/ValidationTracker.cpp b/src/xrpld/telemetry/detail/ValidationTracker.cpp index 17ec00fde3..2385d18ec1 100644 --- a/src/xrpld/telemetry/detail/ValidationTracker.cpp +++ b/src/xrpld/telemetry/detail/ValidationTracker.cpp @@ -12,6 +12,7 @@ #include #include #include +#include namespace xrpl::telemetry { @@ -255,11 +256,11 @@ void ValidationTracker::repairWindowEntry(std::deque& window, uint256 const& hash) { // Scan backwards since late repairs target recently added entries. - for (auto it = window.rbegin(); it != window.rend(); ++it) + for (auto& event : std::views::reverse(window)) { - if (!it->agreed && it->ledgerHash == hash) + if (!event.agreed && event.ledgerHash == hash) { - it->agreed = true; + event.agreed = true; return; } }