Merge pull request #27868 from vladimirfx
* pr/27868: Polish "Auto-configure JVM heap pressure metrics" Auto-configure JVM heap pressure metrics Closes gh-27868
This commit is contained in:
@@ -19,6 +19,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.JvmGcMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
|
||||
|
||||
@@ -48,6 +49,12 @@ public class JvmMetricsAutoConfiguration {
|
||||
return new JvmGcMetrics();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public JvmHeapPressureMetrics jvmHeapPressureMetrics() {
|
||||
return new JvmHeapPressureMetrics();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public JvmMemoryMetrics jvmMemoryMetrics() {
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics;
|
||||
|
||||
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -54,6 +55,12 @@ class JvmMetricsAutoConfigurationTests {
|
||||
.run(assertMetricsBeans().andThen((context) -> assertThat(context).hasBean("customJvmGcMetrics")));
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowsCustomJvmHeapPressureMetricsToBeUsed() {
|
||||
this.contextRunner.withUserConfiguration(CustomJvmHeapPressureMetricsConfiguration.class).run(
|
||||
assertMetricsBeans().andThen((context) -> assertThat(context).hasBean("customJvmHeapPressureMetrics")));
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowsCustomJvmMemoryMetricsToBeUsed() {
|
||||
this.contextRunner.withUserConfiguration(CustomJvmMemoryMetricsConfiguration.class)
|
||||
@@ -73,7 +80,8 @@ class JvmMetricsAutoConfigurationTests {
|
||||
}
|
||||
|
||||
private ContextConsumer<AssertableApplicationContext> assertMetricsBeans() {
|
||||
return (context) -> assertThat(context).hasSingleBean(JvmGcMetrics.class).hasSingleBean(JvmMemoryMetrics.class)
|
||||
return (context) -> assertThat(context).hasSingleBean(JvmGcMetrics.class)
|
||||
.hasSingleBean(JvmHeapPressureMetrics.class).hasSingleBean(JvmMemoryMetrics.class)
|
||||
.hasSingleBean(JvmThreadMetrics.class).hasSingleBean(ClassLoaderMetrics.class);
|
||||
}
|
||||
|
||||
@@ -87,6 +95,16 @@ class JvmMetricsAutoConfigurationTests {
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class CustomJvmHeapPressureMetricsConfiguration {
|
||||
|
||||
@Bean
|
||||
JvmHeapPressureMetrics customJvmHeapPressureMetrics() {
|
||||
return new JvmHeapPressureMetrics();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class CustomJvmMemoryMetricsConfiguration {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user