Package opentracer provides a wrapper on top of the Datadog tracer that can be used with Opentracing. It also provides a set of opentracing.StartSpanOption that are specific to Datadog's APM product. To use it, simply call "New".
Note that there are currently some small incompatibilities between the Opentracing spec and the Datadog APM product, which we are in the process of addressing on the long term. When using Datadog, the Opentracing operation name is what is called resource in Datadog's terms and the Opentracing "component" tag is Datadog's operation name. Meaning that in order to define (in Opentracing terms) a span that has the operation name "/user/profile" and the component "http.request", one would do:
Some libraries and frameworks are supported out-of-the-box by using our integrations. You can see a list of supported integrations here: https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/contrib. They are fully compatible with the Opentracing implementation.
// Start a Datadog tracer, optionally providing a set of options, // returning an opentracing.Tracer which wraps it. t := opentracer.New(tracer.WithAgentAddr("host:port")) // Use it with the Opentracing API. The (already started) Datadog tracer // may be used in parallel with the Opentracing API if desired. opentracing.SetGlobalTracer(t)
New creates, instantiates and returns an Opentracing compatible version of the Datadog tracer using the provided set of options.
ResourceName can be used with opentracing.StartSpan to set the resource name of a span.
ServiceName can be used with opentracing.StartSpan to set the service name of a span.
SpanName sets the Datadog operation name for the span.
SpanType can be used with opentracing.StartSpan to set the type of a span.