java.lang.Object
io.opentelemetry.instrumentation.runtimemetrics.java8.MemoryPools

public final class MemoryPools extends Object
Registers measurements that generate metrics about JVM memory pools.

Example usage:


 MemoryPools.registerObservers(GlobalOpenTelemetry.get());
 

Example metrics being exported: Component

   process.runtime.jvm.memory.init{type="heap",pool="G1 Eden Space"} 1000000
   process.runtime.jvm.memory.usage{type="heap",pool="G1 Eden Space"} 2500000
   process.runtime.jvm.memory.committed{type="heap",pool="G1 Eden Space"} 3000000
   process.runtime.jvm.memory.limit{type="heap",pool="G1 Eden Space"} 4000000
   process.runtime.jvm.memory.usage_after_last_gc{type="heap",pool="G1 Eden Space"} 1500000
   process.runtime.jvm.memory.init{type="non_heap",pool="Metaspace"} 200
   process.runtime.jvm.memory.usage{type="non_heap",pool="Metaspace"} 400
   process.runtime.jvm.memory.committed{type="non_heap",pool="Metaspace"} 500
 

In case you enable the preview of stable JVM semantic conventions (e.g. by setting the otel.semconv-stability.opt-in system property to jvm), the metrics being exported will follow the most recent JVM semantic conventions. This is how the example above looks when stable JVM semconv is enabled:

   jvm.memory.used{type="heap",pool="G1 Eden Space"} 2500000
   jvm.memory.committed{type="heap",pool="G1 Eden Space"} 3000000
   jvm.memory.limit{type="heap",pool="G1 Eden Space"} 4000000
   jvm.memory.used_after_last_gc{type="heap",pool="G1 Eden Space"} 1500000
   jvm.memory.used{type="non_heap",pool="Metaspace"} 400
   jvm.memory.committed{type="non_heap",pool="Metaspace"} 500
 
  • Method Details

    • registerObservers

      public static List<AutoCloseable> registerObservers(io.opentelemetry.api.OpenTelemetry openTelemetry)
      Register observers for java runtime memory metrics.