Merge branch 'pratik/otel-phase7-native-metrics' into pratik/otel-phase8-log-correlation

This commit is contained in:
Pratik Mankawde
2026-07-08 15:38:31 +01:00
9 changed files with 18 additions and 7 deletions

View File

@@ -91,6 +91,7 @@
#include <atomic>
#include <chrono>
#include <cstdint>
#include <memory>
#include <string>
#include <string_view>

View File

@@ -46,7 +46,6 @@
#include <xrpl/proto/xrpl.pb.h>
#include <algorithm>
#include <ranges>
#include <string>
namespace xrpl::telemetry {

View File

@@ -6,6 +6,7 @@
#include <algorithm>
#include <cctype>
#include <ranges>
#include <string>
#include <string_view>
@@ -23,9 +24,8 @@ redactAccount(std::string_view addr)
// staying non-reversible — and lowercase them for a stable token.
auto const digest = sha512Half(Slice(addr.data(), addr.size()));
std::string token = to_string(digest).substr(0, 16);
std::transform(token.begin(), token.end(), token.begin(), [](unsigned char c) {
return static_cast<char>(std::tolower(c));
});
std::ranges::transform(
token, token.begin(), [](unsigned char c) { return static_cast<char>(std::tolower(c)); });
return token;
}

View File

@@ -525,7 +525,9 @@ public:
getTracer(std::string_view name = kTracerName) override
{
if (!sdkProvider_)
{
return trace_api::Provider::GetTracerProvider()->GetTracer(std::string(name));
}
return sdkProvider_->GetTracer(std::string(name));
}
@@ -567,7 +569,9 @@ std::unique_ptr<Telemetry>
makeTelemetry(Telemetry::Setup const& setup, beast::Journal journal)
{
if (setup.enabled)
{
return std::make_unique<TelemetryImpl>(setup, journal);
}
return std::make_unique<NullTelemetryOtel>(setup);
}

View File

@@ -38,7 +38,6 @@
#include <xrpl/protocol/XRPAmount.h>
#include <xrpl/server/LoadFeeTrack.h>
#include <xrpl/telemetry/SpanGuard.h>
#include <xrpl/telemetry/SpanNames.h>
#include <xrpl/tx/ApplyContext.h>
#include <xrpl/tx/SignerEntries.h>
#include <xrpl/tx/apply.h>

View File

@@ -4,6 +4,7 @@
#include <algorithm>
#include <cctype>
#include <ranges>
#include <string>
using namespace xrpl;
@@ -28,7 +29,7 @@ TEST(Redaction, token_is_16_lowercase_hex_and_stable)
{
auto const token = redactAccount("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh");
EXPECT_EQ(token.size(), 16u);
EXPECT_TRUE(std::all_of(token.begin(), token.end(), [](unsigned char c) {
EXPECT_TRUE(std::ranges::all_of(token, [](unsigned char c) {
return std::isdigit(c) || (c >= 'a' && c <= 'f');
}));
// Deterministic: hashing the same input twice yields the same token.

View File

@@ -1269,11 +1269,15 @@ RCLConsensus::Adaptor::startRoundTracing(RCLCxLedger const& prevLgr)
// TraceCategory-aware, so gate it explicitly to match the gating
// of the hashSpan/span factories used below.
if (link != nullptr && app_.getTelemetry().shouldTraceConsensus())
{
roundSpan_.emplace(telemetry::SpanGuard::linkedSpan(cs::round, *link));
}
else
{
roundSpan_.emplace(
telemetry::SpanGuard::span(
telemetry::TraceCategory::Consensus, telemetry::seg::consensus, cs::op::round));
}
}
else
{
@@ -1289,7 +1293,9 @@ RCLConsensus::Adaptor::startRoundTracing(RCLCxLedger const& prevLgr)
}
if (!*roundSpan_)
{
return;
}
roundSpan_->setAttribute(cs::attr::ledgerId, to_string(prevLgr.id()).c_str());
roundSpan_->setAttribute(cs::attr::ledgerSeq, static_cast<int64_t>(prevLgr.seq()) + 1);

View File

@@ -21,7 +21,6 @@
#include <xrpl/protocol/PublicKey.h>
#include <xrpl/protocol/RippleLedgerHash.h>
#include <xrpl/protocol/UintTypes.h>
#include <xrpl/shamap/SHAMap.h>
#include <xrpl/telemetry/SpanGuard.h>
#include <xrpl.pb.h>
@@ -36,6 +35,7 @@
#include <set>
#include <sstream>
#include <string>
#include <string_view>
#include <utility>
namespace xrpl {

View File

@@ -26,6 +26,7 @@
#include <optional>
#include <sstream>
#include <string>
#include <string_view>
#include <utility>
namespace xrpl {