Deprecate metrics from opentelemetry-api, add a global version in metrics api (#2279)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
eccbfebf38
commit
dbb1ae91f9
|
@ -42,6 +42,7 @@ public class DefaultOpenTelemetry implements OpenTelemetry {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public MeterProvider getMeterProvider() {
|
||||
return meterProvider;
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ public class DefaultOpenTelemetryBuilder
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public DefaultOpenTelemetryBuilder setMeterProvider(MeterProvider meterProvider) {
|
||||
requireNonNull(meterProvider, "meterProvider");
|
||||
this.meterProvider = meterProvider;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,12 @@ public interface OpenTelemetryBuilder<T extends OpenTelemetryBuilder<T>> {
|
|||
/** 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. */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<MeterProvider> 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}.
|
||||
*
|
||||
* <p>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}.
|
||||
*
|
||||
* <p>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<MeterProviderFactory> 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;
|
||||
}
|
||||
}
|
|
@ -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;
|
|||
* <br>
|
||||
* 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 {
|
|
@ -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<SpanData> 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<ExportTraceServiceResponse>() {
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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<MetricData> allMetrics;
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue