diff --git a/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java b/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java index a1d5eac08e..0c177bc414 100644 --- a/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java @@ -42,6 +42,7 @@ public class DefaultOpenTelemetry implements OpenTelemetry { } @Override + @Deprecated public MeterProvider getMeterProvider() { return meterProvider; } diff --git a/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetryBuilder.java b/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetryBuilder.java index 53deafe50f..68d317662f 100644 --- a/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetryBuilder.java +++ b/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetryBuilder.java @@ -30,6 +30,7 @@ public class DefaultOpenTelemetryBuilder } @Override + @Deprecated public DefaultOpenTelemetryBuilder setMeterProvider(MeterProvider meterProvider) { requireNonNull(meterProvider, "meterProvider"); this.meterProvider = meterProvider; diff --git a/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java b/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java index de10cf38eb..f61605a8c1 100644 --- a/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java @@ -115,7 +115,12 @@ public final class GlobalOpenTelemetry { return get().getTracer(instrumentationName, instrumentationVersion); } - /** Returns the globally registered {@link MeterProvider}. */ + /** + * Returns the globally registered {@link MeterProvider}. + * + * @deprecated this will be removed soon in preparation for the initial otel release. + */ + @Deprecated public static MeterProvider getMeterProvider() { return get().getMeterProvider(); } @@ -128,7 +133,9 @@ public final class GlobalOpenTelemetry { * @param instrumentationName The name of the instrumentation library, not the name of the * instrument*ed* library. * @return a tracer instance. + * @deprecated this will be removed soon in preparation for the initial otel release. */ + @Deprecated public static Meter getMeter(String instrumentationName) { return get().getMeter(instrumentationName); } @@ -144,7 +151,9 @@ public final class GlobalOpenTelemetry { * instrument*ed* library. * @param instrumentationVersion The version of the instrumentation library. * @return a tracer instance. + * @deprecated this will be removed soon in preparation for the initial otel release. */ + @Deprecated public static Meter getMeter(String instrumentationName, String instrumentationVersion) { return get().getMeter(instrumentationName, instrumentationVersion); } diff --git a/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java b/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java index 1371950c7f..d3ad32d888 100644 --- a/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java @@ -88,7 +88,7 @@ public interface OpenTelemetry { /** * Returns the globally registered {@link MeterProvider}. * - * @deprecated use {@link GlobalOpenTelemetry#getMeterProvider()} + * @deprecated this will be removed soon in preparation for the initial otel release. */ @Deprecated static MeterProvider getGlobalMeterProvider() { @@ -98,7 +98,7 @@ public interface OpenTelemetry { /** * Gets or creates a named meter instance from the globally registered {@link MeterProvider}. * - * @deprecated use {@link GlobalOpenTelemetry#getMeter(String)} + * @deprecated this will be removed soon in preparation for the initial otel release. */ @Deprecated static Meter getGlobalMeter(String instrumentationName) { @@ -109,7 +109,7 @@ public interface OpenTelemetry { * Gets or creates a named and versioned meter instance from the globally registered {@link * MeterProvider}. * - * @deprecated use {@link GlobalOpenTelemetry#getMeter(String, String)} + * @deprecated this will be removed soon in preparation for the initial otel release. */ @Deprecated static Meter getGlobalMeter(String instrumentationName, String instrumentationVersion) { @@ -173,17 +173,21 @@ public interface OpenTelemetry { return getTracerProvider().get(instrumentationName, instrumentationVersion); } - /** Returns the {@link MeterProvider} for this {@link OpenTelemetry}. */ + /** + * Returns the {@link MeterProvider} for this {@link OpenTelemetry}. + * + * @deprecated this will be removed soon in preparation for the initial otel release. + */ + @Deprecated MeterProvider getMeterProvider(); /** * Gets or creates a named meter instance from the {@link MeterProvider} in this {@link * OpenTelemetry}. * - * @param instrumentationName The name of the instrumentation library, not the name of the - * instrument*ed* library. - * @return a tracer instance. + * @deprecated this will be removed soon in preparation for the initial otel release. */ + @Deprecated default Meter getMeter(String instrumentationName) { return getMeterProvider().get(instrumentationName); } @@ -192,11 +196,9 @@ public interface OpenTelemetry { * Gets or creates a named and versioned meter instance from the {@link MeterProvider} in this * {@link OpenTelemetry}. * - * @param instrumentationName The name of the instrumentation library, not the name of the - * instrument*ed* library. - * @param instrumentationVersion The version of the instrumentation library. - * @return a tracer instance. + * @deprecated this will be removed soon in preparation for the initial otel release. */ + @Deprecated default Meter getMeter(String instrumentationName, String instrumentationVersion) { return getMeterProvider().get(instrumentationName, instrumentationVersion); } diff --git a/api/all/src/main/java/io/opentelemetry/api/OpenTelemetryBuilder.java b/api/all/src/main/java/io/opentelemetry/api/OpenTelemetryBuilder.java index 54b0881ef4..a8c4a3a56f 100644 --- a/api/all/src/main/java/io/opentelemetry/api/OpenTelemetryBuilder.java +++ b/api/all/src/main/java/io/opentelemetry/api/OpenTelemetryBuilder.java @@ -21,7 +21,12 @@ public interface OpenTelemetryBuilder> { /** Sets the {@link TracerProvider} to use. */ T setTracerProvider(TracerProvider tracerProvider); - /** Sets the {@link MeterProvider} to use. */ + /** + * Sets the {@link MeterProvider} to use. + * + * @deprecated this will be removed soon in preparation for the initial otel release. + */ + @Deprecated T setMeterProvider(MeterProvider meterProvider); /** Sets the {@link ContextPropagators} to use. */ diff --git a/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java b/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java index 9418e2706c..6b3d4a2cfd 100644 --- a/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java @@ -41,6 +41,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") // Testing deprecated code class OpenTelemetryTest { @BeforeAll diff --git a/api/metrics/src/main/java/io/opentelemetry/api/metrics/GlobalMetricsProvider.java b/api/metrics/src/main/java/io/opentelemetry/api/metrics/GlobalMetricsProvider.java new file mode 100644 index 0000000000..8eda52c89d --- /dev/null +++ b/api/metrics/src/main/java/io/opentelemetry/api/metrics/GlobalMetricsProvider.java @@ -0,0 +1,93 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.api.metrics; + +import io.opentelemetry.spi.metrics.MeterProviderFactory; +import java.util.ServiceLoader; +import java.util.concurrent.atomic.AtomicReference; +import javax.annotation.Nullable; + +/** + * IMPORTANT: This is a temporary class, and solution for the metrics package until it will be + * marked as stable. + */ +public class GlobalMetricsProvider { + private static final Object mutex = new Object(); + private static final AtomicReference globalMeterProvider = new AtomicReference<>(); + + private GlobalMetricsProvider() {} + + /** Returns the globally registered {@link MeterProvider}. */ + public static MeterProvider get() { + MeterProvider meterProvider = globalMeterProvider.get(); + if (meterProvider == null) { + synchronized (mutex) { + if (globalMeterProvider.get() == null) { + MeterProviderFactory meterProviderFactory = loadSpi(); + if (meterProviderFactory != null) { + meterProvider = meterProviderFactory.create(); + } else { + meterProvider = MeterProvider.getDefault(); + } + globalMeterProvider.compareAndSet(null, meterProvider); + } + } + } + return meterProvider; + } + + /** + * Gets or creates a named meter instance from the globally registered {@link MeterProvider}. + * + *

This is a shortcut method for {@code getGlobalMeterProvider().get(instrumentationName)} + * + * @param instrumentationName The name of the instrumentation library, not the name of the + * instrument*ed* library. + * @return a tracer instance. + */ + public static Meter getMeter(String instrumentationName) { + return get().get(instrumentationName); + } + + /** + * Gets or creates a named and versioned meter instance from the globally registered {@link + * MeterProvider}. + * + *

This is a shortcut method for {@code getGlobalMeterProvider().get(instrumentationName, + * instrumentationVersion)} + * + * @param instrumentationName The name of the instrumentation library, not the name of the + * instrument*ed* library. + * @param instrumentationVersion The version of the instrumentation library. + * @return a tracer instance. + */ + public static Meter getMeter(String instrumentationName, String instrumentationVersion) { + return get().get(instrumentationName, instrumentationVersion); + } + + /** + * Load provider class via {@link ServiceLoader}. A specific provider class can be requested via + * setting a system property with FQCN. + * + * @return a provider or null if not found + * @throws IllegalStateException if a specified provider is not found + */ + @Nullable + private static MeterProviderFactory loadSpi() { + String specifiedProvider = System.getProperty(MeterProviderFactory.class.getName()); + ServiceLoader providers = ServiceLoader.load(MeterProviderFactory.class); + for (MeterProviderFactory provider : providers) { + if (specifiedProvider == null || specifiedProvider.equals(provider.getClass().getName())) { + return provider; + } + } + if (specifiedProvider != null) { + throw new IllegalStateException( + String.format("Service provider %s not found", specifiedProvider)); + } + return null; + } +} diff --git a/api/all/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java b/api/metrics/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java similarity index 92% rename from api/all/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java rename to api/metrics/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java index 180d9393aa..9db327f31e 100644 --- a/api/all/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java +++ b/api/metrics/src/main/java/io/opentelemetry/spi/metrics/MeterProviderFactory.java @@ -5,7 +5,6 @@ package io.opentelemetry.spi.metrics; -import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.metrics.MeterProvider; import javax.annotation.concurrent.ThreadSafe; @@ -16,8 +15,6 @@ import javax.annotation.concurrent.ThreadSafe; *
* A specific implementation can be selected by a system property {@code * io.opentelemetry.metrics.spi.MeterProviderFactory} with value of fully qualified class name. - * - * @see OpenTelemetry */ @ThreadSafe public interface MeterProviderFactory { diff --git a/api/all/src/main/java/io/opentelemetry/spi/metrics/package-info.java b/api/metrics/src/main/java/io/opentelemetry/spi/metrics/package-info.java similarity index 100% rename from api/all/src/main/java/io/opentelemetry/spi/metrics/package-info.java rename to api/metrics/src/main/java/io/opentelemetry/spi/metrics/package-info.java diff --git a/exporters/otlp/src/main/java/io/opentelemetry/exporter/otlp/OtlpGrpcSpanExporter.java b/exporters/otlp/src/main/java/io/opentelemetry/exporter/otlp/OtlpGrpcSpanExporter.java index 6e9b823f8e..7918cbb49e 100644 --- a/exporters/otlp/src/main/java/io/opentelemetry/exporter/otlp/OtlpGrpcSpanExporter.java +++ b/exporters/otlp/src/main/java/io/opentelemetry/exporter/otlp/OtlpGrpcSpanExporter.java @@ -10,9 +10,10 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import io.grpc.ConnectivityState; import io.grpc.ManagedChannel; -import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Labels; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest; import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse; import io.opentelemetry.proto.collector.trace.v1.TraceServiceGrpc; @@ -76,16 +77,9 @@ public final class OtlpGrpcSpanExporter implements SpanExporter { private final TraceServiceFutureStub traceService; private final ManagedChannel managedChannel; private final long deadlineMs; - - private final LongCounter spansSeen = - GlobalOpenTelemetry.getMeter("io.opentelemetry.exporters.otlp") - .longCounterBuilder("spansSeenByExporter") - .build(); - - private final LongCounter spansExported = - GlobalOpenTelemetry.getMeter("io.opentelemetry.exporters.otlp") - .longCounterBuilder("spansExportedByExporter") - .build(); + private final LongCounter.BoundLongCounter spansSeen; + private final LongCounter.BoundLongCounter spansExportedSuccess; + private final LongCounter.BoundLongCounter spansExportedFailure; /** * Creates a new OTLP gRPC Span Reporter with the given name, using the given channel. @@ -95,6 +89,12 @@ public final class OtlpGrpcSpanExporter implements SpanExporter { * or to a negative value, the exporter will wait indefinitely. */ OtlpGrpcSpanExporter(ManagedChannel channel, long deadlineMs) { + Meter meter = GlobalMetricsProvider.getMeter("io.opentelemetry.exporters.otlp"); + this.spansSeen = + meter.longCounterBuilder("spansSeenByExporter").build().bind(EXPORTER_NAME_LABELS); + LongCounter spansExportedCounter = meter.longCounterBuilder("spansExportedByExporter").build(); + this.spansExportedSuccess = spansExportedCounter.bind(EXPORT_SUCCESS_LABELS); + this.spansExportedFailure = spansExportedCounter.bind(EXPORT_FAILURE_LABELS); this.managedChannel = channel; this.deadlineMs = deadlineMs; this.traceService = TraceServiceGrpc.newFutureStub(channel); @@ -108,7 +108,7 @@ public final class OtlpGrpcSpanExporter implements SpanExporter { */ @Override public CompletableResultCode export(Collection spans) { - spansSeen.add(spans.size(), EXPORTER_NAME_LABELS); + spansSeen.add(spans.size()); ExportTraceServiceRequest exportTraceServiceRequest = ExportTraceServiceRequest.newBuilder() .addAllResourceSpans(SpanAdapter.toProtoResourceSpans(spans)) @@ -128,13 +128,13 @@ public final class OtlpGrpcSpanExporter implements SpanExporter { new FutureCallback() { @Override public void onSuccess(@Nullable ExportTraceServiceResponse response) { - spansExported.add(spans.size(), EXPORT_SUCCESS_LABELS); + spansExportedSuccess.add(spans.size()); result.succeed(); } @Override public void onFailure(Throwable t) { - spansExported.add(spans.size(), EXPORT_FAILURE_LABELS); + spansExportedFailure.add(spans.size()); logger.log(Level.WARNING, "Failed to export spans. Error message: " + t.getMessage()); logger.log(Level.FINEST, "Failed to export spans. Details follow: " + t); result.fail(); @@ -181,15 +181,11 @@ public final class OtlpGrpcSpanExporter implements SpanExporter { @Override public CompletableResultCode shutdown() { final CompletableResultCode result = new CompletableResultCode(); - managedChannel.notifyWhenStateChanged( - ConnectivityState.SHUTDOWN, - new Runnable() { - @Override - public void run() { - result.succeed(); - } - }); + managedChannel.notifyWhenStateChanged(ConnectivityState.SHUTDOWN, result::succeed); managedChannel.shutdown(); + this.spansSeen.unbind(); + this.spansExportedSuccess.unbind(); + this.spansExportedFailure.unbind(); return result; } } diff --git a/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java b/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java index 7b26714c37..843a254114 100644 --- a/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java +++ b/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java @@ -12,11 +12,13 @@ import eu.rekawek.toxiproxy.model.ToxicList; import eu.rekawek.toxiproxy.model.toxic.Timeout; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Labels; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.context.Scope; import io.opentelemetry.exporter.otlp.OtlpGrpcSpanExporter; import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.metrics.MeterSdkProvider; import io.opentelemetry.sdk.metrics.data.MetricData; import io.opentelemetry.sdk.metrics.data.MetricData.LongPoint; import io.opentelemetry.sdk.metrics.data.MetricData.Point; @@ -240,15 +242,13 @@ public class OtlpPipelineStressTest { // set up the metric exporter and wire it into the SDK and a timed reader. - IntervalMetricReader intervalMetricReader = - IntervalMetricReader.builder() - .setMetricExporter(metricExporter) - .setMetricProducers( - Collections.singleton( - OpenTelemetrySdk.getGlobalMeterProvider().getMetricProducer())) - .setExportIntervalMillis(1000) - .build(); - return intervalMetricReader; + return IntervalMetricReader.builder() + .setMetricExporter(metricExporter) + .setMetricProducers( + Collections.singleton( + ((MeterSdkProvider) GlobalMetricsProvider.get()).getMetricProducer())) + .setExportIntervalMillis(1000) + .build(); } private static void addOtlpSpanExporter() { diff --git a/sdk-extensions/logging/src/main/java/io/opentelemetry/sdk/logging/export/BatchLogProcessor.java b/sdk-extensions/logging/src/main/java/io/opentelemetry/sdk/logging/export/BatchLogProcessor.java index 16711a400f..87f508925e 100644 --- a/sdk-extensions/logging/src/main/java/io/opentelemetry/sdk/logging/export/BatchLogProcessor.java +++ b/sdk-extensions/logging/src/main/java/io/opentelemetry/sdk/logging/export/BatchLogProcessor.java @@ -5,9 +5,9 @@ package io.opentelemetry.sdk.logging.export; -import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Labels; import io.opentelemetry.api.internal.Utils; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter; import io.opentelemetry.api.metrics.Meter; @@ -70,7 +70,7 @@ public class BatchLogProcessor implements LogProcessor { private static class Worker implements Runnable { static { - Meter meter = GlobalOpenTelemetry.getMeter("io.opentelemetry.sdk.logging"); + Meter meter = GlobalMetricsProvider.getMeter("io.opentelemetry.sdk.logging"); LongCounter logRecordsProcessed = meter .longCounterBuilder("logRecordsProcessed") diff --git a/sdk/all/src/jmh/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessorDroppedSpansBenchmark.java b/sdk/all/src/jmh/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessorDroppedSpansBenchmark.java index 038793c914..26db74224d 100644 --- a/sdk/all/src/jmh/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessorDroppedSpansBenchmark.java +++ b/sdk/all/src/jmh/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessorDroppedSpansBenchmark.java @@ -6,9 +6,10 @@ package io.opentelemetry.sdk.trace.export; import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.api.trace.Tracer; -import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.metrics.MeterSdkProvider; import io.opentelemetry.sdk.metrics.data.MetricData; import io.opentelemetry.sdk.metrics.data.MetricData.LongPoint; import io.opentelemetry.sdk.metrics.data.MetricData.Point; @@ -55,7 +56,7 @@ public class BatchSpanProcessorDroppedSpansBenchmark { @State(Scope.Benchmark) public static class BenchmarkState { private final MetricProducer metricProducer = - OpenTelemetrySdk.getGlobalMeterProvider().getMetricProducer(); + ((MeterSdkProvider) GlobalMetricsProvider.get()).getMetricProducer(); private BatchSpanProcessor processor; private Tracer tracer; private Collection allMetrics; diff --git a/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java b/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java index 0bb7f48097..6d50c54ba1 100644 --- a/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java +++ b/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java @@ -57,7 +57,12 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry { return (SdkTracerProvider) ((ObfuscatedTracerProvider) tracerProvider).unobfuscate(); } - /** Returns the global {@link MeterSdkProvider}. */ + /** + * Returns the global {@link MeterSdkProvider}. + * + * @deprecated this will be removed soon in preparation for the initial otel release. + */ + @Deprecated public static MeterSdkProvider getGlobalMeterProvider() { return (MeterSdkProvider) GlobalOpenTelemetry.get().getMeterProvider(); } @@ -130,6 +135,7 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry { * @see MeterSdkProvider#builder() */ @Override + @Deprecated public Builder setMeterProvider(MeterProvider meterProvider) { if (!(meterProvider instanceof MeterSdkProvider)) { throw new IllegalArgumentException( diff --git a/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java b/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java index 32c1e115e0..8f28bf568d 100644 --- a/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java +++ b/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java @@ -40,6 +40,7 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) +@SuppressWarnings("deprecation") // Testing deprecated code class OpenTelemetrySdkTest { @Mock private SdkTracerProvider tracerProvider; diff --git a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/spi/MeterProviderFactorySdkTest.java b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/spi/MeterProviderFactorySdkTest.java index a10fd2b65f..25f72800ae 100644 --- a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/spi/MeterProviderFactorySdkTest.java +++ b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/spi/MeterProviderFactorySdkTest.java @@ -7,7 +7,7 @@ package io.opentelemetry.sdk.metrics.spi; import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.sdk.metrics.MeterSdkProvider; import org.junit.jupiter.api.Test; @@ -15,6 +15,6 @@ import org.junit.jupiter.api.Test; class MeterProviderFactorySdkTest { @Test void testDefault() { - assertThat(GlobalOpenTelemetry.getMeterProvider()).isInstanceOf(MeterSdkProvider.class); + assertThat(GlobalMetricsProvider.get()).isInstanceOf(MeterSdkProvider.class); } } diff --git a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessor.java b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessor.java index bfb817235e..2039c4a803 100644 --- a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessor.java +++ b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpanProcessor.java @@ -5,8 +5,8 @@ package io.opentelemetry.sdk.trace.export; -import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Labels; +import io.opentelemetry.api.metrics.GlobalMetricsProvider; import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter; import io.opentelemetry.api.metrics.Meter; @@ -169,7 +169,7 @@ public final class BatchSpanProcessor implements SpanProcessor { this.maxExportBatchSize = maxExportBatchSize; this.exporterTimeoutMillis = exporterTimeoutMillis; this.queue = queue; - Meter meter = GlobalOpenTelemetry.getMeter("io.opentelemetry.sdk.trace"); + Meter meter = GlobalMetricsProvider.getMeter("io.opentelemetry.sdk.trace"); meter .longValueObserverBuilder("queueSize") .setDescription("The number of spans queued")