]> git.proxmox.com Git - ceph.git/blame - 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
CommitLineData
1e59de90
TL
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
15namespace trace = opentelemetry::trace;
16namespace nostd = opentelemetry::nostd;
17namespace trace_sdk = opentelemetry::sdk::trace;
18namespace jaeger = opentelemetry::exporter::jaeger;
19
20namespace
21{
22opentelemetry::exporter::jaeger::JaegerExporterOptions opts;
23void 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
36int 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}