[Breaking Change] Rename API getDefault to noop! (#2842)

* Noop!

* errorprone
This commit is contained in:
Anuraag Agrawal 2021-02-18 02:18:22 +09:00 committed by GitHub
parent 224845b6b1
commit fa8bb33646
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 47 additions and 55 deletions

View File

@ -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. */

View File

@ -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

View File

@ -57,8 +57,8 @@ public final class GlobalOpenTelemetry {
return autoConfigured;
}
set(OpenTelemetry.getDefault());
return OpenTelemetry.getDefault();
set(OpenTelemetry.noop());
return OpenTelemetry.noop();
}
}
}

View File

@ -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}. */

View File

@ -23,7 +23,7 @@ class DefaultTracerProvider implements TracerProvider {
@Override
public Tracer get(String instrumentationName, String instrumentationVersion) {
return Tracer.getDefault();
return DefaultTracer.getInstance();
}
private DefaultTracerProvider() {}

View File

@ -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}.
*

View File

@ -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();
}

View File

@ -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() {

View File

@ -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);
}
}

View File

@ -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(

View File

@ -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() {

View File

@ -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() {}

View File

@ -23,7 +23,7 @@ public class GlobalMetricsProvider {
if (meterProvider == null) {
synchronized (mutex) {
if (globalMeterProvider.get() == null) {
return MeterProvider.getDefault();
return MeterProvider.noop();
}
}
}

View File

@ -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}.
*

View File

@ -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();
}

View File

@ -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() {

View File

@ -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());
}
}

View File

@ -34,7 +34,7 @@ public class Application {
static {
openTelemetry =
OpenTelemetry.getPropagating(
OpenTelemetry.propagating(
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
}

View File

@ -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());
}
}

View File

@ -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(

View File

@ -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());