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 7539a5c3b17..ccb234d7d77 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 @@ -33,9 +33,7 @@ class SdkLogger implements Logger { private final LoggerSharedState loggerSharedState; private final InstrumentationScopeInfo instrumentationScopeInfo; - // deliberately not volatile because of performance concerns - // - which means its eventually consistent - protected boolean loggerEnabled; + protected volatile boolean loggerEnabled; SdkLogger( LoggerSharedState loggerSharedState, diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java index b31b3721428..470d1b96098 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java @@ -89,7 +89,7 @@ final class SdkMeter implements Meter { private final InstrumentationScopeInfo instrumentationScopeInfo; private final Map readerStorageRegistries; - private boolean meterEnabled; + private volatile boolean meterEnabled; SdkMeter( MeterProviderSharedState meterProviderSharedState, diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/AsynchronousMetricStorage.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/AsynchronousMetricStorage.java index 6463226f8bc..318bd4847d7 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/AsynchronousMetricStorage.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/AsynchronousMetricStorage.java @@ -87,7 +87,7 @@ public final class AsynchronousMetricStorage> aggregatorHandlePool = new ConcurrentLinkedQueue<>(); - private boolean enabled; + private volatile boolean enabled; DefaultSynchronousMetricStorage( RegisteredReader registeredReader, 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 b148d0cf8c6..d90f4d8cb01 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 @@ -30,9 +30,8 @@ class SdkTracer implements Tracer { private final TracerSharedState sharedState; private final InstrumentationScopeInfo instrumentationScopeInfo; - // deliberately not volatile because of performance concerns - // - which means its eventually consistent - protected boolean tracerEnabled; + + protected volatile boolean tracerEnabled; SdkTracer( TracerSharedState sharedState,