]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/examples/jaeger/main.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / examples / jaeger / main.cc
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #include "opentelemetry/exporters/jaeger/jaeger_exporter.h"
5 #include "opentelemetry/sdk/trace/simple_processor.h"
6 #include "opentelemetry/sdk/trace/tracer_provider.h"
7 #include "opentelemetry/trace/provider.h"
8
9 #ifdef BAZEL_BUILD
10 # include "examples/common/foo_library/foo_library.h"
11 #else
12 # include "foo_library/foo_library.h"
13 #endif
14
15 namespace trace = opentelemetry::trace;
16 namespace nostd = opentelemetry::nostd;
17 namespace trace_sdk = opentelemetry::sdk::trace;
18 namespace jaeger = opentelemetry::exporter::jaeger;
19
20 namespace
21 {
22 opentelemetry::exporter::jaeger::JaegerExporterOptions opts;
23 void InitTracer()
24 {
25 // Create Jaeger exporter instance
26 auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(new jaeger::JaegerExporter(opts));
27 auto processor = std::unique_ptr<trace_sdk::SpanProcessor>(
28 new trace_sdk::SimpleSpanProcessor(std::move(exporter)));
29 auto provider =
30 nostd::shared_ptr<trace::TracerProvider>(new trace_sdk::TracerProvider(std::move(processor)));
31 // Set the global trace provider
32 trace::Provider::SetTracerProvider(provider);
33 }
34 } // namespace
35
36 int main(int argc, char *argv[])
37 {
38 if (argc == 2)
39 {
40 opts.endpoint = argv[1];
41 }
42 // Removing this line will leave the default noop TracerProvider in place.
43 InitTracer();
44
45 foo_library();
46 }