Auto-configure FileDescriptorMetrics

See gh-12022
This commit is contained in:
Tommy Ludwig
2018-02-13 18:34:50 +09:00
committed by Andy Wilkinson
parent 149963bc61
commit a51fcd071e
2 changed files with 41 additions and 0 deletions

View File

@@ -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();
}
}
}

View File

@@ -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();
}
}
}