]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | // Copyright The OpenTelemetry Authors |
2 | // SPDX-License-Identifier: Apache-2.0 | |
3 | ||
4 | #include "opentelemetry/exporters/zipkin/zipkin_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 zipkin = opentelemetry::exporter::zipkin; | |
19 | namespace resource = opentelemetry::sdk::resource; | |
20 | ||
21 | namespace | |
22 | { | |
23 | zipkin::ZipkinExporterOptions opts; | |
24 | void InitTracer() | |
25 | { | |
26 | // Create zipkin exporter instance | |
27 | resource::ResourceAttributes attributes = {{"service.name", "zipkin_demo_service"}}; | |
28 | auto resource = resource::Resource::Create(attributes); | |
29 | auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(new zipkin::ZipkinExporter(opts)); | |
30 | auto processor = std::unique_ptr<trace_sdk::SpanProcessor>( | |
31 | new trace_sdk::SimpleSpanProcessor(std::move(exporter))); | |
32 | auto provider = nostd::shared_ptr<trace::TracerProvider>( | |
33 | new trace_sdk::TracerProvider(std::move(processor), resource)); | |
34 | // Set the global trace provider | |
35 | trace::Provider::SetTracerProvider(provider); | |
36 | } | |
37 | } // namespace | |
38 | ||
39 | int main(int argc, char *argv[]) | |
40 | { | |
41 | if (argc == 2) | |
42 | { | |
43 | opts.endpoint = argv[1]; | |
44 | } | |
45 | // Removing this line will leave the default noop TracerProvider in place. | |
46 | InitTracer(); | |
47 | ||
48 | foo_library(); | |
49 | } |