Datadog Tracing

We use Datadog for tracing most of our application today. They happen to have good coverage for our libraries here: dd-trace-go/contrib at v1 · DataDog/dd-trace-go · GitHub

But while they say they are OpenTracing compatible, they aren’t in actuality. Datadog spans aren’t linkable to opentracing spans and vice versa. This significantly reduces the benefit of tracing for us. I did leave a comment here to confirm/clarify: question: opentracing.SpanFromContext(request.Context()) returns nil inside a datadog span · Issue #813 · DataDog/dd-trace-go · GitHub

One possible alternative is to use the ContextPropagator to propagate the span context separately from the opentracing one, but I do not know how/where to create the spans. I also don’t see a place to finish the spans.

Maybe workflow interceptors? But there’s no activity interceptor for golang yet.

Any thoughts on the “easiest” way to proceed?

I think the correct answer is to fix the Golang interceptors and add the activity interceptors. Then adding support for custom tracing would be trivial.