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(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 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<ClassLoader> classLoaderMatcher() {
// added in 1.5

View File

@ -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 {

View File

@ -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