cc1eaec683
Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/internal/retry Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /schema Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric/otlpmetrichttp Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/stdout/stdouttrace Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric/otlpmetricgrpc Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/stdout/stdoutmetric Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/prometheus Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/zipkin Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /trace Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlpmetric Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/jaeger Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace/otlptracehttp Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /metric Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace/otlptracegrpc Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /exporters/otlp/otlptrace Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /sdk/metric Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /bridge/opencensus Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 in /sdk Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 Co-authored-by: MrAlias <MrAlias@users.noreply.github.com> |
||
---|---|---|
.. | ||
handler | ||
go.mod | ||
go.sum | ||
main.go | ||
README.md |
"Passthrough" setup for OpenTelemetry
Some Go programs may wish to propagate context without recording spans. To do this in OpenTelemetry, simply install TextMapPropagators
, but do not install a TracerProvider using the SDK. This works because the default TracerProvider implementation returns a "Non-Recording" span that keeps the context of the caller but does not record spans.
For example, when you initialize your global settings, the following will propagate context without recording spans:
// Setup Propagators only
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))
But the following will propagate context and create new, potentially recorded spans:
// Setup SDK
exp, _ := stdout.New(stdout.WithPrettyPrint())
tp = sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exp),
)
otel.SetTracerProvider(tp)
// Setup Propagators
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))
The Demo
The demo has the following call structure:
Outer -> Passthrough -> Inner
If all components had both an SDK and propagators registered, we would expect the trace to look like:
|-------outer---------|
|-Passthrough recv-|
|Passthrough send|
|---inner---|
However, in this demo, only the outer and inner have TracerProvider backed by the SDK. All components have Propagators set. In this case, we expect to see:
|-------outer---------|
|---inner---|