From ed60a5c8c2988254d882b9c1389bb7d1ce1cbd0a Mon Sep 17 00:00:00 2001 From: Bogdan Drutu Date: Fri, 1 Apr 2022 08:35:12 -0700 Subject: [PATCH] Do not set TraceProvider to global The reason is because soon we will have the config for the tracing/metrics providers in the main config (already started). When this happens then we can have users "reconfigure" that via the watch API, and re-setting the global is not allowed in otel (also not restart friendly). Because of that we should break this behavior now, and not install the global. Signed-off-by: Bogdan Drutu --- CHANGELOG.md | 1 + service/collector.go | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51019eb7712..ea07db85bcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### 🛑 Breaking changes 🛑 - Remove deprecated structs/funcs from previous versions (#5131) +- Do not set TraceProvider to global otel (#5138) ### 🚩 Deprecations 🚩 diff --git a/service/collector.go b/service/collector.go index b5aa8fa69d9..70b93645087 100644 --- a/service/collector.go +++ b/service/collector.go @@ -27,7 +27,6 @@ import ( "syscall" "go.opentelemetry.io/contrib/zpages" - "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/metric/nonrecording" sdktrace "go.opentelemetry.io/otel/sdk/trace" @@ -231,10 +230,6 @@ func (col *Collector) Run(ctx context.Context) error { sdktrace.WithSampler(internal.AlwaysRecord()), sdktrace.WithSpanProcessor(col.zPagesSpanProcessor)) - // Set the constructed tracer provider as Global, in case any component uses the - // global TracerProvider. - otel.SetTracerProvider(col.tracerProvider) - col.meterProvider = nonrecording.NewNoopMeterProvider() col.asyncErrorChannel = make(chan error)