16
16
17
17
package org .springframework .boot .actuate .autoconfigure .metrics ;
18
18
19
+ import java .io .File ;
20
+
19
21
import io .micrometer .core .instrument .binder .jvm .ClassLoaderMetrics ;
22
+ import io .micrometer .core .instrument .binder .jvm .DiskSpaceMetrics ;
20
23
import io .micrometer .core .instrument .binder .jvm .JvmGcMetrics ;
21
24
import io .micrometer .core .instrument .binder .jvm .JvmMemoryMetrics ;
22
25
import io .micrometer .core .instrument .binder .jvm .JvmThreadMetrics ;
35
38
*
36
39
* @author Andy Wilkinson
37
40
* @author Stephane Nicoll
41
+ * @author Chris Bono
38
42
*/
39
43
class JvmMetricsAutoConfigurationTests {
40
44
@@ -43,41 +47,53 @@ class JvmMetricsAutoConfigurationTests {
43
47
44
48
@ Test
45
49
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 ));
49
53
}
50
54
51
55
@ Test
52
56
void allowsCustomJvmGcMetricsToBeUsed () {
53
57
this .contextRunner .withUserConfiguration (CustomJvmGcMetricsConfiguration .class )
54
58
.run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class ).hasBean ("customJvmGcMetrics" )
55
59
.hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
56
- .hasSingleBean (ClassLoaderMetrics .class ));
60
+ .hasSingleBean (ClassLoaderMetrics .class ). hasSingleBean ( DiskSpaceMetrics . class ) );
57
61
}
58
62
59
63
@ Test
60
64
void allowsCustomJvmMemoryMetricsToBeUsed () {
61
65
this .contextRunner .withUserConfiguration (CustomJvmMemoryMetricsConfiguration .class )
62
66
.run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
63
67
.hasSingleBean (JvmMemoryMetrics .class ).hasBean ("customJvmMemoryMetrics" )
64
- .hasSingleBean (JvmThreadMetrics .class ).hasSingleBean (ClassLoaderMetrics .class ));
68
+ .hasSingleBean (JvmThreadMetrics .class ).hasSingleBean (ClassLoaderMetrics .class )
69
+ .hasSingleBean (DiskSpaceMetrics .class ));
65
70
}
66
71
67
72
@ Test
68
73
void allowsCustomJvmThreadMetricsToBeUsed () {
69
74
this .contextRunner .withUserConfiguration (CustomJvmThreadMetricsConfiguration .class )
70
75
.run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
71
76
.hasSingleBean (JvmMemoryMetrics .class ).hasSingleBean (JvmThreadMetrics .class )
72
- .hasSingleBean (ClassLoaderMetrics .class ).hasBean ("customJvmThreadMetrics" ));
77
+ .hasBean ("customJvmThreadMetrics" ).hasSingleBean (ClassLoaderMetrics .class )
78
+ .hasSingleBean (DiskSpaceMetrics .class ));
73
79
}
74
80
75
81
@ Test
76
82
void allowsCustomClassLoaderMetricsToBeUsed () {
77
83
this .contextRunner .withUserConfiguration (CustomClassLoaderMetricsConfiguration .class )
78
84
.run ((context ) -> assertThat (context ).hasSingleBean (JvmGcMetrics .class )
79
85
.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" ));
81
97
}
82
98
83
99
@ Configuration (proxyBeanMethods = false )
@@ -120,4 +136,14 @@ ClassLoaderMetrics customClassLoaderMetrics() {
120
136
121
137
}
122
138
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
+
123
149
}
0 commit comments