userver
C++ Async Framework
Loading...
Searching...
No Matches
tracer.hpp
1
#
pragma
once
2
3
#
include
<
memory
>
4
5
#
include
<
userver
/
rcu
/
fwd
.
hpp
>
6
#
include
<
userver
/
tracing
/
span
.
hpp
>
7
#
include
<
userver
/
tracing
/
tracer_fwd
.
hpp
>
8
9
#
include
<
dynamic_config
/
variables
/
USERVER_NO_LOG_SPANS
.
hpp
>
10
11
USERVER_NAMESPACE_BEGIN
12
13
/// Opentracing support
14
namespace
tracing
{
15
16
using
NoLogSpans = ::dynamic_config::userver_no_log_spans::VariableType;
17
18
void
SetNoLogSpans(NoLogSpans&& spans);
19
bool
IsNoLogSpan(
const
std::string& name);
20
NoLogSpans CopyNoLogSpans();
21
22
// For legacy opentracing support only.
23
class
Tracer
final
{
24
public
:
25
static
void
SetTracer(Tracer&& tracer);
26
27
static
rcu
::ReadablePtr<Tracer,
rcu
::
ExclusiveRcuTraits
> ReadTracer();
28
29
static
Tracer CopyCurrentTracer();
30
31
Tracer(std::string_view service_name)
32
: service_name_(service_name)
33
{}
34
35
// Only works if legacy opentracing is set up.
36
const
std::string& GetServiceName()
const
;
37
38
private
:
39
std::string service_name_;
40
};
41
42
// For tests and benchmarks only!
43
class
TracerCleanupScope
final
{
44
public
:
45
TracerCleanupScope();
46
47
TracerCleanupScope(TracerCleanupScope&&) =
delete
;
48
TracerCleanupScope& operator=(TracerCleanupScope&&) =
delete
;
49
~TracerCleanupScope();
50
51
private
:
52
Tracer old_tracer_;
53
NoLogSpans old_no_log_spans_;
54
};
55
56
}
// namespace tracing
57
58
USERVER_NAMESPACE_END
userver
tracing
tracer.hpp
Generated on Tue Jan 27 2026 16:46:35 for userver by
Doxygen
1.13.2