Merge branch 'pratik/otel-phase2-rpc-tracing' into pratik/otel-phase3-tx-tracing

Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
This commit is contained in:
Pratik Mankawde
2026-06-01 11:36:19 +01:00
11 changed files with 44 additions and 30 deletions

View File

@@ -10,12 +10,16 @@
its own factory that can return the real TelemetryImpl.
*/
#include <xrpl/beast/utility/Journal.h>
#include <xrpl/telemetry/Telemetry.h>
#include <string_view>
#include <memory>
#include <utility>
#ifdef XRPL_ENABLE_TELEMETRY
#include <opentelemetry/trace/noop.h>
#include <string_view>
#endif
namespace xrpl::telemetry {

View File

@@ -27,14 +27,15 @@
#include <xrpl/telemetry/SpanNames.h>
#include <xrpl/telemetry/Telemetry.h>
#include <opentelemetry/context/context.h>
#include <opentelemetry/context/runtime_context.h>
#include <opentelemetry/nostd/shared_ptr.h>
#include <opentelemetry/trace/context.h>
#include <opentelemetry/trace/default_span.h>
#include <opentelemetry/trace/provider.h>
#include <opentelemetry/trace/scope.h>
#include <opentelemetry/trace/span.h>
#include <opentelemetry/trace/span_context.h>
#include <opentelemetry/trace/span_metadata.h>
#include <opentelemetry/trace/span_startoptions.h>
#include <opentelemetry/trace/trace_flags.h>
#include <opentelemetry/trace/trace_id.h>

View File

@@ -18,11 +18,15 @@
#include <xrpl/telemetry/Telemetry.h>
#include <xrpl/basics/Log.h>
#include <xrpl/beast/utility/Journal.h>
#include <xrpl/telemetry/DiscardFlag.h>
#include <xrpl/telemetry/SpanNames.h>
#include <opentelemetry/context/context.h>
#include <opentelemetry/exporters/otlp/otlp_http_exporter_factory.h>
#include <opentelemetry/exporters/otlp/otlp_http_exporter_options.h>
#include <opentelemetry/nostd/shared_ptr.h>
#include <opentelemetry/sdk/resource/resource.h>
#include <opentelemetry/sdk/trace/batch_span_processor_factory.h>
#include <opentelemetry/sdk/trace/batch_span_processor_options.h>
#include <opentelemetry/sdk/trace/processor.h>
@@ -33,8 +37,15 @@
#include <opentelemetry/semconv/incubating/service_attributes.h>
#include <opentelemetry/trace/noop.h>
#include <opentelemetry/trace/provider.h>
#include <opentelemetry/trace/span.h>
#include <opentelemetry/trace/span_metadata.h>
#include <opentelemetry/trace/span_startoptions.h>
#include <opentelemetry/trace/tracer.h>
#include <opentelemetry/trace/tracer_provider.h>
#include <chrono>
#include <cstdint>
#include <memory>
#include <string>
#include <string_view>
#include <utility>
@@ -82,7 +93,7 @@ namespace resource = opentelemetry::sdk::resource;
*/
class FilteringSpanProcessor : public trace_sdk::SpanProcessor
{
std::unique_ptr<trace_sdk::SpanProcessor> delegate_{};
std::unique_ptr<trace_sdk::SpanProcessor> delegate_;
public:
explicit FilteringSpanProcessor(std::unique_ptr<trace_sdk::SpanProcessor> delegate)
@@ -240,7 +251,7 @@ class TelemetryImpl : public Telemetry
Held as std::shared_ptr so we can call ForceFlush() on shutdown.
Wrapped in a nostd::shared_ptr when registered as the global provider.
*/
std::shared_ptr<trace_sdk::TracerProvider> sdkProvider_{};
std::shared_ptr<trace_sdk::TracerProvider> sdkProvider_;
public:
TelemetryImpl(Setup setup, beast::Journal journal) : setup_(std::move(setup)), journal_(journal)

View File

@@ -4,8 +4,6 @@
#include <gtest/gtest.h>
#include <chrono>
using namespace xrpl;
TEST(TelemetryConfig, setup_defaults)
@@ -34,7 +32,7 @@ TEST(TelemetryConfig, setup_defaults)
TEST(TelemetryConfig, parse_empty_section)
{
Section const section;
auto setup = telemetry::setup_Telemetry(section, "nHUtest123", "2.0.0", 0);
auto setup = telemetry::setupTelemetry(section, "nHUtest123", "2.0.0", 0);
EXPECT_FALSE(setup.enabled);
EXPECT_EQ(setup.serviceName, "xrpld");
@@ -68,7 +66,7 @@ TEST(TelemetryConfig, parse_full_section)
section.set("trace_peer", "1");
section.set("trace_ledger", "0");
auto setup = telemetry::setup_Telemetry(section, "nHUtest123", "2.0.0", 1);
auto setup = telemetry::setupTelemetry(section, "nHUtest123", "2.0.0", 1);
EXPECT_TRUE(setup.enabled);
EXPECT_EQ(setup.serviceName, "my-rippled");
@@ -94,7 +92,7 @@ TEST(TelemetryConfig, null_telemetry_factory)
beast::Journal::Sink& sink = beast::Journal::getNullSink();
beast::Journal const j(sink);
auto tel = telemetry::make_Telemetry(setup, j);
auto tel = telemetry::makeTelemetry(setup, j);
EXPECT_TRUE(tel != nullptr);
EXPECT_FALSE(tel->isEnabled());
EXPECT_FALSE(tel->shouldTraceRpc());
@@ -112,11 +110,11 @@ TEST(TelemetryConfig, sampling_ratio_clamped)
{
Section section;
section.set("sampling_ratio", "2.5");
auto setup = telemetry::setup_Telemetry(section, "nHUtest123", "2.0.0", 0);
auto setup = telemetry::setupTelemetry(section, "nHUtest123", "2.0.0", 0);
EXPECT_DOUBLE_EQ(setup.samplingRatio, 1.0);
Section section2;
section2.set("sampling_ratio", "-0.5");
auto setup2 = telemetry::setup_Telemetry(section2, "nHUtest123", "2.0.0", 0);
auto setup2 = telemetry::setupTelemetry(section2, "nHUtest123", "2.0.0", 0);
EXPECT_DOUBLE_EQ(setup2.samplingRatio, 0.0);
}