forked from jaegertracing/jaeger-client-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.cpp
45 lines (37 loc) · 1.24 KB
/
App.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <yaml-cpp/yaml.h>
#include <jaegertracing/Tracer.h>
namespace {
void setUpTracer(const char* configFilePath)
{
auto configYAML = YAML::LoadFile(configFilePath);
auto config = jaegertracing::Config::parse(configYAML);
auto tracer = jaegertracing::Tracer::make(
"example-service", config, jaegertracing::logging::consoleLogger());
opentracing::Tracer::InitGlobal(
std::static_pointer_cast<opentracing::Tracer>(tracer));
}
void tracedSubroutine(const std::unique_ptr<opentracing::Span>& parentSpan)
{
auto span = opentracing::Tracer::Global()->StartSpan(
"tracedSubroutine", { opentracing::ChildOf(&parentSpan->context()) });
}
void tracedFunction()
{
auto span = opentracing::Tracer::Global()->StartSpan("tracedFunction");
tracedSubroutine(span);
}
} // anonymous namespace
int main(int argc, char* argv[])
{
if (argc < 2) {
std::cerr << "usage: " << argv[0] << " <config-yaml-path>\n";
return 1;
}
setUpTracer(argv[1]);
tracedFunction();
// Not stricly necessary to close tracer, but might flush any buffered
// spans. See more details in opentracing::Tracer::Close() documentation.
opentracing::Tracer::Global()->Close();
return 0;
}