1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <opentracing/dynamic_load.h>
#include <iostream>
#include <string>
int main(int argc, char* argv[]) {
// Load the tracer library.
std::string error_message;
auto handle_maybe = opentracing::DynamicallyLoadTracingLibrary(
"/usr/local/lib/libdd_opentracing_plugin.so", error_message);
if (!handle_maybe) {
std::cerr << "Failed to load tracer library " << error_message << "\n";
return 1;
}
// Read in the tracer's configuration.
std::string tracer_config = R"({
"service": "dynamic-load example",
"agent_host": "localhost",
"agent_port": 8126
})";
// Construct a tracer.
auto& tracer_factory = handle_maybe->tracer_factory();
auto tracer_maybe = tracer_factory.MakeTracer(tracer_config.c_str(), error_message);
if (!tracer_maybe) {
std::cerr << "Failed to create tracer " << error_message << "\n";
return 1;
}
auto& tracer = *tracer_maybe;
// Create some spans.
{
auto span_a = tracer->StartSpan("A");
span_a->SetTag("tag", 123);
auto span_b = tracer->StartSpan("B", {opentracing::ChildOf(&span_a->context())});
span_b->SetTag("tag", "value");
}
tracer->Close();
return 0;
}
|