diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c8bdfa80b6..132087b1aac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Added +- The metrics global package was added back into several test files. (#2764) - The `Meter` function is added back to the `go.opentelemetry.io/otel/metric/global` package. This function is a convenience function equivalent to calling `global.MeterProvider().Meter(...)`. (#2750) diff --git a/example/prometheus/main.go b/example/prometheus/main.go index 12148d2595f..0710fc65c4c 100644 --- a/example/prometheus/main.go +++ b/example/prometheus/main.go @@ -24,7 +24,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/exporters/prometheus" - "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument" "go.opentelemetry.io/otel/sdk/metric/aggregator/histogram" controller "go.opentelemetry.io/otel/sdk/metric/controller/basic" @@ -35,9 +35,6 @@ import ( var ( lemonsKey = attribute.Key("ex.com/lemons") - - // TODO Bring back Global package - meterProvider metric.MeterProvider ) func initMeter() { @@ -57,9 +54,8 @@ func initMeter() { if err != nil { log.Panicf("failed to initialize prometheus exporter %v", err) } - // TODO Bring back Global package - // global.SetMeterProvider(exporter.MeterProvider()) - meterProvider = exporter.MeterProvider() + + global.SetMeterProvider(exporter.MeterProvider()) http.HandleFunc("/", exporter.ServeHTTP) go func() { @@ -72,9 +68,8 @@ func initMeter() { func main() { initMeter() - // TODO Bring back Global package - // meter := global.Meter("ex.com/basic") - meter := meterProvider.Meter("ex.com/basic") + meter := global.Meter("ex.com/basic") + observerLock := new(sync.RWMutex) observerValueToReport := new(float64) observerLabelsToReport := new([]attribute.KeyValue) diff --git a/exporters/otlp/otlpmetric/otlpmetricgrpc/example_test.go b/exporters/otlp/otlpmetric/otlpmetricgrpc/example_test.go index fe0866b7af5..0b0fbd6967a 100644 --- a/exporters/otlp/otlpmetric/otlpmetricgrpc/example_test.go +++ b/exporters/otlp/otlpmetric/otlpmetricgrpc/example_test.go @@ -24,6 +24,7 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/otlp/otlpmetric" "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" + "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument" controller "go.opentelemetry.io/otel/sdk/metric/controller/basic" processor "go.opentelemetry.io/otel/sdk/metric/processor/basic" @@ -53,11 +54,11 @@ func Example_insecure() { controller.WithExporter(exp), controller.WithCollectPeriod(2*time.Second), ) - // TODO Bring back Global package - // global.SetMeterProvider(pusher) + + global.SetMeterProvider(pusher) if err := pusher.Start(ctx); err != nil { - log.Fatalf("could not start metric controoler: %v", err) + log.Fatalf("could not start metric controller: %v", err) } defer func() { ctx, cancel := context.WithTimeout(ctx, time.Second) @@ -68,9 +69,7 @@ func Example_insecure() { } }() - // TODO Bring Back Global package - // meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") - meter := pusher.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") + meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") // Recorder metric example @@ -115,11 +114,11 @@ func Example_withTLS() { controller.WithExporter(exp), controller.WithCollectPeriod(2*time.Second), ) - // TODO Bring back Global package - // global.SetMeterProvider(pusher) + + global.SetMeterProvider(pusher) if err := pusher.Start(ctx); err != nil { - log.Fatalf("could not start metric controoler: %v", err) + log.Fatalf("could not start metric controller: %v", err) } defer func() { @@ -131,9 +130,7 @@ func Example_withTLS() { } }() - // TODO Bring back Global package - // meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") - meter := pusher.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") + meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") // Recorder metric example counter, err := meter.SyncFloat64().Counter("an_important_metric", instrument.WithDescription("Measures the cumulative epicness of the app")) @@ -174,11 +171,11 @@ func Example_withDifferentSignalCollectors() { controller.WithExporter(exp), controller.WithCollectPeriod(2*time.Second), ) - // TODO Bring back Global package - // global.SetMeterProvider(pusher) + + global.SetMeterProvider(pusher) if err := pusher.Start(ctx); err != nil { - log.Fatalf("could not start metric controoler: %v", err) + log.Fatalf("could not start metric controller: %v", err) } defer func() { ctx, cancel := context.WithTimeout(ctx, time.Second) @@ -189,9 +186,7 @@ func Example_withDifferentSignalCollectors() { } }() - // TODO Bring back Global package - // meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") - meter := pusher.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") + meter := global.Meter("go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc_test") // Recorder metric example counter, err := meter.SyncFloat64().Counter("an_important_metric", instrument.WithDescription("Measures the cumulative epicness of the app")) diff --git a/exporters/stdout/stdoutmetric/example_test.go b/exporters/stdout/stdoutmetric/example_test.go index 1250a463a8c..1d85a422235 100644 --- a/exporters/stdout/stdoutmetric/example_test.go +++ b/exporters/stdout/stdoutmetric/example_test.go @@ -21,6 +21,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/exporters/stdout/stdoutmetric" "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument/syncint64" controller "go.opentelemetry.io/otel/sdk/metric/controller/basic" processor "go.opentelemetry.io/otel/sdk/metric/processor/basic" @@ -33,13 +34,6 @@ const ( ) var ( - // TODO Bring back Global package - // meter = global.GetMeterProvider().Meter( - // instrumentationName, - // metric.WithInstrumentationVersion(instrumentationVersion), - // ) - meter metric.Meter - loopCounter syncint64.Counter paramValue syncint64.Histogram @@ -82,9 +76,9 @@ func InstallExportPipeline(ctx context.Context) func() { if err = pusher.Start(ctx); err != nil { log.Fatalf("starting push controller: %v", err) } - // TODO Bring back Global package - // global.SetMeterProvider(pusher) - meter = pusher.Meter(instrumentationName, metric.WithInstrumentationVersion(instrumentationVersion)) + + global.SetMeterProvider(pusher) + meter := global.Meter(instrumentationName, metric.WithInstrumentationVersion(instrumentationVersion)) loopCounter, err = meter.SyncInt64().Counter("function.loops") if err != nil { diff --git a/sdk/metric/benchmark_test.go b/sdk/metric/benchmark_test.go index fd5f49bd1ef..cb06dcc75fb 100644 --- a/sdk/metric/benchmark_test.go +++ b/sdk/metric/benchmark_test.go @@ -22,6 +22,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument" "go.opentelemetry.io/otel/metric/instrument/syncfloat64" "go.opentelemetry.io/otel/metric/instrument/syncint64" @@ -181,27 +182,25 @@ func BenchmarkIterator_16(b *testing.B) { // Counters -// TODO readd global +func BenchmarkGlobalInt64CounterAddWithSDK(b *testing.B) { + // Compare with BenchmarkInt64CounterAdd() to see overhead of global + // package. This is in the SDK to avoid the API from depending on the + // SDK. + ctx := context.Background() + fix := newFixture(b) -// func BenchmarkGlobalInt64CounterAddWithSDK(b *testing.B) { -// // Compare with BenchmarkInt64CounterAdd() to see overhead of global -// // package. This is in the SDK to avoid the API from depending on the -// // SDK. -// ctx := context.Background() -// fix := newFixture(b) + global.SetMeterProvider(fix) -// sdk := global.Meter("test") -// global.SetMeterProvider(fix) + labs := []attribute.KeyValue{attribute.String("A", "B")} -// labs := []attribute.KeyValue{attribute.String("A", "B")} -// cnt := Must(sdk).NewInt64Counter("int64.sum") + cnt := fix.iCounter("int64.sum") -// b.ResetTimer() + b.ResetTimer() -// for i := 0; i < b.N; i++ { -// cnt.Add(ctx, 1, labs...) -// } -// } + for i := 0; i < b.N; i++ { + cnt.Add(ctx, 1, labs...) + } +} func BenchmarkInt64CounterAdd(b *testing.B) { ctx := context.Background()