diff options
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/examples/zipkin/main.cc')
-rw-r--r-- | src/jaegertracing/opentelemetry-cpp/examples/zipkin/main.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/examples/zipkin/main.cc b/src/jaegertracing/opentelemetry-cpp/examples/zipkin/main.cc new file mode 100644 index 000000000..352114749 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/examples/zipkin/main.cc @@ -0,0 +1,49 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#include "opentelemetry/exporters/zipkin/zipkin_exporter.h" +#include "opentelemetry/sdk/trace/simple_processor.h" +#include "opentelemetry/sdk/trace/tracer_provider.h" +#include "opentelemetry/trace/provider.h" + +#ifdef BAZEL_BUILD +# include "examples/common/foo_library/foo_library.h" +#else +# include "foo_library/foo_library.h" +#endif + +namespace trace = opentelemetry::trace; +namespace nostd = opentelemetry::nostd; +namespace trace_sdk = opentelemetry::sdk::trace; +namespace zipkin = opentelemetry::exporter::zipkin; +namespace resource = opentelemetry::sdk::resource; + +namespace +{ +zipkin::ZipkinExporterOptions opts; +void InitTracer() +{ + // Create zipkin exporter instance + resource::ResourceAttributes attributes = {{"service.name", "zipkin_demo_service"}}; + auto resource = resource::Resource::Create(attributes); + auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(new zipkin::ZipkinExporter(opts)); + auto processor = std::unique_ptr<trace_sdk::SpanProcessor>( + new trace_sdk::SimpleSpanProcessor(std::move(exporter))); + auto provider = nostd::shared_ptr<trace::TracerProvider>( + new trace_sdk::TracerProvider(std::move(processor), resource)); + // Set the global trace provider + trace::Provider::SetTracerProvider(provider); +} +} // namespace + +int main(int argc, char *argv[]) +{ + if (argc == 2) + { + opts.endpoint = argv[1]; + } + // Removing this line will leave the default noop TracerProvider in place. + InitTracer(); + + foo_library(); +} |