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/smaps.
All Meters are reporting in bytes.
Please note that
procfsis only available on Linux-based systems.
process.memory.vss: Virtual set size. The amount of virtual memory the process can access. Mostly useles, but included for completeness sake.process.memory.rss: Resident set size. The amount of process memory currently in RAM.process.memory.pss: Proportional set size. The amount of process memory currently in RAM, accounting for shared pages among processes. This metric is the most accurate in terms of "real" memory usage.process.memory.swap: The amount of process memory paged out to swap.process.memory.swappss: The amount of process memory paged out to swap accounting for shared memory among processes. Since Linux 4.3. Will return-1if your kernel is older. As withpss, the most accurate metric to watch.
ProcessThreadMetrics reads process-level thread information from /proc/self/status.
Please note that
procfsis only available on Linux-based systems.
process.threads: The number of process threads as seen by the operating system.
procfsdata is cached for1000msin order to relief the filesystem pressure whenMeters 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
masterbuilds.