From: Omri Zeneva Date: Tue, 9 Aug 2022 05:41:38 +0000 (-0400) Subject: common/tracer: set the tracer provider singleton X-Git-Tag: v18.0.0~92^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9362be0fd2139528165dc176efe5d55f67b2bb1a;p=ceph.git common/tracer: set the tracer provider singleton due to changes in opentelemetry lib, the destruction of the tracer provider at the end of the init method also destructs the tracer, so we need to keep the tracer provider, as mentioned in opentelemetry documentation Signed-off-by: Omri Zeneva --- diff --git a/src/common/tracer.cc b/src/common/tracer.cc index 915ea601a1c..61c66982c95 100644 --- a/src/common/tracer.cc +++ b/src/common/tracer.cc @@ -30,6 +30,7 @@ void Tracer::init(opentelemetry::nostd::string_view service_name) { auto jaeger_exporter = std::unique_ptr(new opentelemetry::exporter::jaeger::JaegerExporter(exporter_options)); auto processor = std::unique_ptr(new opentelemetry::sdk::trace::BatchSpanProcessor(std::move(jaeger_exporter), processor_options)); const auto provider = opentelemetry::nostd::shared_ptr(new opentelemetry::sdk::trace::TracerProvider(std::move(processor), jaeger_resource)); + opentelemetry::trace::Provider::SetTracerProvider(provider); tracer = provider->GetTracer(service_name, OPENTELEMETRY_SDK_VERSION); } }