Deprecate GlobalMeterProvider (#3948)
This commit is contained in:
parent
b1651a18cf
commit
737a5e2b26
|
|
@ -5,13 +5,23 @@
|
|||
|
||||
package io.opentelemetry.api.metrics;
|
||||
|
||||
/** This class is a temporary solution until metrics SDK is marked stable. */
|
||||
/**
|
||||
* This class is a temporary solution until metrics SDK is marked stable.
|
||||
*
|
||||
* @deprecated Use {@link io.opentelemetry.api.GlobalOpenTelemetry}.
|
||||
*/
|
||||
@Deprecated
|
||||
public class GlobalMeterProvider {
|
||||
private static volatile MeterProvider globalMeterProvider = MeterProvider.noop();
|
||||
|
||||
private GlobalMeterProvider() {}
|
||||
|
||||
/** Returns the globally registered {@link MeterProvider}. */
|
||||
/**
|
||||
* Returns the globally registered {@link MeterProvider}.
|
||||
*
|
||||
* @deprecated Use {@link io.opentelemetry.api.GlobalOpenTelemetry#get()}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static MeterProvider get() {
|
||||
return globalMeterProvider;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@ class OpenCensusMetricsTest {
|
|||
void capturesOpenCensusAndOtelMetrics() throws InterruptedException {
|
||||
InMemoryMetricReader reader = InMemoryMetricReader.create();
|
||||
SdkMeterProvider otelMetrics =
|
||||
SdkMeterProvider.builder()
|
||||
.registerMetricReader(OpenCensusMetrics.attachTo(reader))
|
||||
.buildAndRegisterGlobal();
|
||||
SdkMeterProvider.builder().registerMetricReader(OpenCensusMetrics.attachTo(reader)).build();
|
||||
// Record an otel metric.
|
||||
otelMetrics.meterBuilder("otel").build().counterBuilder("otel.sum").build().add(1);
|
||||
// Record an OpenCensus metric.
|
||||
|
|
|
|||
|
|
@ -254,11 +254,12 @@ public class OtlpPipelineStressTest {
|
|||
PeriodicMetricReader.builder(metricExporter)
|
||||
.setInterval(Duration.ofSeconds(1))
|
||||
.newMetricReaderFactory())
|
||||
.buildAndRegisterGlobal();
|
||||
.build();
|
||||
|
||||
// set up the span exporter and wire it into the SDK
|
||||
OtlpGrpcSpanExporter spanExporter =
|
||||
OtlpGrpcSpanExporter.builder()
|
||||
.setMeterProvider(meterProvider)
|
||||
.setEndpoint(
|
||||
"http://"
|
||||
+ toxiproxyContainer.getHost()
|
||||
|
|
@ -268,6 +269,7 @@ public class OtlpPipelineStressTest {
|
|||
.build();
|
||||
BatchSpanProcessor spanProcessor =
|
||||
BatchSpanProcessor.builder(spanExporter)
|
||||
.setMeterProvider(meterProvider)
|
||||
// .setMaxQueueSize(1000)
|
||||
// .setMaxExportBatchSize(1024)
|
||||
// .setScheduleDelayMillis(1000)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
package io.opentelemetry.sdk.autoconfigure;
|
||||
|
||||
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||
import io.opentelemetry.api.metrics.GlobalMeterProvider;
|
||||
import io.opentelemetry.api.metrics.MeterProvider;
|
||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
|
|
@ -154,7 +153,6 @@ public final class OpenTelemetrySdkAutoConfiguration {
|
|||
String exporterName = config.getString("otel.metrics.exporter");
|
||||
if (exporterName == null || exporterName.equals("none")) {
|
||||
// In the event no exporters are configured set a noop exporter
|
||||
GlobalMeterProvider.set(MeterProvider.noop());
|
||||
return MeterProvider.noop();
|
||||
}
|
||||
MetricExporterConfiguration.configureExporter(
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.sdk.autoconfigure;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||
import io.opentelemetry.api.metrics.GlobalMeterProvider;
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -18,7 +17,6 @@ class OpenTelemetrySdkAutoConfigurationTest {
|
|||
@BeforeEach
|
||||
void setUp() {
|
||||
GlobalOpenTelemetry.resetForTest();
|
||||
GlobalMeterProvider.set(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -42,14 +40,4 @@ class OpenTelemetrySdkAutoConfigurationTest {
|
|||
// ObfuscatedOpenTelemetry
|
||||
assertThat(GlobalOpenTelemetry.get()).isNotSameAs(sdk);
|
||||
}
|
||||
|
||||
@Test
|
||||
void noMetricsSdk() {
|
||||
// OTEL_METRICS_EXPORTER=none so the metrics SDK should be completely disabled.
|
||||
// This is a bit of an odd test, so we just ensure that we don't have the same impl class as if
|
||||
// we instantiated an SDK with a reader.
|
||||
AutoConfiguredOpenTelemetrySdk.initialize();
|
||||
assertThat(GlobalMeterProvider.get().getClass().getSimpleName())
|
||||
.isEqualTo("DefaultMeterProvider");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import com.linecorp.armeria.client.WebClient;
|
||||
import com.linecorp.armeria.common.AggregatedHttpResponse;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.metrics.GlobalMeterProvider;
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -33,9 +33,11 @@ class PrometheusTest {
|
|||
}
|
||||
System.setProperty("otel.exporter.prometheus.host", "127.0.0.1");
|
||||
System.setProperty("otel.exporter.prometheus.port", String.valueOf(port));
|
||||
AutoConfiguredOpenTelemetrySdk.initialize();
|
||||
OpenTelemetrySdk openTelemetrySdk =
|
||||
AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
|
||||
|
||||
GlobalMeterProvider.get()
|
||||
openTelemetrySdk
|
||||
.getMeterProvider()
|
||||
.get("test")
|
||||
.gaugeBuilder("test")
|
||||
.ofLongs()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ package io.opentelemetry.sdk.metrics;
|
|||
|
||||
import static io.opentelemetry.api.internal.Utils.checkArgument;
|
||||
|
||||
import io.opentelemetry.api.metrics.GlobalMeterProvider;
|
||||
import io.opentelemetry.sdk.common.Clock;
|
||||
import io.opentelemetry.sdk.metrics.exemplar.ExemplarFilter;
|
||||
import io.opentelemetry.sdk.metrics.export.MetricReader;
|
||||
|
|
@ -109,11 +108,13 @@ public final class SdkMeterProviderBuilder {
|
|||
* SdkMeterProviderBuilder} and registers it as the global {@link
|
||||
* io.opentelemetry.api.metrics.MeterProvider}.
|
||||
*
|
||||
* @see GlobalMeterProvider
|
||||
* @deprecated Use {@code OpenTelemetrySdkBuilder.buildAndRegisterGlobal} and {@link
|
||||
* io.opentelemetry.api.GlobalOpenTelemetry}.
|
||||
*/
|
||||
@Deprecated
|
||||
public SdkMeterProvider buildAndRegisterGlobal() {
|
||||
SdkMeterProvider meterProvider = build();
|
||||
GlobalMeterProvider.set(meterProvider);
|
||||
io.opentelemetry.api.metrics.GlobalMeterProvider.set(meterProvider);
|
||||
return meterProvider;
|
||||
}
|
||||
|
||||
|
|
@ -149,8 +150,6 @@ public final class SdkMeterProviderBuilder {
|
|||
* using {@link SdkMeterProviderBuilder#buildAndRegisterGlobal()} for use by instrumentation when
|
||||
* that requires access to a global instance of {@link
|
||||
* io.opentelemetry.api.metrics.MeterProvider}.
|
||||
*
|
||||
* @see GlobalMeterProvider
|
||||
*/
|
||||
public SdkMeterProvider build() {
|
||||
return new SdkMeterProvider(
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ package io.opentelemetry.sdk.metrics;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import io.opentelemetry.api.metrics.GlobalMeterProvider;
|
||||
import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -15,12 +14,13 @@ import org.junit.jupiter.api.Test;
|
|||
class SdkMeterProviderBuilderTest {
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation") // Testing deprecated methods
|
||||
void buildAndRegisterGlobal() {
|
||||
SdkMeterProvider meterProvider = SdkMeterProvider.builder().buildAndRegisterGlobal();
|
||||
try {
|
||||
assertThat(GlobalMeterProvider.get()).isSameAs(meterProvider);
|
||||
assertThat(io.opentelemetry.api.metrics.GlobalMeterProvider.get()).isSameAs(meterProvider);
|
||||
} finally {
|
||||
GlobalMeterProvider.set(null);
|
||||
io.opentelemetry.api.metrics.GlobalMeterProvider.set(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.sdk.trace.export;
|
||||
|
||||
import io.opentelemetry.api.metrics.MeterProvider;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
|
||||
import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
|
||||
|
|
@ -48,9 +49,10 @@ public class BatchSpanProcessorCpuBenchmark {
|
|||
@Setup(Level.Iteration)
|
||||
public final void setup() {
|
||||
metricReader = InMemoryMetricReader.create();
|
||||
SdkMeterProvider.builder().registerMetricReader(metricReader).buildAndRegisterGlobal();
|
||||
MeterProvider meterProvider =
|
||||
SdkMeterProvider.builder().registerMetricReader(metricReader).build();
|
||||
SpanExporter exporter = new DelayingSpanExporter(delayMs);
|
||||
processor = BatchSpanProcessor.builder(exporter).build();
|
||||
processor = BatchSpanProcessor.builder(exporter).setMeterProvider(meterProvider).build();
|
||||
tracer =
|
||||
SdkTracerProvider.builder().addSpanProcessor(processor).build().get("benchmarkTracer");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.sdk.trace.export;
|
||||
|
||||
import io.opentelemetry.api.metrics.MeterProvider;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
|
||||
import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
|
||||
|
|
@ -39,9 +40,10 @@ public class BatchSpanProcessorDroppedSpansBenchmark {
|
|||
@Setup(Level.Iteration)
|
||||
public final void setup() {
|
||||
metricReader = InMemoryMetricReader.create();
|
||||
SdkMeterProvider.builder().registerMetricReader(metricReader).buildAndRegisterGlobal();
|
||||
MeterProvider meterProvider =
|
||||
SdkMeterProvider.builder().registerMetricReader(metricReader).build();
|
||||
SpanExporter exporter = new DelayingSpanExporter(0);
|
||||
processor = BatchSpanProcessor.builder(exporter).build();
|
||||
processor = BatchSpanProcessor.builder(exporter).setMeterProvider(meterProvider).build();
|
||||
|
||||
tracer = SdkTracerProvider.builder().build().get("benchmarkTracer");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.sdk.trace.export;
|
||||
|
||||
import io.opentelemetry.api.metrics.MeterProvider;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
|
||||
import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
|
||||
|
|
@ -46,9 +47,10 @@ public class BatchSpanProcessorMultiThreadBenchmark {
|
|||
@Setup(Level.Iteration)
|
||||
public final void setup() {
|
||||
collector = InMemoryMetricReader.create();
|
||||
SdkMeterProvider.builder().registerMetricReader(collector).buildAndRegisterGlobal();
|
||||
MeterProvider meterProvider =
|
||||
SdkMeterProvider.builder().registerMetricReader(collector).build();
|
||||
SpanExporter exporter = new DelayingSpanExporter(delayMs);
|
||||
processor = BatchSpanProcessor.builder(exporter).build();
|
||||
processor = BatchSpanProcessor.builder(exporter).setMeterProvider(meterProvider).build();
|
||||
tracer =
|
||||
SdkTracerProvider.builder().addSpanProcessor(processor).build().get("benchmarkTracer");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue