micrometer-jvm-extras

A set of additional JVM process metrics for micrometer.io.

License

License

GroupId

GroupId

io.github.mweirauch
ArtifactId

ArtifactId

micrometer-jvm-extras
Last Version

Last Version

0.2.2
Release Date

Release Date

Type

Type

jar
Description

Description

micrometer-jvm-extras
A set of additional JVM process metrics for micrometer.io.
Project URL

Project URL

https://github.com/mweirauch/micrometer-jvm-extras
Source Code Management

Source Code Management

https://github.com/mweirauch/micrometer-jvm-extras

Download micrometer-jvm-extras

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.mweirauch/micrometer-jvm-extras/ -->
<dependency>
    <groupId>io.github.mweirauch</groupId>
    <artifactId>micrometer-jvm-extras</artifactId>
    <version>0.2.2</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.mweirauch/micrometer-jvm-extras/
implementation 'io.github.mweirauch:micrometer-jvm-extras:0.2.2'
// https://jarcasting.com/artifacts/io.github.mweirauch/micrometer-jvm-extras/
implementation ("io.github.mweirauch:micrometer-jvm-extras:0.2.2")
'io.github.mweirauch:micrometer-jvm-extras:jar:0.2.2'
<dependency org="io.github.mweirauch" name="micrometer-jvm-extras" rev="0.2.2">
  <artifact name="micrometer-jvm-extras" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.mweirauch', module='micrometer-jvm-extras', version='0.2.2')
)
libraryDependencies += "io.github.mweirauch" % "micrometer-jvm-extras" % "0.2.2"
[io.github.mweirauch/micrometer-jvm-extras "0.2.2"]

Dependencies

compile (2)

Group / Artifact Type Version
io.micrometer : micrometer-core jar 1.1.19
org.slf4j : slf4j-api jar 1.7.30

test (6)

Group / Artifact Type Version
junit : junit jar 4.13.2
org.mockito : mockito-core jar 3.6.28
com.google.guava : guava-testlib jar 30.1-jre
org.slf4j : slf4j-simple jar 1.7.30
org.openjdk.jmh : jmh-core jar 1.27
org.openjdk.jmh : jmh-generator-annprocess jar 1.27

Project Modules

There are no modules declared in this project.

micrometer-jvm-extras

A set of additional JVM process metrics for micrometer.io.

Apache License 2 Build status Quality Gate Status Coverage Maven Central

Motivation

  • 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)

Usage

<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();
    }

Available Metrics

ProcessMemoryMetrics

ProcessMemoryMetrics reads process-level memory information from /proc/self/status. All Meters 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

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.

Notes

  • procfs data is cached for 1000ms in order to relief the filesystem pressure when Meters 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.

Versions

Version
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0