Whether you decide to deploy an open source tracing platform like Jaeger or Zipkin, use a commercial vendor, or even build your own, there are a few critical choices you need to make to future-proof your efforts. Instrumenting a code base is expensive and time-consuming, so you only want to do it once. Vendor-neutral standards like OpenTracing give you the flexibility of changing your mind later about which tracing backend you want to use. However, the OpenTracing API does not dictate how the trace context is represented on the wire, leaving this decision to the implementations, and ultimately to you, since many implementations are configurable. As an example, the Jaeger clients can use Jaeger's native trace context format [2], or the B3 headers popularized by the Zipkin project [3].
Similarly, the OpenCensus libraries also support B3 headers, as well as the emerging W3C Trace Context format [4]. In some way, choosing the propagation format is even more important...