From 3213c867847e26a8ef215807576ae0195a93ee54 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 12 Dec 2023 20:47:55 +0100 Subject: [PATCH] Breaking change: disable micrometer bridge by default (#10038) --- .../micrometer/micrometer-1.5/javaagent/build.gradle.kts | 4 ++++ .../micrometer/v1_5/MicrometerInstrumentationModule.java | 7 +++++++ .../micrometer/MicrometerBridgeAutoConfiguration.java | 2 +- .../micrometer/MicrometerBridgeAutoConfigurationTest.java | 8 ++------ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/instrumentation/micrometer/micrometer-1.5/javaagent/build.gradle.kts b/instrumentation/micrometer/micrometer-1.5/javaagent/build.gradle.kts index 4711af48ed..66ab5db32f 100644 --- a/instrumentation/micrometer/micrometer-1.5/javaagent/build.gradle.kts +++ b/instrumentation/micrometer/micrometer-1.5/javaagent/build.gradle.kts @@ -57,4 +57,8 @@ tasks { dependsOn(testPrometheusMode) dependsOn(testHistogramGauges) } + + withType().configureEach { + jvmArgs("-Dotel.instrumentation.micrometer.enabled=true") + } } diff --git a/instrumentation/micrometer/micrometer-1.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/MicrometerInstrumentationModule.java b/instrumentation/micrometer/micrometer-1.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/MicrometerInstrumentationModule.java index 22e6e00967..ec72937bc8 100644 --- a/instrumentation/micrometer/micrometer-1.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/MicrometerInstrumentationModule.java +++ b/instrumentation/micrometer/micrometer-1.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/MicrometerInstrumentationModule.java @@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers. import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import java.util.Collections; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @@ -21,6 +22,12 @@ public class MicrometerInstrumentationModule extends InstrumentationModule { 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 public ElementMatcher.Junction classLoaderMatcher() { // added in 1.5 diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfiguration.java index ed9e9beb84..1a1f628d16 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfiguration.java @@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration; @AutoConfigureBefore(CompositeMeterRegistryAutoConfiguration.class) @ConditionalOnBean({Clock.class, OpenTelemetry.class}) @ConditionalOnClass(MeterRegistry.class) -@ConditionalOnProperty(name = "otel.instrumentation.micrometer.enabled", matchIfMissing = true) +@ConditionalOnProperty(name = "otel.instrumentation.micrometer.enabled") @Configuration public class MicrometerBridgeAutoConfiguration { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfigurationTest.java index c6ece5ce32..753e660bf7 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/instrumentation/micrometer/MicrometerBridgeAutoConfigurationTest.java @@ -35,14 +35,10 @@ class MicrometerBridgeAutoConfigurationTest { } @Test - void metricsEnabledByDefault() { + void metricsDisabledByDefault() { runner .withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class)) - .run( - context -> - assertThat(context.getBean("otelMeterRegistry", MeterRegistry.class)) - .isNotNull() - .isInstanceOf(OpenTelemetryMeterRegistry.class)); + .run(context -> assertThat(context.containsBean("otelMeterRegistry")).isFalse()); } @Test