A set of additional JVM process metrics for micrometer.io.
- get "real" memory usage of the JVM beyond its managed parts
- get ahold of that info from within the JVM in environments where you can't instrument from the outside (e.g. PaaS)
<dependency>
<groupId>io.github.mweirauch</groupId>
<artifactId>micrometer-jvm-extras</artifactId>
<version>x.y.z</version>
</dependency>
/* Plain Java */
final MeterRegistry registry = new SimpleMeterRegistry();
new ProcessMemoryMetrics().bindTo(registry);
new ProcessThreadMetrics().bindTo(registry);
/* With Spring */
@Bean
public MeterBinder processMemoryMetrics() {
return new ProcessMemoryMetrics();
}
@Bean
public MeterBinder processThreadMetrics() {
return new ProcessThreadMetrics();
}
ProcessMemoryMetrics
reads process-level memory information from /proc/self/status
.
All Meter
s are reporting in bytes
.
Please note that
procfs
is only available on Linux-based systems.
process.memory.vss
: Virtual set size. The amount of virtual memory the process can access. Mostly irrelevant, but included for completeness sake.process.memory.rss
: Resident set size. The amount of process memory currently in RAM.process.memory.swap
: The amount of process memory paged out to swap.
ProcessThreadMetrics
reads process-level thread information from /proc/self/status
.
Please note that
procfs
is only available on Linux-based systems.
process.threads
: The number of process threads as seen by the operating system.
procfs
data is cached for1000ms
in order to relief the filesystem pressure whenMeter
s based on this data are queried by the registry one after another on collection run.- Snapshot builds are pushed to Sonatype Nexus Snapshot Repository on successful
main
builds.