diff --git a/api/all/src/main/java/io/opentelemetry/api/logs/DefaultLogger.java b/api/all/src/main/java/io/opentelemetry/api/logs/DefaultLogger.java index 228ba1ec6e0..38c9e6efa98 100644 --- a/api/all/src/main/java/io/opentelemetry/api/logs/DefaultLogger.java +++ b/api/all/src/main/java/io/opentelemetry/api/logs/DefaultLogger.java @@ -23,6 +23,11 @@ static Logger getInstance() { return INSTANCE; } + @Override + public boolean isEnabled(Severity severity, Context context) { + return false; + } + @Override public LogRecordBuilder logRecordBuilder() { return NOOP_LOG_RECORD_BUILDER; diff --git a/api/all/src/main/java/io/opentelemetry/api/logs/Logger.java b/api/all/src/main/java/io/opentelemetry/api/logs/Logger.java index 50b8035bb5d..4536aacd0e6 100644 --- a/api/all/src/main/java/io/opentelemetry/api/logs/Logger.java +++ b/api/all/src/main/java/io/opentelemetry/api/logs/Logger.java @@ -5,6 +5,7 @@ package io.opentelemetry.api.logs; +import io.opentelemetry.context.Context; import javax.annotation.concurrent.ThreadSafe; /** @@ -22,6 +23,23 @@ @ThreadSafe public interface Logger { + /** + * Returns {@code true} if the logger is enabled for the given {@code context} and {@code + * severity}. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #logRecordBuilder()}. + */ + default boolean isEnabled(Severity severity, Context context) { + return true; + } + + /** Overload of {@link #isEnabled(Severity, Context)} assuming {@link Context#current()}. */ + default boolean isEnabled(Severity severity) { + return isEnabled(severity, Context.current()); + } + /** * Return a {@link LogRecordBuilder} to emit a log record. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/DefaultMeter.java b/api/all/src/main/java/io/opentelemetry/api/metrics/DefaultMeter.java index fff36ae9cbb..5caa7d829c2 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/DefaultMeter.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/DefaultMeter.java @@ -67,6 +67,11 @@ public BatchCallback batchCallback( private DefaultMeter() {} private static class NoopLongCounter implements LongCounter { + @Override + public boolean isEnabled() { + return false; + } + @Override public void add(long value, Attributes attributes, Context context) {} @@ -78,6 +83,11 @@ public void add(long value) {} } private static class NoopDoubleCounter implements DoubleCounter { + @Override + public boolean isEnabled() { + return false; + } + @Override public void add(double value, Attributes attributes, Context context) {} @@ -159,6 +169,11 @@ public ObservableDoubleMeasurement buildObserver() { } private static class NoopLongUpDownCounter implements LongUpDownCounter { + @Override + public boolean isEnabled() { + return false; + } + @Override public void add(long value, Attributes attributes, Context context) {} @@ -170,6 +185,11 @@ public void add(long value) {} } private static class NoopDoubleUpDownCounter implements DoubleUpDownCounter { + @Override + public boolean isEnabled() { + return false; + } + @Override public void add(double value, Attributes attributes, Context context) {} @@ -253,6 +273,11 @@ public ObservableDoubleMeasurement buildObserver() { } private static class NoopDoubleHistogram implements DoubleHistogram { + @Override + public boolean isEnabled() { + return false; + } + @Override public void record(double value, Attributes attributes, Context context) {} @@ -264,6 +289,11 @@ public void record(double value) {} } private static class NoopLongHistogram implements LongHistogram { + @Override + public boolean isEnabled() { + return false; + } + @Override public void record(long value, Attributes attributes, Context context) {} @@ -357,6 +387,11 @@ public DoubleGauge build() { } private static class NoopDoubleGauge implements DoubleGauge { + @Override + public boolean isEnabled() { + return false; + } + @Override public void set(double value) {} @@ -398,6 +433,11 @@ public LongGauge build() { } private static class NoopLongGauge implements LongGauge { + @Override + public boolean isEnabled() { + return false; + } + @Override public void set(long value) {} diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleCounter.java b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleCounter.java index 1934b937379..42e60ab3e42 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleCounter.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleCounter.java @@ -16,6 +16,19 @@ */ @ThreadSafe public interface DoubleCounter { + + /** + * Returns {@code true} if the counter is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #add(double)}, {@link #add(double, Attributes)}, or {@link #add(double, + * Attributes, Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleGauge.java b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleGauge.java index a755ff25b16..f415da8aa07 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleGauge.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleGauge.java @@ -16,6 +16,19 @@ */ @ThreadSafe public interface DoubleGauge { + + /** + * Returns {@code true} if the gauge is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #set(double)}, {@link #set(double, Attributes)}, or {@link #set(double, + * Attributes, Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Set the gauge value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleHistogram.java b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleHistogram.java index 07b45531294..61242b0d04e 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleHistogram.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleHistogram.java @@ -17,6 +17,18 @@ @ThreadSafe public interface DoubleHistogram { + /** + * Returns {@code true} if the histogram is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #record(double)}, {@link #record(double, Attributes)}, or {@link #record(double, + * Attributes, Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleUpDownCounter.java b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleUpDownCounter.java index 7c6187b8a83..60ba957c8e7 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleUpDownCounter.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/DoubleUpDownCounter.java @@ -16,6 +16,19 @@ */ @ThreadSafe public interface DoubleUpDownCounter { + + /** + * Returns {@code true} if the up down counter is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #add(double)}, {@link #add(double, Attributes)}, or {@link #add(double, + * Attributes, Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/LongCounter.java b/api/all/src/main/java/io/opentelemetry/api/metrics/LongCounter.java index fee520f0c11..0f82fac4c8e 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/LongCounter.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/LongCounter.java @@ -17,6 +17,18 @@ @ThreadSafe public interface LongCounter { + /** + * Returns {@code true} if the counter is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #add(long)}, {@link #add(long, Attributes)}, or {@link #add(long, Attributes, + * Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/LongGauge.java b/api/all/src/main/java/io/opentelemetry/api/metrics/LongGauge.java index 018f60e323b..c3404b8fffc 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/LongGauge.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/LongGauge.java @@ -16,6 +16,19 @@ */ @ThreadSafe public interface LongGauge { + + /** + * Returns {@code true} if the gauge is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #set(long)}, {@link #set(long, Attributes)}, or {@link #set(long, Attributes, + * Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Set the gauge value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/LongHistogram.java b/api/all/src/main/java/io/opentelemetry/api/metrics/LongHistogram.java index ba8bed7e376..0f2467bd210 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/LongHistogram.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/LongHistogram.java @@ -17,6 +17,18 @@ @ThreadSafe public interface LongHistogram { + /** + * Returns {@code true} if the histogram is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #record(long)}, {@link #record(long, Attributes)}, or {@link #record(long, + * Attributes, Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/metrics/LongUpDownCounter.java b/api/all/src/main/java/io/opentelemetry/api/metrics/LongUpDownCounter.java index f9106c12deb..d6f75057688 100644 --- a/api/all/src/main/java/io/opentelemetry/api/metrics/LongUpDownCounter.java +++ b/api/all/src/main/java/io/opentelemetry/api/metrics/LongUpDownCounter.java @@ -16,6 +16,19 @@ */ @ThreadSafe public interface LongUpDownCounter { + + /** + * Returns {@code true} if the up down counter is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #add(long)}, {@link #add(long, Attributes)}, or {@link #add(long, Attributes, + * Context)}. + */ + default boolean isEnabled() { + return true; + } + /** * Records a value. * diff --git a/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracer.java b/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracer.java index 166eb0be2d0..808df33e15e 100644 --- a/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracer.java +++ b/api/all/src/main/java/io/opentelemetry/api/trace/DefaultTracer.java @@ -23,6 +23,11 @@ static Tracer getInstance() { return INSTANCE; } + @Override + public boolean isEnabled() { + return false; + } + @Override public SpanBuilder spanBuilder(String spanName) { return NoopSpanBuilder.create(); 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 f3b0703b361..c3298c2b75b 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 @@ -60,6 +60,17 @@ @ThreadSafe public interface Tracer { + /** + * Returns {@code true} if the tracer is enabled. + * + *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because + * the response is subject to change over the application, callers should call this before each + * call to {@link #spanBuilder(String)}. + */ + default boolean isEnabled() { + return true; + } + /** * Returns a {@link SpanBuilder} to create and start a new {@link Span}. * diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedLogger.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedLogger.java index 60f36685900..b28259c31d8 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedLogger.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/logs/ExtendedLogger.java @@ -6,41 +6,10 @@ package io.opentelemetry.api.incubator.logs; import io.opentelemetry.api.logs.Logger; -import io.opentelemetry.api.logs.Severity; -import io.opentelemetry.context.Context; /** Extended {@link Logger} with experimental APIs. */ public interface ExtendedLogger extends Logger { - /** - * Returns {@code true} if the logger is enabled for the given {@code context} and {@code - * severity}. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #logRecordBuilder()}. - */ - default boolean isEnabled(Severity severity, Context context) { - return true; - } - - /** Overload of {@link #isEnabled(Severity, Context)} assuming {@link Context#current()}. */ - default boolean isEnabled(Severity severity) { - return isEnabled(severity, Context.current()); - } - - /** - * Overload of {@link #isEnabled(Severity, Context)} assuming {@link - * Severity#UNDEFINED_SEVERITY_NUMBER} and {@link Context#current()}. - * - * @deprecated for removal after 1.55.0. Use {@link #isEnabled(Severity, Context)} or {@link - * #isEnabled(Severity)} instead. - */ - @Deprecated - default boolean isEnabled() { - return isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER); - } - @Override ExtendedLogRecordBuilder logRecordBuilder(); } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleCounter.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleCounter.java index 4345661ebe5..60043af4df8 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleCounter.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleCounter.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleCounter; -import io.opentelemetry.context.Context; /** Extended {@link DoubleCounter} with experimental APIs. */ public interface ExtendedDoubleCounter extends DoubleCounter { - /** - * Returns {@code true} if the counter is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #add(double)}, {@link #add(double, Attributes)}, or {@link #add(double, - * Attributes, Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleGauge.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleGauge.java index d9a56f7a391..7297f6af3be 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleGauge.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleGauge.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleGauge; -import io.opentelemetry.context.Context; /** Extended {@link DoubleGauge} with experimental APIs. */ public interface ExtendedDoubleGauge extends DoubleGauge { - /** - * Returns {@code true} if the gauge is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #set(double)}, {@link #set(double, Attributes)}, or {@link #set(double, - * Attributes, Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleHistogram.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleHistogram.java index 0a481afef2b..391d829a73f 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleHistogram.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleHistogram.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleHistogram; -import io.opentelemetry.context.Context; /** Extended {@link DoubleHistogram} with experimental APIs. */ public interface ExtendedDoubleHistogram extends DoubleHistogram { - /** - * Returns {@code true} if the histogram is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #record(double)}, {@link #record(double, Attributes)}, or {@link #record(double, - * Attributes, Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleUpDownCounter.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleUpDownCounter.java index 6dbb91f1d6f..0337e76483d 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleUpDownCounter.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedDoubleUpDownCounter.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleUpDownCounter; -import io.opentelemetry.context.Context; /** Extended {@link DoubleUpDownCounter} with experimental APIs. */ public interface ExtendedDoubleUpDownCounter extends DoubleUpDownCounter { - /** - * Returns {@code true} if the up down counter is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #add(double)}, {@link #add(double, Attributes)}, or {@link #add(double, - * Attributes, Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongCounter.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongCounter.java index 0ff67a38fb9..2db89872610 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongCounter.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongCounter.java @@ -5,23 +5,11 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleCounter; import io.opentelemetry.api.metrics.LongCounter; -import io.opentelemetry.context.Context; /** Extended {@link DoubleCounter} with experimental APIs. */ public interface ExtendedLongCounter extends LongCounter { - /** - * Returns {@code true} if the counter is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #add(long)}, {@link #add(long, Attributes)}, or {@link #add(long, Attributes, - * Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongGauge.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongGauge.java index 7a660d0e007..e2f29146e08 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongGauge.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongGauge.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.LongGauge; -import io.opentelemetry.context.Context; /** Extended {@link LongGauge} with experimental APIs. */ public interface ExtendedLongGauge extends LongGauge { - /** - * Returns {@code true} if the gauge is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #set(long)}, {@link #set(long, Attributes)}, or {@link #set(long, Attributes, - * Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongHistogram.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongHistogram.java index d1cd303fb7d..888f0b68b31 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongHistogram.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongHistogram.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.LongHistogram; -import io.opentelemetry.context.Context; /** Extended {@link LongHistogram} with experimental APIs. */ public interface ExtendedLongHistogram extends LongHistogram { - /** - * Returns {@code true} if the histogram is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #record(long)}, {@link #record(long, Attributes)}, or {@link #record(long, - * Attributes, Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongUpDownCounter.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongUpDownCounter.java index 7327ed43842..24552d6c5b7 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongUpDownCounter.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/metrics/ExtendedLongUpDownCounter.java @@ -5,22 +5,10 @@ package io.opentelemetry.api.incubator.metrics; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.LongUpDownCounter; -import io.opentelemetry.context.Context; /** Extended {@link LongUpDownCounter} with experimental APIs. */ public interface ExtendedLongUpDownCounter extends LongUpDownCounter { - /** - * Returns {@code true} if the up down counter is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #add(long)}, {@link #add(long, Attributes)}, or {@link #add(long, Attributes, - * Context)}. - */ - default boolean isEnabled() { - return true; - } + // keep this class even if it is empty, since experimental methods may be added in the future. } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedTracer.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedTracer.java index c37ba913eb1..047f34c0d9f 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedTracer.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/trace/ExtendedTracer.java @@ -10,17 +10,6 @@ /** Extended {@link Tracer} with experimental APIs. */ public interface ExtendedTracer extends Tracer { - /** - * Returns {@code true} if the tracer is enabled. - * - *
This allows callers to avoid unnecessary compute when nothing is consuming the data. Because - * the response is subject to change over the application, callers should call this before each - * call to {@link #spanBuilder(String)}. - */ - default boolean isEnabled() { - return true; - } - @Override ExtendedSpanBuilder spanBuilder(String spanName); } diff --git a/api/incubator/src/test/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerTest.java b/api/incubator/src/test/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerTest.java index ef201610779..4c81a9396cf 100644 --- a/api/incubator/src/test/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerTest.java +++ b/api/incubator/src/test/java/io/opentelemetry/api/incubator/logs/ExtendedDefaultLoggerTest.java @@ -28,18 +28,13 @@ protected Logger getLogger() { } @Test - @SuppressWarnings("deprecation") // testing deprecated code void incubatingApiIsLoaded() { Logger logger = LoggerProvider.noop().get("test"); + assertThat(logger.isEnabled(Severity.ERROR, Context.current())).isFalse(); + assertThat(logger.isEnabled(Severity.ERROR)).isFalse(); - assertThat(logger) - .isInstanceOfSatisfying( - ExtendedLogger.class, - extendedLogger -> { - assertThat(extendedLogger.isEnabled(Severity.ERROR, Context.current())).isFalse(); - assertThat(extendedLogger.isEnabled(Severity.ERROR)).isFalse(); - assertThat(extendedLogger.isEnabled()).isFalse(); - }); + assertThat(logger).isInstanceOf(ExtendedLogger.class); + assertThat(logger.isEnabled(Severity.ERROR, Context.current())).isFalse(); ExtendedLogRecordBuilder builder = (ExtendedLogRecordBuilder) logger.logRecordBuilder(); assertThat(builder).isInstanceOf(ExtendedLogRecordBuilder.class); assertThat(builder.setBody(Value.of(0))).isSameAs(builder); diff --git a/api/incubator/src/test/java/io/opentelemetry/api/incubator/metrics/ExtendedDefaultMeterTest.java b/api/incubator/src/test/java/io/opentelemetry/api/incubator/metrics/ExtendedDefaultMeterTest.java index f864c5d44a6..97204fc93ea 100644 --- a/api/incubator/src/test/java/io/opentelemetry/api/incubator/metrics/ExtendedDefaultMeterTest.java +++ b/api/incubator/src/test/java/io/opentelemetry/api/incubator/metrics/ExtendedDefaultMeterTest.java @@ -31,48 +31,39 @@ void incubatingApiIsLoaded() { assertThat(meter).isSameAs(OpenTelemetry.noop().getMeter("test")); assertThat(meter.gaugeBuilder("test").ofLongs()).isInstanceOf(ExtendedLongGaugeBuilder.class); - assertThat(meter.gaugeBuilder("test").ofLongs().build()) - .isInstanceOfSatisfying( - ExtendedLongGauge.class, instrument -> assertThat(instrument.isEnabled()).isFalse()); + assertThat(meter.gaugeBuilder("test").ofLongs().build().isEnabled()).isFalse(); + assertThat(meter.gaugeBuilder("test").ofLongs().build()).isInstanceOf(ExtendedLongGauge.class); assertThat(meter.gaugeBuilder("test")).isInstanceOf(ExtendedDoubleGaugeBuilder.class); - assertThat(meter.gaugeBuilder("test").build()) - .isInstanceOfSatisfying( - ExtendedDoubleGauge.class, instrument -> assertThat(instrument.isEnabled()).isFalse()); + assertThat(meter.gaugeBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.gaugeBuilder("test").build()).isInstanceOf(ExtendedDoubleGauge.class); assertThat(meter.histogramBuilder("test").ofLongs()) .isInstanceOf(ExtendedLongHistogramBuilder.class); + assertThat(meter.histogramBuilder("test").ofLongs().build().isEnabled()).isFalse(); assertThat(meter.histogramBuilder("test").ofLongs().build()) - .isInstanceOfSatisfying( - ExtendedLongHistogram.class, - instrument -> assertThat(instrument.isEnabled()).isFalse()); + .isInstanceOf(ExtendedLongHistogram.class); assertThat(meter.histogramBuilder("test")).isInstanceOf(ExtendedDoubleHistogramBuilder.class); - assertThat(meter.histogramBuilder("test").build()) - .isInstanceOfSatisfying( - ExtendedDoubleHistogram.class, - instrument -> assertThat(instrument.isEnabled()).isFalse()); + assertThat(meter.histogramBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.histogramBuilder("test").build()).isInstanceOf(ExtendedDoubleHistogram.class); assertThat(meter.counterBuilder("test")).isInstanceOf(ExtendedLongCounterBuilder.class); - assertThat(meter.counterBuilder("test").build()) - .isInstanceOfSatisfying( - ExtendedLongCounter.class, instrument -> assertThat(instrument.isEnabled()).isFalse()); + assertThat(meter.counterBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.counterBuilder("test").build()).isInstanceOf(ExtendedLongCounter.class); assertThat(meter.counterBuilder("test").ofDoubles()) .isInstanceOf(ExtendedDoubleCounterBuilder.class); + assertThat(meter.counterBuilder("test").ofDoubles().build().isEnabled()).isFalse(); assertThat(meter.counterBuilder("test").ofDoubles().build()) - .isInstanceOfSatisfying( - ExtendedDoubleCounter.class, - instrument -> assertThat(instrument.isEnabled()).isFalse()); + .isInstanceOf(ExtendedDoubleCounter.class); assertThat(meter.upDownCounterBuilder("test")) .isInstanceOf(ExtendedLongUpDownCounterBuilder.class); + assertThat(meter.upDownCounterBuilder("test").build().isEnabled()).isFalse(); assertThat(meter.upDownCounterBuilder("test").build()) - .isInstanceOfSatisfying( - ExtendedLongUpDownCounter.class, - instrument -> assertThat(instrument.isEnabled()).isFalse()); + .isInstanceOf(ExtendedLongUpDownCounter.class); assertThat(meter.upDownCounterBuilder("test").ofDoubles()) .isInstanceOf(ExtendedDoubleUpDownCounterBuilder.class); + assertThat(meter.upDownCounterBuilder("test").ofDoubles().build().isEnabled()).isFalse(); assertThat(meter.upDownCounterBuilder("test").ofDoubles().build()) - .isInstanceOfSatisfying( - ExtendedDoubleUpDownCounter.class, - instrument -> assertThat(instrument.isEnabled()).isFalse()); + .isInstanceOf(ExtendedDoubleUpDownCounter.class); } } diff --git a/api/incubator/src/test/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerTest.java b/api/incubator/src/test/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerTest.java index f13d072e43c..1ccec2a4ba6 100644 --- a/api/incubator/src/test/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerTest.java +++ b/api/incubator/src/test/java/io/opentelemetry/api/incubator/trace/ExtendedDefaultTracerTest.java @@ -32,11 +32,9 @@ public TracerProvider getTracerProvider() { void incubatingApiIsLoaded() { Tracer tracer = TracerProvider.noop().get("test"); assertThat(tracer).isSameAs(OpenTelemetry.noop().getTracer("test")); + assertThat(tracer.isEnabled()).isFalse(); - assertThat(tracer) - .isInstanceOfSatisfying( - ExtendedTracer.class, - extendedTracer -> assertThat(extendedTracer.isEnabled()).isFalse()); + assertThat(tracer).isInstanceOf(ExtendedTracer.class); assertThat(tracer.spanBuilder("test")).isInstanceOf(ExtendedSpanBuilder.class); } diff --git a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultLoggerTest.java b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultLoggerTest.java index 8cba6548026..a64862d8f07 100644 --- a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultLoggerTest.java +++ b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultLoggerTest.java @@ -45,6 +45,11 @@ void noopLoggerProvider_doesNotThrow() { .doesNotThrowAnyException(); } + @Test + void defaultIsEnabled() { + assertThat(getLogger().isEnabled(Severity.ERROR, Context.root())).isFalse(); + } + @Test void buildAndEmit() { assertThatCode( diff --git a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultMeterTest.java b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultMeterTest.java index 29cf6a3eac8..1b9c3c3b3cd 100644 --- a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultMeterTest.java +++ b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultMeterTest.java @@ -6,6 +6,7 @@ package io.opentelemetry.api.testing.internal; import static io.opentelemetry.api.common.AttributeKey.stringKey; +import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.DoubleCounter; @@ -52,6 +53,18 @@ void noopMeterProvider_builderDoesNotThrow() { .build(); } + @Test + void defaultIsEnabled() { + assertThat(meter.counterBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.counterBuilder("test").ofDoubles().build().isEnabled()).isFalse(); + assertThat(meter.histogramBuilder("test").ofLongs().build().isEnabled()).isFalse(); + assertThat(meter.histogramBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.upDownCounterBuilder("test").build().isEnabled()).isFalse(); + assertThat(meter.upDownCounterBuilder("test").ofDoubles().build().isEnabled()).isFalse(); + assertThat(meter.gaugeBuilder("test").ofLongs().build().isEnabled()).isFalse(); + assertThat(meter.gaugeBuilder("test").build().isEnabled()).isFalse(); + } + @Test void noopLongCounter_doesNotThrow() { LongCounter counter = diff --git a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultTracerTest.java b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultTracerTest.java index c03f877f8a6..4a6f73f8793 100644 --- a/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultTracerTest.java +++ b/api/testing-internal/src/main/java/io/opentelemetry/api/testing/internal/AbstractDefaultTracerTest.java @@ -63,6 +63,11 @@ void defaultSpanBuilderWithName() { .isFalse(); } + @Test + void defaultIsEnabled() { + assertThat(defaultTracer.isEnabled()).isFalse(); + } + @Test @SuppressWarnings("NullAway") void spanContextPropagationExplicitParent() { diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-api.txt index a190a108853..b9f67186813 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-api.txt @@ -1,2 +1,32 @@ Comparing source compatibility of opentelemetry-api-1.61.0-SNAPSHOT.jar against opentelemetry-api-1.60.1.jar -No changes. \ No newline at end of file +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.logs.Logger (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled(io.opentelemetry.api.logs.Severity, io.opentelemetry.context.Context) + +++ NEW METHOD: PUBLIC(+) boolean isEnabled(io.opentelemetry.api.logs.Severity) +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.DoubleCounter (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.DoubleGauge (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.DoubleHistogram (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.DoubleUpDownCounter (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.LongCounter (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.LongGauge (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.LongHistogram (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.metrics.LongUpDownCounter (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() +*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.api.trace.Tracer (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) boolean isEnabled() diff --git a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/ExtendedSdkLogger.java b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/ExtendedSdkLogger.java index 5ceb6414f41..7940a45d600 100644 --- a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/ExtendedSdkLogger.java +++ b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/ExtendedSdkLogger.java @@ -7,8 +7,6 @@ import io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder; import io.opentelemetry.api.incubator.logs.ExtendedLogger; -import io.opentelemetry.api.logs.Severity; -import io.opentelemetry.context.Context; import io.opentelemetry.sdk.common.InstrumentationScopeInfo; import io.opentelemetry.sdk.logs.internal.LoggerConfig; @@ -22,12 +20,6 @@ final class ExtendedSdkLogger extends SdkLogger implements ExtendedLogger { super(loggerSharedState, instrumentationScopeInfo, loggerConfig); } - @Override - @SuppressWarnings("RedundantOverride") - public boolean isEnabled(Severity severity, Context context) { - return super.isEnabled(severity, context); - } - @Override public ExtendedLogRecordBuilder logRecordBuilder() { return (ExtendedLogRecordBuilder) super.logRecordBuilder(); diff --git a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/SdkLogger.java b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/SdkLogger.java index 0fa97771d1f..20c74169d80 100644 --- a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/SdkLogger.java +++ b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/SdkLogger.java @@ -60,22 +60,6 @@ static SdkLogger create( } @Override - public LogRecordBuilder logRecordBuilder() { - if (loggerEnabled) { - return INCUBATOR_AVAILABLE - ? IncubatingUtil.createExtendedLogRecordBuilder( - loggerSharedState, instrumentationScopeInfo, this) - : new SdkLogRecordBuilder(loggerSharedState, instrumentationScopeInfo, this); - } - return NOOP_LOGGER.logRecordBuilder(); - } - - // VisibleForTesting - InstrumentationScopeInfo getInstrumentationScopeInfo() { - return instrumentationScopeInfo; - } - - // Visible for testing public boolean isEnabled(Severity severity, Context context) { if (!loggerEnabled) { return false; @@ -96,6 +80,22 @@ public boolean isEnabled(Severity severity, Context context) { return true; } + @Override + public LogRecordBuilder logRecordBuilder() { + if (loggerEnabled) { + return INCUBATOR_AVAILABLE + ? IncubatingUtil.createExtendedLogRecordBuilder( + loggerSharedState, instrumentationScopeInfo, this) + : new SdkLogRecordBuilder(loggerSharedState, instrumentationScopeInfo, this); + } + return NOOP_LOGGER.logRecordBuilder(); + } + + // VisibleForTesting + InstrumentationScopeInfo getInstrumentationScopeInfo() { + return instrumentationScopeInfo; + } + void updateLoggerConfig(LoggerConfig loggerConfig) { loggerEnabled = loggerConfig.isEnabled(); minimumSeverity = loggerConfig.getMinimumSeverity(); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleCounter.java index 050429f8f52..5aefcb96d25 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleCounter.java @@ -20,11 +20,6 @@ private ExtendedSdkDoubleCounter( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkDoubleCounterBuilder extends SdkDoubleCounterBuilder implements ExtendedDoubleCounterBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleGauge.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleGauge.java index def79d8bb65..f65153f4a0b 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleGauge.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleGauge.java @@ -20,11 +20,6 @@ private ExtendedSdkDoubleGauge( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkDoubleGaugeBuilder extends SdkDoubleGaugeBuilder implements ExtendedDoubleGaugeBuilder { ExtendedSdkDoubleGaugeBuilder(SdkMeter sdkMeter, String name) { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleHistogram.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleHistogram.java index 76afb84214f..198b4160043 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleHistogram.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleHistogram.java @@ -21,11 +21,6 @@ final class ExtendedSdkDoubleHistogram extends SdkDoubleHistogram super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkDoubleHistogramBuilder extends SdkDoubleHistogramBuilder implements ExtendedDoubleHistogramBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleUpDownCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleUpDownCounter.java index 3e7ae4bdb11..aa991c2fcdd 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleUpDownCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkDoubleUpDownCounter.java @@ -21,11 +21,6 @@ private ExtendedSdkDoubleUpDownCounter( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkDoubleUpDownCounterBuilder extends SdkDoubleUpDownCounterBuilder implements ExtendedDoubleUpDownCounterBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongCounter.java index f87e3407184..eede83d2432 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongCounter.java @@ -20,11 +20,6 @@ private ExtendedSdkLongCounter( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkLongCounterBuilder extends SdkLongCounterBuilder implements ExtendedLongCounterBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongGauge.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongGauge.java index 94845f4bef5..970046d814b 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongGauge.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongGauge.java @@ -20,11 +20,6 @@ private ExtendedSdkLongGauge( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkLongGaugeBuilder extends SdkLongGaugeBuilder implements ExtendedLongGaugeBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongHistogram.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongHistogram.java index e10851efd54..051f089184b 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongHistogram.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongHistogram.java @@ -20,11 +20,6 @@ private ExtendedSdkLongHistogram( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkLongHistogramBuilder extends SdkLongHistogramBuilder implements ExtendedLongHistogramBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongUpDownCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongUpDownCounter.java index 53be08fed63..15b6f96790e 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongUpDownCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/ExtendedSdkLongUpDownCounter.java @@ -21,11 +21,6 @@ private ExtendedSdkLongUpDownCounter( super(descriptor, sdkMeter, storage); } - @Override - public boolean isEnabled() { - return sdkMeter.isMeterEnabled() && storage.isEnabled(); - } - static final class ExtendedSdkLongUpDownCounterBuilder extends SdkLongUpDownCounterBuilder implements ExtendedLongUpDownCounterBuilder { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleCounter.java index bdcb30bbc61..d3ffd20f5c6 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleCounter.java @@ -33,6 +33,11 @@ class SdkDoubleCounter extends AbstractInstrument implements DoubleCounter { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void add(double increment, Attributes attributes, Context context) { if (increment < 0) { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleGauge.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleGauge.java index 6bbdaf5355e..c3ee314361c 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleGauge.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleGauge.java @@ -28,6 +28,11 @@ class SdkDoubleGauge extends AbstractInstrument implements DoubleGauge { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void set(double value, Attributes attributes) { storage.recordDouble(value, attributes, Context.current()); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleHistogram.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleHistogram.java index 15f0f5ea44d..a3e4e5dddb1 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleHistogram.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleHistogram.java @@ -33,6 +33,11 @@ class SdkDoubleHistogram extends AbstractInstrument implements DoubleHistogram { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void record(double value, Attributes attributes, Context context) { if (value < 0) { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleUpDownCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleUpDownCounter.java index 4231f58fdc0..0c94d89cba9 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleUpDownCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkDoubleUpDownCounter.java @@ -28,6 +28,11 @@ class SdkDoubleUpDownCounter extends AbstractInstrument implements DoubleUpDownC this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void add(double increment, Attributes attributes, Context context) { storage.recordDouble(increment, attributes, context); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongCounter.java index b26004835d2..d1834272c14 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongCounter.java @@ -34,6 +34,11 @@ class SdkLongCounter extends AbstractInstrument implements LongCounter { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void add(long increment, Attributes attributes, Context context) { if (increment < 0) { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongGauge.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongGauge.java index 4140dfb42bf..045d8cc5aa9 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongGauge.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongGauge.java @@ -27,6 +27,11 @@ class SdkLongGauge extends AbstractInstrument implements LongGauge { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void set(long value, Attributes attributes) { storage.recordLong(value, attributes, Context.current()); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongHistogram.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongHistogram.java index 4f935d0d091..ab743f0b568 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongHistogram.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongHistogram.java @@ -34,6 +34,11 @@ class SdkLongHistogram extends AbstractInstrument implements LongHistogram { this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void record(long value, Attributes attributes, Context context) { if (value < 0) { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongUpDownCounter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongUpDownCounter.java index dece771f4b6..1fe09623d9a 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongUpDownCounter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkLongUpDownCounter.java @@ -28,6 +28,11 @@ class SdkLongUpDownCounter extends AbstractInstrument implements LongUpDownCount this.storage = storage; } + @Override + public boolean isEnabled() { + return sdkMeter.isMeterEnabled() && storage.isEnabled(); + } + @Override public void add(long increment, Attributes attributes, Context context) { storage.recordLong(increment, attributes, context); diff --git a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/ExtendedSdkTracer.java b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/ExtendedSdkTracer.java index 0c1d1c8e8b9..b74829ceeba 100644 --- a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/ExtendedSdkTracer.java +++ b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/ExtendedSdkTracer.java @@ -20,11 +20,6 @@ final class ExtendedSdkTracer extends SdkTracer implements ExtendedTracer { super(sharedState, instrumentationScopeInfo, tracerConfig); } - @Override - public boolean isEnabled() { - return tracerEnabled; - } - @Override public ExtendedSpanBuilder spanBuilder(String spanName) { return (ExtendedSpanBuilder) super.spanBuilder(spanName); 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 d90f4d8cb01..bac55710884 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 @@ -51,6 +51,11 @@ static SdkTracer create( : new SdkTracer(sharedState, instrumentationScopeInfo, tracerConfig); } + @Override + public boolean isEnabled() { + return tracerEnabled; + } + /** * Note that {@link ExtendedSdkTracer#spanBuilder(String)} calls this and depends on it returning * {@link ExtendedSdkTracer} in all cases when the incubator is present. @@ -78,11 +83,6 @@ InstrumentationScopeInfo getInstrumentationScopeInfo() { return instrumentationScopeInfo; } - // Visible for testing - boolean isEnabled() { - return tracerEnabled; - } - void updateTracerConfig(TracerConfig tracerConfig) { this.tracerEnabled = tracerConfig.isEnabled(); }