summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc')
-rw-r--r--src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc b/src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc
new file mode 100644
index 000000000..8a0b07a14
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/examples/otlp/http_main.cc
@@ -0,0 +1,62 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+#include "opentelemetry/exporters/otlp/otlp_http_exporter.h"
+#include "opentelemetry/sdk/trace/simple_processor.h"
+#include "opentelemetry/sdk/trace/tracer_provider.h"
+#include "opentelemetry/trace/provider.h"
+
+#include <string>
+
+#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 otlp = opentelemetry::exporter::otlp;
+
+namespace
+{
+opentelemetry::exporter::otlp::OtlpHttpExporterOptions opts;
+void InitTracer()
+{
+ // Create OTLP exporter instance
+ auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(new otlp::OtlpHttpExporter(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)));
+ // Set the global trace provider
+ trace::Provider::SetTracerProvider(provider);
+}
+} // namespace
+
+int main(int argc, char *argv[])
+{
+ if (argc > 1)
+ {
+ opts.url = argv[1];
+ if (argc > 2)
+ {
+ std::string debug = argv[2];
+ opts.console_debug = debug != "" && debug != "0" && debug != "no";
+ }
+
+ if (argc > 3)
+ {
+ std::string binary_mode = argv[3];
+ if (binary_mode.size() >= 3 && binary_mode.substr(0, 3) == "bin")
+ {
+ opts.content_type = otlp::HttpRequestContentType::kBinary;
+ }
+ }
+ }
+ // Removing this line will leave the default noop TracerProvider in place.
+ InitTracer();
+
+ foo_library();
+}