Skip to content

Commit

Permalink
Move global metric back to otel/metric/global for minor release (#3986
Browse files Browse the repository at this point in the history
)

* Revert "Remove the deprecated `otel/metric/global` pkg (#3829)"

This reverts commit 60f7d42.

* Revert "Support a global MeterProvider in `go.opentelemetry.io/otel` (#3818)"

This reverts commit 8139361.

* Remove top level metric global

* Add change to changelog
  • Loading branch information
MrAlias committed Apr 13, 2023
1 parent 5134557 commit 8dba38e
Show file tree
Hide file tree
Showing 37 changed files with 207 additions and 198 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941)
- `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider`
- Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974)
- Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986)

### Fixed

Expand Down
3 changes: 0 additions & 3 deletions bridge/opentracing/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,5 @@ require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions bridge/opentracing/test/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ require (
github.com/go-logr/stdr v1.2.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/sys v0.7.0 // indirect
Expand All @@ -32,5 +31,3 @@ require (
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace go.opentelemetry.io/otel/metric => ../../../metric
3 changes: 0 additions & 3 deletions example/fib/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ require (
require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
)

Expand All @@ -23,5 +22,3 @@ replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters
replace go.opentelemetry.io/otel/sdk => ../../sdk

replace go.opentelemetry.io/otel/trace => ../../trace

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions example/jaeger/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,8 @@ require (
require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
)

replace go.opentelemetry.io/otel/trace => ../../trace

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions example/namedtracer/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,9 @@ require (

require (
github.com/go-logr/logr v1.2.4 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
)

replace go.opentelemetry.io/otel/trace => ../../trace

replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions example/otel-collector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ require (
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/sys v0.7.0 // indirect
Expand All @@ -39,5 +38,3 @@ replace go.opentelemetry.io/otel/exporters/otlp/otlptrace => ../../exporters/otl
replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => ../../exporters/otlp/otlptrace/otlptracegrpc

replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../exporters/otlp/internal/retry

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions example/passthrough/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ require (
require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
)

Expand All @@ -23,5 +22,3 @@ replace (
)

replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions example/zipkin/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/openzipkin/zipkin-go v0.4.1 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
)

replace go.opentelemetry.io/otel/trace => ../../trace

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions exporters/jaeger/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/objx v0.5.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Expand All @@ -26,5 +25,3 @@ replace go.opentelemetry.io/otel/trace => ../../trace
replace go.opentelemetry.io/otel => ../..

replace go.opentelemetry.io/otel/sdk => ../../sdk

replace go.opentelemetry.io/otel/metric => ../../metric
4 changes: 2 additions & 2 deletions exporters/otlp/otlpmetric/otlpmetricgrpc/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ package otlpmetricgrpc_test
import (
"context"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
"go.opentelemetry.io/otel/metric/global"
"go.opentelemetry.io/otel/sdk/metric"
)

Expand All @@ -35,7 +35,7 @@ func Example() {
panic(err)
}
}()
otel.SetMeterProvider(meterProvider)
global.SetMeterProvider(meterProvider)

// From here, the meterProvider can be used by instrumentation to collect
// telemetry.
Expand Down
2 changes: 1 addition & 1 deletion exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ require (
go.opentelemetry.io/otel v1.15.0-rc.2
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.0-rc.2
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.38.0-rc.2
go.opentelemetry.io/otel/metric v1.15.0-rc.2
go.opentelemetry.io/otel/sdk/metric v0.38.0-rc.2
go.opentelemetry.io/proto/otlp v0.19.0
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f
Expand All @@ -25,7 +26,6 @@ require (
github.com/google/go-cmp v0.5.9 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/sdk v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions exporters/otlp/otlpmetric/otlpmetrichttp/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ package otlpmetrichttp_test
import (
"context"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
"go.opentelemetry.io/otel/metric/global"
"go.opentelemetry.io/otel/sdk/metric"
)

Expand All @@ -35,7 +35,7 @@ func Example() {
panic(err)
}
}()
otel.SetMeterProvider(meterProvider)
global.SetMeterProvider(meterProvider)

// From here, the meterProvider can be used by instrumentation to collect
// telemetry.
Expand Down
2 changes: 1 addition & 1 deletion exporters/otlp/otlpmetric/otlpmetrichttp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ require (
go.opentelemetry.io/otel v1.15.0-rc.2
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.0-rc.2
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.38.0-rc.2
go.opentelemetry.io/otel/metric v1.15.0-rc.2
go.opentelemetry.io/otel/sdk/metric v0.38.0-rc.2
go.opentelemetry.io/proto/otlp v0.19.0
google.golang.org/protobuf v1.30.0
Expand All @@ -23,7 +24,6 @@ require (
github.com/google/go-cmp v0.5.9 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/sdk v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
Expand Down
3 changes: 0 additions & 3 deletions exporters/otlp/otlptrace/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/sys v0.7.0 // indirect
golang.org/x/text v0.8.0 // indirect
Expand All @@ -37,5 +36,3 @@ replace go.opentelemetry.io/otel/sdk => ../../../sdk
replace go.opentelemetry.io/otel/trace => ../../../trace

replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../internal/retry

replace go.opentelemetry.io/otel/metric => ../../../metric
3 changes: 0 additions & 3 deletions exporters/otlp/otlptrace/otlptracegrpc/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/sys v0.7.0 // indirect
Expand All @@ -40,5 +39,3 @@ replace go.opentelemetry.io/otel/exporters/otlp/otlptrace => ../
replace go.opentelemetry.io/otel/trace => ../../../../trace

replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry

replace go.opentelemetry.io/otel/metric => ../../../../metric
3 changes: 0 additions & 3 deletions exporters/otlp/otlptrace/otlptracehttp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/sys v0.7.0 // indirect
golang.org/x/text v0.8.0 // indirect
Expand All @@ -39,5 +38,3 @@ replace go.opentelemetry.io/otel/sdk => ../../../../sdk
replace go.opentelemetry.io/otel/trace => ../../../../trace

replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry

replace go.opentelemetry.io/otel/metric => ../../../../metric
3 changes: 0 additions & 3 deletions exporters/stdout/stdouttrace/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace go.opentelemetry.io/otel/trace => ../../../trace

replace go.opentelemetry.io/otel/metric => ../../../metric
3 changes: 0 additions & 3 deletions exporters/zipkin/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ require (
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect
golang.org/x/sys v0.7.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Expand All @@ -26,5 +25,3 @@ replace go.opentelemetry.io/otel/trace => ../../trace
replace go.opentelemetry.io/otel => ../..

replace go.opentelemetry.io/otel/sdk => ../../sdk

replace go.opentelemetry.io/otel/metric => ../../metric
3 changes: 0 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ require (
github.com/go-logr/stdr v1.2.2
github.com/google/go-cmp v0.5.9
github.com/stretchr/testify v1.8.2
go.opentelemetry.io/otel/metric v1.15.0-rc.2
go.opentelemetry.io/otel/trace v1.15.0-rc.2
)

Expand All @@ -18,5 +17,3 @@ require (
)

replace go.opentelemetry.io/otel/trace => ./trace

replace go.opentelemetry.io/otel/metric => ./metric
45 changes: 2 additions & 43 deletions internal/global/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"sync"
"sync/atomic"

"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/trace"
)
Expand All @@ -32,20 +31,14 @@ type (
propagatorsHolder struct {
tm propagation.TextMapPropagator
}

meterProviderHolder struct {
mp metric.MeterProvider
}
)

var (
globalTracer = defaultTracerValue()
globalPropagators = defaultPropagatorsValue()
globalMeterProvider = defaultMeterProvider()
globalTracer = defaultTracerValue()
globalPropagators = defaultPropagatorsValue()

delegateTraceOnce sync.Once
delegateTextMapPropagatorOnce sync.Once
delegateMeterOnce sync.Once
)

// TracerProvider is the internal implementation for global.TracerProvider.
Expand Down Expand Up @@ -109,34 +102,6 @@ func SetTextMapPropagator(p propagation.TextMapPropagator) {
globalPropagators.Store(propagatorsHolder{tm: p})
}

// MeterProvider is the internal implementation for global.MeterProvider.
func MeterProvider() metric.MeterProvider {
return globalMeterProvider.Load().(meterProviderHolder).mp
}

// SetMeterProvider is the internal implementation for global.SetMeterProvider.
func SetMeterProvider(mp metric.MeterProvider) {
current := MeterProvider()
if _, cOk := current.(*meterProvider); cOk {
if _, mpOk := mp.(*meterProvider); mpOk && current == mp {
// Do not assign the default delegating MeterProvider to delegate
// to itself.
Error(
errors.New("no delegate configured in meter provider"),
"Setting meter provider to it's current value. No delegate will be configured",
)
return
}
}

delegateMeterOnce.Do(func() {
if def, ok := current.(*meterProvider); ok {
def.setDelegate(mp)
}
})
globalMeterProvider.Store(meterProviderHolder{mp: mp})
}

func defaultTracerValue() *atomic.Value {
v := &atomic.Value{}
v.Store(tracerProviderHolder{tp: &tracerProvider{}})
Expand All @@ -148,9 +113,3 @@ func defaultPropagatorsValue() *atomic.Value {
v.Store(propagatorsHolder{tm: newTextMapPropagator()})
return v
}

func defaultMeterProvider() *atomic.Value {
v := &atomic.Value{}
v.Store(meterProviderHolder{mp: &meterProvider{}})
return v
}

0 comments on commit 8dba38e

Please sign in to comment.