]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | } |