1616
1717package org .springframework .boot .actuate .autoconfigure .metrics ;
1818
19+ import java .io .File ;
20+
1921import io .micrometer .core .instrument .binder .jvm .ClassLoaderMetrics ;
22+ import io .micrometer .core .instrument .binder .jvm .DiskSpaceMetrics ;
2023import io .micrometer .core .instrument .binder .jvm .JvmGcMetrics ;
2124import io .micrometer .core .instrument .binder .jvm .JvmMemoryMetrics ;
2225import io .micrometer .core .instrument .binder .jvm .JvmThreadMetrics ;
3538 *
3639 * @author Andy Wilkinson
3740 * @author Stephane Nicoll
41+ * @author Chris Bono
3842 */
3943class JvmMetricsAutoConfigurationTests {
4044
@@ -43,41 +47,53 @@ class JvmMetricsAutoConfigurationTests {
4347
4448 @ Test
4549 void autoConfiguresJvmMetrics () {
46- this .contextRunner .run (
47- ( context ) -> assertThat ( context ) .hasSingleBean (JvmGcMetrics .class ).hasSingleBean (JvmMemoryMetrics .class )
48- .hasSingleBean (JvmThreadMetrics .class ).hasSingleBean (ClassLoaderMetrics .class ));
50+ this .contextRunner .run (( context ) -> assertThat ( context ). hasSingleBean ( JvmGcMetrics . class )
51+ .hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
52+ .hasSingleBean (ClassLoaderMetrics .class ).hasSingleBean (DiskSpaceMetrics .class ));
4953 }
5054
5155 @ Test
5256 void allowsCustomJvmGcMetricsToBeUsed () {
5357 this .contextRunner .withUserConfiguration (CustomJvmGcMetricsConfiguration .class )
5458 .run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class ).hasBean ("customJvmGcMetrics" )
5559 .hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
56- .hasSingleBean (ClassLoaderMetrics .class ));
60+ .hasSingleBean (ClassLoaderMetrics .class ). hasSingleBean ( DiskSpaceMetrics . class ) );
5761 }
5862
5963 @ Test
6064 void allowsCustomJvmMemoryMetricsToBeUsed () {
6165 this .contextRunner .withUserConfiguration (CustomJvmMemoryMetricsConfiguration .class )
6266 .run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
6367 .hasSingleBean (JvmMemoryMetrics .class ).hasBean ("customJvmMemoryMetrics" )
64- .hasSingleBean (JvmThreadMetrics .class ).hasSingleBean (ClassLoaderMetrics .class ));
68+ .hasSingleBean (JvmThreadMetrics .class ).hasSingleBean (ClassLoaderMetrics .class )
69+ .hasSingleBean (DiskSpaceMetrics .class ));
6570 }
6671
6772 @ Test
6873 void allowsCustomJvmThreadMetricsToBeUsed () {
6974 this .contextRunner .withUserConfiguration (CustomJvmThreadMetricsConfiguration .class )
7075 .run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
7176 .hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
72- .hasSingleBean (ClassLoaderMetrics .class ).hasBean ("customJvmThreadMetrics" ));
77+ .hasBean ("customJvmThreadMetrics" ).hasSingleBean (ClassLoaderMetrics .class )
78+ .hasSingleBean (DiskSpaceMetrics .class ));
7379 }
7480
7581 @ Test
7682 void allowsCustomClassLoaderMetricsToBeUsed () {
7783 this .contextRunner .withUserConfiguration (CustomClassLoaderMetricsConfiguration .class )
7884 .run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
7985 .hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
80- .hasSingleBean (ClassLoaderMetrics .class ).hasBean ("customClassLoaderMetrics" ));
86+ .hasSingleBean (ClassLoaderMetrics .class ).hasBean ("customClassLoaderMetrics" )
87+ .hasSingleBean (DiskSpaceMetrics .class ));
88+ }
89+
90+ @ Test
91+ void allowsCustomDiskSpaceMetricsToBeUsed () {
92+ this .contextRunner .withUserConfiguration (CustomDiskSpaceMetricsConfiguration .class )
93+ .run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
94+ .hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
95+ .hasSingleBean (ClassLoaderMetrics .class ).hasSingleBean (DiskSpaceMetrics .class )
96+ .hasBean ("customDiskSpaceMetrics" ));
8197 }
8298
8399 @ Configuration (proxyBeanMethods = false )
@@ -120,4 +136,14 @@ ClassLoaderMetrics customClassLoaderMetrics() {
120136
121137 }
122138
139+ @ Configuration (proxyBeanMethods = false )
140+ static class CustomDiskSpaceMetricsConfiguration {
141+
142+ @ Bean
143+ DiskSpaceMetrics customDiskSpaceMetrics () {
144+ return new DiskSpaceMetrics (new File (System .getProperty ("user.dir" )));
145+ }
146+
147+ }
148+
123149}
0 commit comments