Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
e3f03dd5
Commit
e3f03dd5
authored
Apr 11, 2021
by
bono007
Committed by
Stephane Nicoll
Jun 11, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add auto-configuration for DiskSpaceMetrics
See gh-26001
parent
151e0eb2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
8 deletions
+44
-8
JvmMetricsAutoConfiguration.java
...te/autoconfigure/metrics/JvmMetricsAutoConfiguration.java
+9
-0
JvmMetricsAutoConfigurationTests.java
...toconfigure/metrics/JvmMetricsAutoConfigurationTests.java
+33
-7
metrics.adoc
.../spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc
+2
-1
No files found.
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.java
View file @
e3f03dd5
...
@@ -16,8 +16,11 @@
...
@@ -16,8 +16,11 @@
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
metrics
;
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
metrics
;
import
java.io.File
;
import
io.micrometer.core.instrument.MeterRegistry
;
import
io.micrometer.core.instrument.MeterRegistry
;
import
io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
;
import
io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
;
import
io.micrometer.core.instrument.binder.jvm.DiskSpaceMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
;
...
@@ -66,4 +69,10 @@ public class JvmMetricsAutoConfiguration {
...
@@ -66,4 +69,10 @@ public class JvmMetricsAutoConfiguration {
return
new
ClassLoaderMetrics
();
return
new
ClassLoaderMetrics
();
}
}
@Bean
@ConditionalOnMissingBean
public
DiskSpaceMetrics
diskSpaceMetrics
()
{
return
new
DiskSpaceMetrics
(
new
File
(
"."
));
}
}
}
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfigurationTests.java
View file @
e3f03dd5
...
@@ -16,7 +16,10 @@
...
@@ -16,7 +16,10 @@
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
metrics
;
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
metrics
;
import
java.io.File
;
import
io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
;
import
io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
;
import
io.micrometer.core.instrument.binder.jvm.DiskSpaceMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
;
import
io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
;
...
@@ -35,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
...
@@ -35,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
*
* @author Andy Wilkinson
* @author Andy Wilkinson
* @author Stephane Nicoll
* @author Stephane Nicoll
* @author Chris Bono
*/
*/
class
JvmMetricsAutoConfigurationTests
{
class
JvmMetricsAutoConfigurationTests
{
...
@@ -43,9 +47,9 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -43,9 +47,9 @@ class JvmMetricsAutoConfigurationTests {
@Test
@Test
void
autoConfiguresJvmMetrics
()
{
void
autoConfiguresJvmMetrics
()
{
this
.
contextRunner
.
run
(
this
.
contextRunner
.
run
(
(
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
(
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
).
hasSingleBean
(
JvmMemory
Metrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThread
Metrics
.
class
)
.
hasSingleBean
(
JvmThreadMetrics
.
class
).
hasSingleBean
(
ClassLoader
Metrics
.
class
));
.
hasSingleBean
(
ClassLoaderMetrics
.
class
).
hasSingleBean
(
DiskSpace
Metrics
.
class
));
}
}
@Test
@Test
...
@@ -53,7 +57,7 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -53,7 +57,7 @@ class JvmMetricsAutoConfigurationTests {
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmGcMetricsConfiguration
.
class
)
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmGcMetricsConfiguration
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
).
hasBean
(
"customJvmGcMetrics"
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
).
hasBean
(
"customJvmGcMetrics"
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
ClassLoaderMetrics
.
class
));
.
hasSingleBean
(
ClassLoaderMetrics
.
class
)
.
hasSingleBean
(
DiskSpaceMetrics
.
class
)
);
}
}
@Test
@Test
...
@@ -61,7 +65,8 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -61,7 +65,8 @@ class JvmMetricsAutoConfigurationTests {
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmMemoryMetricsConfiguration
.
class
)
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmMemoryMetricsConfiguration
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasBean
(
"customJvmMemoryMetrics"
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasBean
(
"customJvmMemoryMetrics"
)
.
hasSingleBean
(
JvmThreadMetrics
.
class
).
hasSingleBean
(
ClassLoaderMetrics
.
class
));
.
hasSingleBean
(
JvmThreadMetrics
.
class
).
hasSingleBean
(
ClassLoaderMetrics
.
class
)
.
hasSingleBean
(
DiskSpaceMetrics
.
class
));
}
}
@Test
@Test
...
@@ -69,7 +74,8 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -69,7 +74,8 @@ class JvmMetricsAutoConfigurationTests {
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmThreadMetricsConfiguration
.
class
)
this
.
contextRunner
.
withUserConfiguration
(
CustomJvmThreadMetricsConfiguration
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
ClassLoaderMetrics
.
class
).
hasBean
(
"customJvmThreadMetrics"
));
.
hasBean
(
"customJvmThreadMetrics"
).
hasSingleBean
(
ClassLoaderMetrics
.
class
)
.
hasSingleBean
(
DiskSpaceMetrics
.
class
));
}
}
@Test
@Test
...
@@ -77,7 +83,17 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -77,7 +83,17 @@ class JvmMetricsAutoConfigurationTests {
this
.
contextRunner
.
withUserConfiguration
(
CustomClassLoaderMetricsConfiguration
.
class
)
this
.
contextRunner
.
withUserConfiguration
(
CustomClassLoaderMetricsConfiguration
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
ClassLoaderMetrics
.
class
).
hasBean
(
"customClassLoaderMetrics"
));
.
hasSingleBean
(
ClassLoaderMetrics
.
class
).
hasBean
(
"customClassLoaderMetrics"
)
.
hasSingleBean
(
DiskSpaceMetrics
.
class
));
}
@Test
void
allowsCustomDiskSpaceMetricsToBeUsed
()
{
this
.
contextRunner
.
withUserConfiguration
(
CustomDiskSpaceMetricsConfiguration
.
class
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
JvmGcMetrics
.
class
)
.
hasSingleBean
(
JvmMemoryMetrics
.
class
).
hasSingleBean
(
JvmThreadMetrics
.
class
)
.
hasSingleBean
(
ClassLoaderMetrics
.
class
).
hasSingleBean
(
DiskSpaceMetrics
.
class
)
.
hasBean
(
"customDiskSpaceMetrics"
));
}
}
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
...
@@ -120,4 +136,14 @@ class JvmMetricsAutoConfigurationTests {
...
@@ -120,4 +136,14 @@ class JvmMetricsAutoConfigurationTests {
}
}
@Configuration
(
proxyBeanMethods
=
false
)
static
class
CustomDiskSpaceMetricsConfiguration
{
@Bean
DiskSpaceMetrics
customDiskSpaceMetrics
()
{
return
new
DiskSpaceMetrics
(
new
File
(
System
.
getProperty
(
"user.dir"
)));
}
}
}
}
spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc
View file @
e3f03dd5
...
@@ -554,7 +554,7 @@ In most situations, the out-of-the-box defaults will provide sensible metrics th
...
@@ -554,7 +554,7 @@ In most situations, the out-of-the-box defaults will provide sensible metrics th
[[actuator.metrics.supported.jvm]]
[[actuator.metrics.supported.jvm]]
==== JVM Metrics
==== JVM Metrics
Auto-configuration will enable JVM Metrics using core Micrometer classes.
Auto-configuration will enable JVM Metrics using core Micrometer classes.
JVM metrics are published under the `jvm.`
meter name
.
JVM metrics are published under the `jvm.`
and `disk.` meter names
.
The following JVM metrics are provided:
The following JVM metrics are provided:
...
@@ -562,6 +562,7 @@ The following JVM metrics are provided:
...
@@ -562,6 +562,7 @@ The following JVM metrics are provided:
* Statistics related to garbage collection
* Statistics related to garbage collection
* Threads utilization
* Threads utilization
* The Number of classes loaded/unloaded
* The Number of classes loaded/unloaded
* Disk space available
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment