|
28 | 28 | import io.opentelemetry.context.Scope; |
29 | 29 | import io.opentelemetry.sdk.common.CompletableResultCode; |
30 | 30 | import io.opentelemetry.sdk.common.InstrumentationScopeInfo; |
| 31 | +import io.opentelemetry.sdk.internal.ScopeConfigurator; |
31 | 32 | import io.opentelemetry.sdk.metrics.data.MetricData; |
32 | 33 | import io.opentelemetry.sdk.metrics.export.MetricReader; |
| 34 | +import io.opentelemetry.sdk.metrics.internal.MeterConfig; |
33 | 35 | import io.opentelemetry.sdk.metrics.internal.SdkMeterProviderUtil; |
34 | 36 | import io.opentelemetry.sdk.metrics.internal.view.ViewRegistry; |
35 | 37 | import io.opentelemetry.sdk.resources.Resource; |
|
47 | 49 | import java.util.concurrent.TimeoutException; |
48 | 50 | import java.util.concurrent.atomic.AtomicBoolean; |
49 | 51 | import java.util.function.Consumer; |
| 52 | +import org.assertj.core.api.Assertions; |
50 | 53 | import org.junit.jupiter.api.Test; |
51 | 54 | import org.junit.jupiter.api.extension.ExtendWith; |
52 | 55 | import org.junit.jupiter.api.extension.RegisterExtension; |
@@ -1030,6 +1033,34 @@ void resetForTest() { |
1030 | 1033 | sum -> sum.isCumulative().hasPointsSatisfying(point -> point.hasValue(1)))); |
1031 | 1034 | } |
1032 | 1035 |
|
| 1036 | + private static ScopeConfigurator<MeterConfig> flipConfigurator(boolean enabled) { |
| 1037 | + return scopeInfo -> enabled ? MeterConfig.disabled() : MeterConfig.enabled(); |
| 1038 | + } |
| 1039 | + |
| 1040 | + @Test |
| 1041 | + void propagatesEnablementToLoggerDirectly() { |
| 1042 | + SdkMeterProvider meterProvider = |
| 1043 | + SdkMeterProvider.builder().registerMetricReader(InMemoryMetricReader.create()).build(); |
| 1044 | + SdkMeter meter = (SdkMeter) meterProvider.get("test"); |
| 1045 | + boolean isEnabled = meter.isMeterEnabled(); |
| 1046 | + |
| 1047 | + meterProvider.setMeterConfigurator(flipConfigurator(isEnabled)); |
| 1048 | + |
| 1049 | + Assertions.assertThat(meter.isMeterEnabled()).isEqualTo(!isEnabled); |
| 1050 | + } |
| 1051 | + |
| 1052 | + @Test |
| 1053 | + void propagatesEnablementToLoggerByUtil() { |
| 1054 | + SdkMeterProvider sdkMeterProvider = |
| 1055 | + SdkMeterProvider.builder().registerMetricReader(InMemoryMetricReader.create()).build(); |
| 1056 | + SdkMeter sdkMeter = (SdkMeter) sdkMeterProvider.get("test"); |
| 1057 | + boolean isEnabled = sdkMeter.isMeterEnabled(); |
| 1058 | + |
| 1059 | + SdkMeterProviderUtil.setMeterConfigurator(sdkMeterProvider, flipConfigurator(isEnabled)); |
| 1060 | + |
| 1061 | + Assertions.assertThat(sdkMeter.isMeterEnabled()).isEqualTo(!isEnabled); |
| 1062 | + } |
| 1063 | + |
1033 | 1064 | private static void registerViewForAllTypes( |
1034 | 1065 | SdkMeterProviderBuilder meterProviderBuilder, Aggregation aggregation) { |
1035 | 1066 | for (InstrumentType instrumentType : InstrumentType.values()) { |
|
0 commit comments