Breaking change: disable micrometer bridge by default (#10038)

This commit is contained in:
Gregor Zeitlinger 2023-12-12 20:47:55 +01:00 committed by GitHub
parent 14dc34e50e
commit 3213c86784
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 7 deletions

View File

@ -57,4 +57,8 @@ tasks {
dependsOn(testPrometheusMode) dependsOn(testPrometheusMode)
dependsOn(testHistogramGauges) dependsOn(testHistogramGauges)
} }
withType<Test>().configureEach {
jvmArgs("-Dotel.instrumentation.micrometer.enabled=true")
}
} }

View File

@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.bytebuddy.matcher.ElementMatcher; import net.bytebuddy.matcher.ElementMatcher;
@ -21,6 +22,12 @@ public class MicrometerInstrumentationModule extends InstrumentationModule {
super("micrometer", "micrometer-1.5"); super("micrometer", "micrometer-1.5");
} }
@Override
public boolean defaultEnabled(ConfigProperties config) {
// produces a lot of metrics that are already captured - e.g. JVM memory usage
return false;
}
@Override @Override
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() { public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
// added in 1.5 // added in 1.5

View File

@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureBefore(CompositeMeterRegistryAutoConfiguration.class) @AutoConfigureBefore(CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnBean({Clock.class, OpenTelemetry.class}) @ConditionalOnBean({Clock.class, OpenTelemetry.class})
@ConditionalOnClass(MeterRegistry.class) @ConditionalOnClass(MeterRegistry.class)
@ConditionalOnProperty(name = "otel.instrumentation.micrometer.enabled", matchIfMissing = true) @ConditionalOnProperty(name = "otel.instrumentation.micrometer.enabled")
@Configuration @Configuration
public class MicrometerBridgeAutoConfiguration { public class MicrometerBridgeAutoConfiguration {

View File

@ -35,14 +35,10 @@ class MicrometerBridgeAutoConfigurationTest {
} }
@Test @Test
void metricsEnabledByDefault() { void metricsDisabledByDefault() {
runner runner
.withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class)) .withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class))
.run( .run(context -> assertThat(context.containsBean("otelMeterRegistry")).isFalse());
context ->
assertThat(context.getBean("otelMeterRegistry", MeterRegistry.class))
.isNotNull()
.isInstanceOf(OpenTelemetryMeterRegistry.class));
} }
@Test @Test