mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-02-05 13:15:41 +02:00
4475aaa8f8
* Create README.md Some very bare-bones introductory documentation on how to use the ot bridge * Update README.md linting * Update README.md more linting * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> * Update bridge/opentracing/README.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# OpenTelemetry/OpenTracing Bridge
|
|
|
|
## Getting started
|
|
|
|
`go get go.opentelemetry.io/otel/bridge/opentracing`
|
|
|
|
Assuming you have configured an OpenTelemetry `TracerProvider`, these will be the steps to follow to wire up the bridge:
|
|
|
|
```go
|
|
import (
|
|
"go.opentelemetry.io/otel"
|
|
otelBridge "go.opentelemetry.io/otel/bridge/opentracing"
|
|
)
|
|
|
|
func main() {
|
|
/* Create tracerProvider and configure OpenTelemetry ... */
|
|
|
|
otelTracer := tracerProvider.Tracer("tracer_name")
|
|
// Use the bridgeTracer as your OpenTracing tracer.
|
|
bridgeTracer, wrapperTracerProvider := otelBridge.NewTracerPair(otelTracer)
|
|
// Set the wrapperTracerProvider as the global OpenTelemetry
|
|
// TracerProvider so instrumentation will use it by default.
|
|
otel.SetTracerProvider(wrapperTracerProvider)
|
|
|
|
/* ... */
|
|
}
|
|
```
|
|
|
|
## Interop from trace context from OpenTracing to OpenTelemetry
|
|
|
|
In order to get OpenTracing spans properly into the OpenTelemetry context, so they can be propagated (both internally, and externally), you will need to explicitly use the `BridgeTracer` for creating your OpenTracing spans, rather than a bare OpenTracing `Tracer` instance.
|
|
|
|
When you have started an OpenTracing Span, make sure the OpenTelemetry knows about it like this:
|
|
|
|
```go
|
|
ctxWithOTSpan := opentracing.ContextWithSpan(ctx, otSpan)
|
|
ctxWithOTAndOTelSpan := bridgeTracer.ContextWithSpanHook(ctxWithOTSpan, otSpan)
|
|
// Propagate the otSpan to both OpenTracing and OpenTelemetry
|
|
// instrumentation by using the ctxWithOTAndOTelSpan context.
|
|
```
|