5#include <userver/tracing/span.hpp>
6#include <userver/tracing/tracer_fwd.hpp>
8#include <dynamic_config/variables/USERVER_NO_LOG_SPANS.hpp>
10USERVER_NAMESPACE_BEGIN
23 static void SetNoLogSpans(NoLogSpans&& spans);
24 static bool IsNoLogSpan(
const std::string& name);
26 static void SetTracer(TracerPtr tracer);
28 static TracerPtr GetTracer();
30 const std::string& GetServiceName()
const;
32 Span CreateSpanWithoutParent(std::string name);
34 Span CreateSpan(std::string name,
const Span& parent, ReferenceType reference_type);
37 virtual void LogSpanContextTo(
const Span::Impl& span,
logging::impl::TagWriter writer)
const = 0;
39 logging::LoggerPtr GetOptionalLogger()
const {
return optional_logger_; }
42 explicit Tracer(std::string_view service_name,
logging::LoggerPtr optional_logger)
43 : service_name_(service_name), optional_logger_(std::move(optional_logger)) {}
48 const std::string service_name_;
49 const logging::LoggerPtr optional_logger_;
53TracerPtr
MakeTracer(std::string_view service_name,
logging::LoggerPtr logger, std::string_view tracer_type =
"native");