Auto-configure JvmCompilationMetrics

See gh-31151
This commit is contained in:
izeye
2022-05-23 19:49:54 +09:00
committed by Andy Wilkinson
parent 37b677824a
commit f720b65dfc
2 changed files with 25 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmInfoMetrics;
@@ -79,4 +80,10 @@ public class JvmMetricsAutoConfiguration {
return new JvmInfoMetrics();
}
@Bean
@ConditionalOnMissingBean
public JvmCompilationMetrics jvmCompilationMetrics() {
return new JvmCompilationMetrics();
}
}

View File

@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics;
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmInfoMetrics;
@@ -87,11 +88,17 @@ class JvmMetricsAutoConfigurationTests {
.run(assertMetricsBeans().andThen((context) -> assertThat(context).hasBean("customJvmInfoMetrics")));
}
@Test
void allowsCustomJvmCompilationMetricsToBeUsed() {
this.contextRunner.withUserConfiguration(CustomJvmCompilationMetricsConfiguration.class).run(
assertMetricsBeans().andThen((context) -> assertThat(context).hasBean("customJvmCompilationMetrics")));
}
private ContextConsumer<AssertableApplicationContext> assertMetricsBeans() {
return (context) -> assertThat(context).hasSingleBean(JvmGcMetrics.class)
.hasSingleBean(JvmHeapPressureMetrics.class).hasSingleBean(JvmMemoryMetrics.class)
.hasSingleBean(JvmThreadMetrics.class).hasSingleBean(ClassLoaderMetrics.class)
.hasSingleBean(JvmInfoMetrics.class);
.hasSingleBean(JvmInfoMetrics.class).hasSingleBean(JvmCompilationMetrics.class);
}
@Configuration(proxyBeanMethods = false)
@@ -154,4 +161,14 @@ class JvmMetricsAutoConfigurationTests {
}
@Configuration(proxyBeanMethods = false)
static class CustomJvmCompilationMetricsConfiguration {
@Bean
JvmCompilationMetrics customJvmCompilationMetrics() {
return new JvmCompilationMetrics();
}
}
}