semantic-conventions/model/metrics/jvm-metrics.yaml

175 lines
6.0 KiB
YAML

groups:
- id: attributes.jvm.memory
type: attribute_group
brief: "Describes JVM memory metric attributes."
prefix: jvm.memory
attributes:
- id: type
stability: stable
type:
allow_custom_values: false
members:
- id: heap
value: 'heap'
brief: 'Heap memory.'
- id: non_heap
value: 'non_heap'
brief: 'Non-heap memory'
requirement_level: recommended
brief: The type of memory.
examples: ["heap", "non_heap"]
- id: pool.name
stability: stable
type: string
requirement_level: recommended
brief: Name of the memory pool.
examples: ["G1 Old Gen", "G1 Eden space", "G1 Survivor Space"]
note: >
Pool names are generally obtained via
[MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
- id: metric.jvm.memory.used
type: metric
metric_name: jvm.memory.used
extends: attributes.jvm.memory
brief: "Measure of memory used."
instrument: updowncounter
unit: "By"
- id: metric.jvm.memory.committed
type: metric
metric_name: jvm.memory.committed
extends: attributes.jvm.memory
brief: "Measure of memory committed."
instrument: updowncounter
unit: "By"
- id: metric.jvm.memory.limit
type: metric
metric_name: jvm.memory.limit
extends: attributes.jvm.memory
brief: "Measure of max obtainable memory."
instrument: updowncounter
unit: "By"
- id: metric.jvm.memory.used_after_last_gc
type: metric
metric_name: jvm.memory.used_after_last_gc
extends: attributes.jvm.memory
brief: "Measure of memory used, as measured after the most recent garbage collection event on this pool."
instrument: updowncounter
unit: "By"
- id: metric.jvm.gc.duration
type: metric
metric_name: jvm.gc.duration
brief: "Duration of JVM garbage collection actions."
instrument: histogram
unit: "s"
prefix: jvm.gc
attributes:
- id: name
stability: stable
type: string
requirement_level: recommended
brief: Name of the garbage collector.
examples: ["G1 Young Generation", "G1 Old Generation"]
note: >
Garbage collector name is generally obtained via
[GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).
- id: action
stability: stable
type: string
requirement_level: recommended
brief: Name of the garbage collector action.
examples: ["end of minor GC", "end of major GC"]
note: >
Garbage collector action is generally obtained via
[GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).
- id: metric.jvm.thread.count
type: metric
metric_name: jvm.thread.count
brief: "Number of executing platform threads."
instrument: updowncounter
unit: "{thread}"
attributes:
- id: jvm.thread.daemon
stability: stable
type: boolean
requirement_level: recommended
brief: "Whether the thread is daemon or not."
- id: jvm.thread.state
stability: stable
requirement_level: recommended
type:
allow_custom_values: false
members:
- id: new
value: 'new'
brief: 'A thread that has not yet started is in this state.'
- id: runnable
value: 'runnable'
brief: 'A thread executing in the Java virtual machine is in this state.'
- id: blocked
value: 'blocked'
brief: 'A thread that is blocked waiting for a monitor lock is in this state.'
- id: waiting
value: 'waiting'
brief: 'A thread that is waiting indefinitely for another thread to perform a particular action is in this state.'
- id: timed_waiting
value: 'timed_waiting'
brief: 'A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.'
- id: terminated
value: 'terminated'
brief: 'A thread that has exited is in this state.'
brief: "State of the thread."
examples: ["runnable", "blocked"]
- id: metric.jvm.class.loaded
type: metric
metric_name: jvm.class.loaded
brief: "Number of classes loaded since JVM start."
instrument: counter
unit: "{class}"
- id: metric.jvm.class.unloaded
type: metric
metric_name: jvm.class.unloaded
brief: "Number of classes unloaded since JVM start."
instrument: counter
unit: "{class}"
- id: metric.jvm.class.count
type: metric
metric_name: jvm.class.count
brief: "Number of classes currently loaded."
instrument: updowncounter
unit: "{class}"
- id: metric.jvm.cpu.count
type: metric
metric_name: jvm.cpu.count
brief: "Number of processors available to the Java virtual machine."
instrument: updowncounter
unit: "{cpu}"
- id: metric.jvm.cpu.time
type: metric
metric_name: jvm.cpu.time
brief: "CPU time used by the process as reported by the JVM."
instrument: counter
unit: "s"
- id: metric.jvm.cpu.recent_utilization
type: metric
metric_name: jvm.cpu.recent_utilization
brief: "Recent CPU utilization for the process as reported by the JVM."
note: >
The value range is [0.0,1.0].
This utilization is not defined as being for the specific interval since last measurement
(unlike `system.cpu.utilization`).
[Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()).
instrument: gauge
unit: "1"