diff --git a/CHANGELOG.md b/CHANGELOG.md index 1afb77faff8..58f1514f06d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Add `go.opentelemetry.io/otel/bridge/opencensus.InstallTraceBridge`, which installs the OpenCensus trace bridge, and replaces `opencensus.NewTracer`. (#4567) - Add scope version to trace and metric bridges in `go.opentelemetry.io/otel/bridge/opencensus`. (#4584) +- Add context propagation in `go.opentelemetry.io/otel/example/dice`. (#4644) ### Deprecated diff --git a/example/dice/otel.go b/example/dice/otel.go index 8612352d959..9c4f9fe8c42 100644 --- a/example/dice/otel.go +++ b/example/dice/otel.go @@ -22,6 +22,7 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/stdout/stdoutmetric" "go.opentelemetry.io/otel/exporters/stdout/stdouttrace" + "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/trace" @@ -50,14 +51,18 @@ func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shut err = errors.Join(inErr, shutdown(ctx)) } - // Setup resource. + // Set up resource. res, err := newResource(serviceName, serviceVersion) if err != nil { handleErr(err) return } - // Setup trace provider. + // Set up propagator. + prop := newPropagator() + otel.SetTextMapPropagator(prop) + + // Set up trace provider. tracerProvider, err := newTraceProvider(res) if err != nil { handleErr(err) @@ -66,7 +71,7 @@ func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shut shutdownFuncs = append(shutdownFuncs, tracerProvider.Shutdown) otel.SetTracerProvider(tracerProvider) - // Setup meter provider. + // Set up meter provider. meterProvider, err := newMeterProvider(res) if err != nil { handleErr(err) @@ -86,6 +91,13 @@ func newResource(serviceName, serviceVersion string) (*resource.Resource, error) )) } +func newPropagator() propagation.TextMapPropagator { + return propagation.NewCompositeTextMapPropagator( + propagation.TraceContext{}, + propagation.Baggage{}, + ) +} + func newTraceProvider(res *resource.Resource) (*trace.TracerProvider, error) { traceExporter, err := stdouttrace.New( stdouttrace.WithPrettyPrint())