Merge pull request #31151 from izeye
* gh-31151: Polish "Auto-configure JvmCompilationMetrics" Auto-configure JvmCompilationMetrics Closes gh-31151
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -676,6 +676,7 @@ The following JVM metrics are provided:
|
||||
* Thread utilization
|
||||
* The number of classes loaded and unloaded
|
||||
* JVM version information
|
||||
* JIT compilation time
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user