Prerequisites

OpenTelemetry SDK configuration

If you have instrumented your Java applications with OpenTelemetry automatic instrumentation, runtime metrics are automatically enabled.

If you have instrumented your Java application with OpenTelemetry manual instrumentation, see the following guides for your Java version:

Runtime metric mappings

The following table lists the Datadog runtime metrics that are supported by mapping OpenTelemetry runtime metrics, with “N/A” indicating that there is no OpenTelemetry counterpart.

Datadog metricDescriptionOpenTelemetry counterpart
jvm.heap_memoryThe total Java heap memory used.process.runtime.jvm.memory.usage
jvm.heap_memory_committedThe total Java heap memory committed to be used.process.runtime.jvm.memory.committed
jvm.heap_memory_initThe initial Java heap memory allocated.process.runtime.jvm.memory.init
jvm.heap_memory_maxThe maximum Java heap memory available.process.runtime.jvm.memory.limit
jvm.non_heap_memoryThe total Java non-heap memory used. Non-heap memory is: Metaspace + CompressedClassSpace + CodeCache.process.runtime.jvm.memory.usage
jvm.non_heap_memory_committedThe total Java non-heap memory committed to be used.process.runtime.jvm.memory.committed
jvm.non_heap_memory_initThe initial Java non-heap memory allocated.process.runtime.jvm.memory.init
jvm.non_heap_memory_maxThe maximum Java non-heap memory available.process.runtime.jvm.memory.limit
jvm.gc.old_gen_sizeprocess.runtime.jvm.memory.usage
jvm.gc.eden_sizeprocess.runtime.jvm.memory.usage
jvm.gc.survivor_sizeprocess.runtime.jvm.memory.usage
jvm.gc.metaspace_sizeprocess.runtime.jvm.memory.usage
jvm.thread_countThe number of live threads.process.runtime.jvm.threads.count
jvm.loaded_classesNumber of classes currently loaded.process.runtime.jvm.classes.loaded
jvm.cpu_load.systemRecent CPU utilization for the whole system.process.runtime.jvm.system.cpu.utilization
jvm.cpu_load.processRecent CPU utilization for the process.process.runtime.jvm.cpu.utilization
jvm.buffer_pool.direct.usedMeasure of memory used by direct buffers.process.runtime.jvm.buffer.usage
jvm.buffer_pool.direct.countNumber of direct buffers in the pool.process.runtime.jvm.buffer.count
jvm.buffer_pool.direct.capacityMeasure of total memory capacity of direct buffers.process.runtime.jvm.buffer.limit
jvm.buffer_pool.mapped.usedMeasure of memory used by mapped buffers.process.runtime.jvm.buffer.usage
jvm.buffer_pool.mapped.countNumber of mapped buffers in the pool.process.runtime.jvm.buffer.count
jvm.buffer_pool.mapped.capacityMeasure of total memory capacity of mapped buffers.process.runtime.jvm.buffer.limit
jvm.gc.parnew.timeThe approximate accumulated garbage collection time elapsed.process.runtime.jvm.gc.duration
jvm.gc.cms.countThe total number of garbage collections that have occurred.N/A
jvm.gc.major_collection_countThe rate of major garbage collections. Set new_gc_metrics: true to receive this metric.N/A
jvm.gc.minor_collection_countThe rate of minor garbage collections. Set new_gc_metrics: true to receive this metric.N/A
jvm.gc.major_collection_timeThe fraction of time spent in major garbage collection. Set new_gc_metrics: true to receive this metric.N/A
jvm.gc.minor_collection_timeThe fraction of time spent in minor garbage collection. Set new_gc_metrics: true to receive this metric.N/A
jvm.os.open_file_descriptorsN/A