Auto-configure FileDescriptorMetrics
See gh-12022
This commit is contained in:
committed by
Andy Wilkinson
parent
149963bc61
commit
a51fcd071e
@@ -23,6 +23,7 @@ import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
|
||||
import io.micrometer.core.instrument.binder.logging.LogbackMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.UptimeMetrics;
|
||||
|
||||
@@ -126,6 +127,13 @@ public class MetricsAutoConfiguration {
|
||||
return new ProcessorMetrics();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(name = "management.metrics.binders.fds.enabled", matchIfMissing = true)
|
||||
@ConditionalOnMissingBean
|
||||
public FileDescriptorMetrics fileDescriptorMetrics() {
|
||||
return new FileDescriptorMetrics();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
|
||||
import io.micrometer.core.instrument.binder.logging.LogbackMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.UptimeMetrics;
|
||||
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
|
||||
@@ -210,6 +211,28 @@ public class MetricsAutoConfigurationTests {
|
||||
.hasBean("customProcessorMetrics"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoConfiguresFileDescriptorMetrics() {
|
||||
this.runner.run(
|
||||
(context) -> assertThat(context)
|
||||
.hasSingleBean(FileDescriptorMetrics.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allowsFileDescriptorMetricsToBeDisabled() {
|
||||
this.runner.withPropertyValues("management.metrics.binders.fds.enabled=false")
|
||||
.run((context) -> assertThat(context)
|
||||
.doesNotHaveBean(FileDescriptorMetrics.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allowsCustomFileDescriptorToBeUsed() {
|
||||
this.runner.withUserConfiguration(CustomFileDescriptorMetricsConfiguration.class)
|
||||
.run((context) -> assertThat(context)
|
||||
.hasSingleBean(FileDescriptorMetrics.class)
|
||||
.hasBean("customFileDescriptorMetrics"));
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class CustomClockConfiguration {
|
||||
|
||||
@@ -312,4 +335,14 @@ public class MetricsAutoConfigurationTests {
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class CustomFileDescriptorMetricsConfiguration {
|
||||
|
||||
@Bean
|
||||
FileDescriptorMetrics customFileDescriptorMetrics() {
|
||||
return new FileDescriptorMetrics();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user