From fa8bb33646f0525aa43eb90435e9fd0ec84b59d7 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 18 Feb 2021 02:18:22 +0900 Subject: [PATCH] [Breaking Change] Rename API getDefault to noop! (#2842) * Noop! * errorprone --- .../api/trace/DefaultTracerBenchmarks.java | 2 +- .../api/DefaultOpenTelemetry.java | 6 +++--- .../api/GlobalOpenTelemetry.java | 4 ++-- .../io/opentelemetry/api/OpenTelemetry.java | 10 ++++----- .../api/trace/DefaultTracerProvider.java | 2 +- .../io/opentelemetry/api/trace/Tracer.java | 8 ------- .../api/trace/TracerProvider.java | 2 +- .../opentelemetry/api/OpenTelemetryTest.java | 21 +++++++++---------- .../api/trace/DefaultTracerProviderTest.java | 4 ++-- .../api/trace/DefaultTracerTest.java | 2 +- .../api/trace/SpanBuilderTest.java | 2 +- .../api/metrics/DefaultMeterProvider.java | 2 +- .../api/metrics/GlobalMetricsProvider.java | 2 +- .../io/opentelemetry/api/metrics/Meter.java | 8 ------- .../api/metrics/MeterProvider.java | 2 +- .../api/metrics/BatchRecorderTest.java | 2 +- .../api/metrics/DefaultMeterTest.java | 6 +++--- .../java/io/opentelemetry/Application.java | 2 +- .../opentracingshim/NoopSpanBuilderShim.java | 7 ++++++- .../io/opentelemetry/sdk/metrics/TestSdk.java | 3 ++- .../io/opentelemetry/sdk/trace/SdkTracer.java | 5 ++++- 21 files changed, 47 insertions(+), 55 deletions(-) diff --git a/api/all/src/jmh/java/io/opentelemetry/api/trace/DefaultTracerBenchmarks.java b/api/all/src/jmh/java/io/opentelemetry/api/trace/DefaultTracerBenchmarks.java index f40d594515..be612f377b 100644 --- a/api/all/src/jmh/java/io/opentelemetry/api/trace/DefaultTracerBenchmarks.java +++ b/api/all/src/jmh/java/io/opentelemetry/api/trace/DefaultTracerBenchmarks.java @@ -22,7 +22,7 @@ import org.openjdk.jmh.annotations.Warmup; @State(Scope.Thread) public class DefaultTracerBenchmarks { - private final Tracer tracer = Tracer.getDefault(); + private final Tracer tracer = DefaultTracer.getInstance(); @Nullable private Span span = null; /** Benchmark the full span lifecycle. */ 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 2e8f99be95..64f9844e2d 100644 --- a/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/DefaultOpenTelemetry.java @@ -17,11 +17,11 @@ import javax.annotation.concurrent.ThreadSafe; final class DefaultOpenTelemetry implements OpenTelemetry { private static final OpenTelemetry NO_OP = new DefaultOpenTelemetry(ContextPropagators.noop()); - static OpenTelemetry noop() { + static OpenTelemetry getNoop() { return NO_OP; } - static OpenTelemetry propagating(ContextPropagators propagators) { + static OpenTelemetry getPropagating(ContextPropagators propagators) { return new DefaultOpenTelemetry(propagators); } @@ -33,7 +33,7 @@ final class DefaultOpenTelemetry implements OpenTelemetry { @Override public TracerProvider getTracerProvider() { - return TracerProvider.getDefault(); + return TracerProvider.noop(); } @Override 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 4a261d2d32..84a28fa789 100644 --- a/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java @@ -57,8 +57,8 @@ public final class GlobalOpenTelemetry { return autoConfigured; } - set(OpenTelemetry.getDefault()); - return OpenTelemetry.getDefault(); + set(OpenTelemetry.noop()); + return OpenTelemetry.noop(); } } } 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 289667f0f4..2e764d3c46 100644 --- a/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java +++ b/api/all/src/main/java/io/opentelemetry/api/OpenTelemetry.java @@ -21,9 +21,9 @@ import io.opentelemetry.context.propagation.ContextPropagators; * @see ContextPropagators */ public interface OpenTelemetry { - /** Returns a default, completely no-op {@link OpenTelemetry}. */ - static OpenTelemetry getDefault() { - return DefaultOpenTelemetry.noop(); + /** Returns a completely no-op {@link OpenTelemetry}. */ + static OpenTelemetry noop() { + return DefaultOpenTelemetry.getNoop(); } /** @@ -31,8 +31,8 @@ public interface OpenTelemetry { * io.opentelemetry.context.Context} using the provided {@link ContextPropagators} and is no-op * otherwise. */ - static OpenTelemetry getPropagating(ContextPropagators propagators) { - return DefaultOpenTelemetry.propagating(propagators); + static OpenTelemetry propagating(ContextPropagators propagators) { + return DefaultOpenTelemetry.getPropagating(propagators); } /** Returns the {@link TracerProvider} for this {@link OpenTelemetry}. */ diff --git a/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java b/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java index 7cb4219efc..2b465ea415 100644 --- a/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java +++ b/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java @@ -23,7 +23,7 @@ class DefaultTracerProvider implements TracerProvider { @Override public Tracer get(String instrumentationName, String instrumentationVersion) { - return Tracer.getDefault(); + return DefaultTracer.getInstance(); } private DefaultTracerProvider() {} diff --git a/api/all/src/main/java/io/opentelemetry/api/trace/Tracer.java b/api/all/src/main/java/io/opentelemetry/api/trace/Tracer.java index af3d0a872f..5f34b561b4 100644 --- a/api/all/src/main/java/io/opentelemetry/api/trace/Tracer.java +++ b/api/all/src/main/java/io/opentelemetry/api/trace/Tracer.java @@ -58,14 +58,6 @@ import javax.annotation.concurrent.ThreadSafe; @ThreadSafe public interface Tracer { - /** - * Returns a no-op {@link Tracer} that only creates no-op {@link Span}s which do not record nor - * are emitted. - */ - static Tracer getDefault() { - return DefaultTracer.getInstance(); - } - /** * Returns a {@link SpanBuilder} to create and start a new {@link Span}. * diff --git a/api/all/src/main/java/io/opentelemetry/api/trace/TracerProvider.java b/api/all/src/main/java/io/opentelemetry/api/trace/TracerProvider.java index f2a3c9b9af..f30ed5245d 100644 --- a/api/all/src/main/java/io/opentelemetry/api/trace/TracerProvider.java +++ b/api/all/src/main/java/io/opentelemetry/api/trace/TracerProvider.java @@ -20,7 +20,7 @@ public interface TracerProvider { * Returns a no-op {@link TracerProvider} which only creates no-op {@link Span}s which do not * record nor are emitted. */ - static TracerProvider getDefault() { + static TracerProvider noop() { return DefaultTracerProvider.getInstance(); } 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 7877f3e03b..1d633473b2 100644 --- a/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/OpenTelemetryTest.java @@ -29,23 +29,22 @@ class OpenTelemetryTest { @Test void testDefault() { - assertThat(OpenTelemetry.getDefault().getTracerProvider()) - .isSameAs(TracerProvider.getDefault()); - assertThat(OpenTelemetry.getDefault().getPropagators()).isSameAs(ContextPropagators.noop()); + assertThat(OpenTelemetry.noop().getTracerProvider()).isSameAs(TracerProvider.noop()); + assertThat(OpenTelemetry.noop().getPropagators()).isSameAs(ContextPropagators.noop()); } @Test void propagating() { ContextPropagators contextPropagators = mock(ContextPropagators.class); - OpenTelemetry openTelemetry = OpenTelemetry.getPropagating(contextPropagators); + OpenTelemetry openTelemetry = OpenTelemetry.propagating(contextPropagators); - assertThat(openTelemetry.getTracerProvider()).isSameAs(TracerProvider.getDefault()); + assertThat(openTelemetry.getTracerProvider()).isSameAs(TracerProvider.noop()); assertThat(openTelemetry.getPropagators()).isSameAs(contextPropagators); } @Test void testGlobalBeforeSet() { - assertThat(GlobalOpenTelemetry.getTracerProvider()).isSameAs(TracerProvider.getDefault()); + assertThat(GlobalOpenTelemetry.getTracerProvider()).isSameAs(TracerProvider.noop()); assertThat(GlobalOpenTelemetry.getTracerProvider()) .isSameAs(GlobalOpenTelemetry.getTracerProvider()); assertThat(GlobalOpenTelemetry.getPropagators()).isSameAs(GlobalOpenTelemetry.getPropagators()); @@ -54,9 +53,9 @@ class OpenTelemetryTest { @Test void independentNonGlobalPropagators() { ContextPropagators propagators1 = mock(ContextPropagators.class); - OpenTelemetry otel1 = OpenTelemetry.getPropagating(propagators1); + OpenTelemetry otel1 = OpenTelemetry.propagating(propagators1); ContextPropagators propagators2 = mock(ContextPropagators.class); - OpenTelemetry otel2 = OpenTelemetry.getPropagating(propagators2); + OpenTelemetry otel2 = OpenTelemetry.propagating(propagators2); assertThat(otel1.getPropagators()).isSameAs(propagators1); assertThat(otel2.getPropagators()).isSameAs(propagators2); @@ -65,7 +64,7 @@ class OpenTelemetryTest { @Test void setThenSet() { setOpenTelemetry(); - assertThatThrownBy(() -> GlobalOpenTelemetry.set(OpenTelemetry.getDefault())) + assertThatThrownBy(() -> GlobalOpenTelemetry.set(OpenTelemetry.noop())) .isInstanceOf(IllegalStateException.class) .hasMessageContaining("GlobalOpenTelemetry.set has already been called") .hasStackTraceContaining("setOpenTelemetry"); @@ -74,14 +73,14 @@ class OpenTelemetryTest { @Test void getThenSet() { assertThat(getOpenTelemetry()).isInstanceOf(DefaultOpenTelemetry.class); - assertThatThrownBy(() -> GlobalOpenTelemetry.set(OpenTelemetry.getDefault())) + assertThatThrownBy(() -> GlobalOpenTelemetry.set(OpenTelemetry.noop())) .isInstanceOf(IllegalStateException.class) .hasMessageContaining("GlobalOpenTelemetry.set has already been called") .hasStackTraceContaining("getOpenTelemetry"); } private static void setOpenTelemetry() { - GlobalOpenTelemetry.set(OpenTelemetry.getDefault()); + GlobalOpenTelemetry.set(OpenTelemetry.noop()); } private static OpenTelemetry getOpenTelemetry() { diff --git a/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java b/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java index 665f62d923..72a98f29f5 100644 --- a/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java @@ -13,7 +13,7 @@ class DefaultTracerProviderTest { @Test void returnsDefaultTracer() { - assertThat(TracerProvider.getDefault().get("test")).isInstanceOf(DefaultTracer.class); - assertThat(TracerProvider.getDefault().get("test", "1.0")).isInstanceOf(DefaultTracer.class); + assertThat(TracerProvider.noop().get("test")).isInstanceOf(DefaultTracer.class); + assertThat(TracerProvider.noop().get("test", "1.0")).isInstanceOf(DefaultTracer.class); } } diff --git a/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerTest.java b/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerTest.java index b8dc15d6ab..e137959206 100644 --- a/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/trace/DefaultTracerTest.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test; // try-with-resources. @SuppressWarnings("MustBeClosedChecker") class DefaultTracerTest { - private static final Tracer defaultTracer = Tracer.getDefault(); + private static final Tracer defaultTracer = DefaultTracer.getInstance(); private static final String SPAN_NAME = "MySpanName"; private static final SpanContext spanContext = SpanContext.create( diff --git a/api/all/src/test/java/io/opentelemetry/api/trace/SpanBuilderTest.java b/api/all/src/test/java/io/opentelemetry/api/trace/SpanBuilderTest.java index 032cce8840..0461e86d40 100644 --- a/api/all/src/test/java/io/opentelemetry/api/trace/SpanBuilderTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/trace/SpanBuilderTest.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.Test; /** Unit tests for {@link SpanBuilder}. */ class SpanBuilderTest { - private final Tracer tracer = Tracer.getDefault(); + private final Tracer tracer = DefaultTracer.getInstance(); @Test void doNotCrash_NoopImplementation() { diff --git a/api/metrics/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java b/api/metrics/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java index 4516c098dc..91db009775 100644 --- a/api/metrics/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java +++ b/api/metrics/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java @@ -23,7 +23,7 @@ final class DefaultMeterProvider implements MeterProvider { @Override public Meter get(String instrumentationName, String instrumentationVersion) { - return Meter.getDefault(); + return DefaultMeter.getInstance(); } private DefaultMeterProvider() {} 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 index ede3f71ad4..078c613617 100644 --- a/api/metrics/src/main/java/io/opentelemetry/api/metrics/GlobalMetricsProvider.java +++ b/api/metrics/src/main/java/io/opentelemetry/api/metrics/GlobalMetricsProvider.java @@ -23,7 +23,7 @@ public class GlobalMetricsProvider { if (meterProvider == null) { synchronized (mutex) { if (globalMeterProvider.get() == null) { - return MeterProvider.getDefault(); + return MeterProvider.noop(); } } } diff --git a/api/metrics/src/main/java/io/opentelemetry/api/metrics/Meter.java b/api/metrics/src/main/java/io/opentelemetry/api/metrics/Meter.java index 6ae0d515e6..96a81e2e05 100644 --- a/api/metrics/src/main/java/io/opentelemetry/api/metrics/Meter.java +++ b/api/metrics/src/main/java/io/opentelemetry/api/metrics/Meter.java @@ -25,14 +25,6 @@ import javax.annotation.concurrent.ThreadSafe; @ThreadSafe public interface Meter { - /** - * Returns a {@link Meter} that only creates no-op {@link Instrument}s that neither record nor are - * emitted. - */ - static Meter getDefault() { - return DefaultMeter.getInstance(); - } - /** * Returns a builder for a {@link DoubleCounter}. * diff --git a/api/metrics/src/main/java/io/opentelemetry/api/metrics/MeterProvider.java b/api/metrics/src/main/java/io/opentelemetry/api/metrics/MeterProvider.java index 9202d6c156..a919069c8e 100644 --- a/api/metrics/src/main/java/io/opentelemetry/api/metrics/MeterProvider.java +++ b/api/metrics/src/main/java/io/opentelemetry/api/metrics/MeterProvider.java @@ -20,7 +20,7 @@ public interface MeterProvider { * Returns a {@link MeterProvider} that only creates no-op {@link Instrument}s that neither record * nor are emitted. */ - static MeterProvider getDefault() { + static MeterProvider noop() { return DefaultMeterProvider.getInstance(); } diff --git a/api/metrics/src/test/java/io/opentelemetry/api/metrics/BatchRecorderTest.java b/api/metrics/src/test/java/io/opentelemetry/api/metrics/BatchRecorderTest.java index a0dd5d13b7..1819f8a478 100644 --- a/api/metrics/src/test/java/io/opentelemetry/api/metrics/BatchRecorderTest.java +++ b/api/metrics/src/test/java/io/opentelemetry/api/metrics/BatchRecorderTest.java @@ -10,7 +10,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.jupiter.api.Test; class BatchRecorderTest { - private static final Meter meter = Meter.getDefault(); + private static final Meter meter = DefaultMeter.getInstance(); @Test void testNewBatchRecorder_WrongNumberOfLabels() { diff --git a/api/metrics/src/test/java/io/opentelemetry/api/metrics/DefaultMeterTest.java b/api/metrics/src/test/java/io/opentelemetry/api/metrics/DefaultMeterTest.java index dea60e851e..b307d09c3b 100644 --- a/api/metrics/src/test/java/io/opentelemetry/api/metrics/DefaultMeterTest.java +++ b/api/metrics/src/test/java/io/opentelemetry/api/metrics/DefaultMeterTest.java @@ -12,8 +12,8 @@ import org.junit.jupiter.api.Test; class DefaultMeterTest { @Test void expectDefaultMeter() { - assertThat(MeterProvider.getDefault().get("test")).isInstanceOf(DefaultMeter.class); - assertThat(MeterProvider.getDefault().get("test")).isSameAs(Meter.getDefault()); - assertThat(MeterProvider.getDefault().get("test", "0.1.0")).isSameAs(Meter.getDefault()); + assertThat(MeterProvider.noop().get("test")).isInstanceOf(DefaultMeter.class); + assertThat(MeterProvider.noop().get("test")).isSameAs(DefaultMeter.getInstance()); + assertThat(MeterProvider.noop().get("test", "0.1.0")).isSameAs(DefaultMeter.getInstance()); } } diff --git a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java index 5d1213c790..61263e3da6 100644 --- a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java +++ b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java @@ -34,7 +34,7 @@ public class Application { static { openTelemetry = - OpenTelemetry.getPropagating( + OpenTelemetry.propagating( ContextPropagators.create(W3CTraceContextPropagator.getInstance())); } diff --git a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/NoopSpanBuilderShim.java b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/NoopSpanBuilderShim.java index 61a1e5d4a0..07d8d3fdc0 100644 --- a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/NoopSpanBuilderShim.java +++ b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/NoopSpanBuilderShim.java @@ -6,12 +6,17 @@ package io.opentelemetry.opentracingshim; import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.api.trace.TracerProvider; import io.opentracing.Span; import io.opentracing.SpanContext; import io.opentracing.Tracer.SpanBuilder; import io.opentracing.tag.Tag; final class NoopSpanBuilderShim extends BaseShimObject implements SpanBuilder { + + private static final Tracer TRACER = + TracerProvider.noop().get("io.opentelemetry.opentracingshim"); + private final String spanName; public NoopSpanBuilderShim(TelemetryInfo telemetryInfo, String spanName) { @@ -66,6 +71,6 @@ final class NoopSpanBuilderShim extends BaseShimObject implements SpanBuilder { @Override public Span start() { - return new SpanShim(telemetryInfo, Tracer.getDefault().spanBuilder(spanName).startSpan()); + return new SpanShim(telemetryInfo, TRACER.spanBuilder(spanName).startSpan()); } } diff --git a/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/TestSdk.java b/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/TestSdk.java index a53898bee1..bafe8282f7 100644 --- a/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/TestSdk.java +++ b/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/TestSdk.java @@ -7,6 +7,7 @@ package io.opentelemetry.sdk.metrics; import com.google.errorprone.annotations.Immutable; import io.opentelemetry.api.metrics.Meter; +import io.opentelemetry.api.metrics.MeterProvider; import io.opentelemetry.sdk.common.InstrumentationLibraryInfo; import io.opentelemetry.sdk.internal.SystemClock; import io.opentelemetry.sdk.resources.Resource; @@ -16,7 +17,7 @@ public enum TestSdk { new SdkBuilder() { @Override Meter build() { - return Meter.getDefault(); + return MeterProvider.noop().get("io.opentelemetry.sdk.metrics"); } }), SDK( diff --git a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracer.java b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracer.java index 2fc83d707d..d9aa3e75e8 100644 --- a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracer.java +++ b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracer.java @@ -7,6 +7,7 @@ package io.opentelemetry.sdk.trace; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.api.trace.TracerProvider; import io.opentelemetry.sdk.common.InstrumentationLibraryInfo; /** {@link SdkTracer} is SDK implementation of {@link Tracer}. */ @@ -27,7 +28,9 @@ final class SdkTracer implements Tracer { spanName = FALLBACK_SPAN_NAME; } if (sharedState.hasBeenShutdown()) { - return Tracer.getDefault().spanBuilder(spanName); + return TracerProvider.noop() + .get(instrumentationLibraryInfo.getName(), instrumentationLibraryInfo.getVersion()) + .spanBuilder(spanName); } return new SdkSpanBuilder( spanName, instrumentationLibraryInfo, sharedState, sharedState.getSpanLimits());