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.memory.used
jvm.heap_memory_committedThe total Java heap memory committed to be used.process.runtime.jvm.memory.committed
jvm.memory.committed
jvm.heap_memory_initThe initial Java heap memory allocated.process.runtime.jvm.memory.init
jvm.memory.init
jvm.heap_memory_maxThe maximum Java heap memory available.process.runtime.jvm.memory.limit
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.memory.used
jvm.non_heap_memory_committedThe total Java non-heap memory committed to be used.process.runtime.jvm.memory.committed
jvm.memory.committed
jvm.non_heap_memory_initThe initial Java non-heap memory allocated.process.runtime.jvm.memory.init
jvm.memory.init
jvm.non_heap_memory_maxThe maximum Java non-heap memory available.process.runtime.jvm.memory.limit
jvm.memory.limit
jvm.gc.old_gen_sizeThe current Java heap memory usage of the Old Generation memory pool.process.runtime.jvm.memory.usage
jvm.memory.used
jvm.gc.eden_sizeThe current Java heap memory usage of the Eden memory pool.process.runtime.jvm.memory.usage
jvm.memory.used
jvm.gc.survivor_sizeThe current Java heap memory usage of the Survivor memory pool.process.runtime.jvm.memory.usage
jvm.memory.used
jvm.gc.metaspace_sizeThe current Java non-heap memory usage of the Metaspace memory pool.process.runtime.jvm.memory.usage
jvm.memory.used
jvm.thread_countThe number of live threads.process.runtime.jvm.threads.count
jvm.thread.count
jvm.loaded_classesNumber of classes currently loaded.process.runtime.jvm.classes.current_loaded
jvm.class.count
jvm.cpu_load.systemRecent CPU utilization for the whole system.process.runtime.jvm.system.cpu.utilization
jvm.system.cpu.utilization
jvm.cpu_load.processRecent CPU utilization for the process.process.runtime.jvm.cpu.utilization
jvm.cpu.recent_utilization
jvm.buffer_pool.direct.usedMeasure of memory used by direct buffers.process.runtime.jvm.buffer.usage
jvm.buffer.memory.usage
jvm.buffer_pool.direct.countNumber of direct buffers in the pool.process.runtime.jvm.buffer.count
jvm.buffer.count
jvm.buffer_pool.direct.limitMeasure of total memory capacity of direct buffers.process.runtime.jvm.buffer.limit
jvm.buffer.memory.limit
jvm.buffer_pool.mapped.usedMeasure of memory used by mapped buffers.process.runtime.jvm.buffer.usage
jvm.buffer.memory.usage
jvm.buffer_pool.mapped.countNumber of mapped buffers in the pool.process.runtime.jvm.buffer.count
jvm.buffer.count
jvm.buffer_pool.mapped.limitMeasure of total memory capacity of mapped buffers.process.runtime.jvm.buffer.limit
jvm.buffer.memory.limit
jvm.gc.parnew.timeThe approximate accumulated garbage collection time elapsed.N/A
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