Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

JVM Runtime Metrics

Deprecated: This module is deprecated. Use opentelemetry-runtime-telemetry instead, which provides a unified API for all Java versions.

This module provides JVM runtime metrics as documented in the semantic conventions.

Quickstart

Add these dependencies to your project

Replace OPENTELEMETRY_VERSION with the latest release.

For Maven, add to your pom.xml dependencies:

<dependencies>
  <dependency>
    <groupId>io.opentelemetry.instrumentation</groupId>
    <artifactId>opentelemetry-runtime-telemetry-java8</artifactId>
    <version>OPENTELEMETRY_VERSION</version>
  </dependency>
</dependencies>

For Gradle, add to your dependencies:

runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:OPENTELEMETRY_VERSION")

Usage

Register JVM runtime metrics:

OpenTelemetry openTelemetry = // OpenTelemetry instance configured elsewhere

RuntimeMetrics runtimeMetrics = RuntimeMetrics.create(openTelemetry);

// When done, close to stop metric collection
runtimeMetrics.close();

To select specific metrics, configure metric views on the SDK to filter or customize which metrics are exported.

For example, using declarative configuration:

meter_provider:
  views:
    # Drop jvm.memory.committed metric
    - selector:
        instrument_name: jvm.memory.committed
      stream:
        aggregation:
          drop:
    # Only retain jvm.memory.type attribute on jvm.memory.used
    - selector:
        instrument_name: jvm.memory.used
      stream:
        attribute_keys:
          included:
            - jvm.memory.type

To retain only jvm.memory.used and drop all other JVM runtime metrics:

meter_provider:
  views:
    # Drop all metrics from this instrumentation scope
    - selector:
        meter_name: io.opentelemetry.runtime-telemetry-java8
      stream:
        aggregation:
          drop:
    # Keep jvm.memory.used (views are additive, this creates a second stream)
    - selector:
        meter_name: io.opentelemetry.runtime-telemetry-java8
        instrument_name: jvm.memory.used
      stream: {}

Garbage Collector Dependent Metrics

The attributes reported on memory metrics (jvm.memory.*) and GC metrics (jvm.gc.*) depend on the garbage collector used by the application. See the runtime-telemetry library README for details on attributes for various garbage collectors.