Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add semantic conventions for jvm cpu metrics #2292

Merged
merged 18 commits into from
May 27, 2022
Merged
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ semantic conventions when instrumenting runtime environments.

<!-- toc -->

- [Metric Instruments](#metric-instruments)
- [Metric Instruments](#metric-instruments)
* [Runtime Environment Specific Metrics - `process.runtime.{environment}.`](#runtime-environment-specific-metrics---processruntimeenvironment)
- [Attributes](#attributes)
- [JVM Metrics](#jvm-metrics)
- [Attributes](#attributes)
- [JVM Metrics](#jvm-metrics)

<!-- tocstop -->

Expand Down Expand Up @@ -57,21 +57,23 @@ consider, for example pthreads vs green thread implementations.

All JVM metric attributes are required unless otherwise indicated.
bogdandrutu marked this conversation as resolved.
Show resolved Hide resolved

| Name | Description | Unit | Unit ([UCUM](README.md#instrument-units)) | Instrument Type ([*](README.md#instrument-types)) | Value Type | Attribute Key | Attribute Values |
|--------------------------------------|-------------------------------------|-------|-------------------------------------------|---------------------------------------------------|------------|---------------|-----------------------|
| process.runtime.jvm.memory.usage | Measure of memory used | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.init | Measure of initial memory requested | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.committed | Measure of memory committed | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.max | Measure of max obtainable memory | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.threads.count | Number of executing threads | threads | `{threads}` | UpDownCounter | Int64 | | |
| process.runtime.jvm.classes.loaded | Number of classes currently loaded | classes | `{classes}` | UpDownCounter | Int64 | | |
| process.runtime.jvm.classes.unloaded | Number of classes unloaded since JVM start | classes | `{classes}` | UpDownCounter | Int64 | | |

**[1]**: 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())
. Examples include `G1 Old Gen`, `G1 Eden space`, `G1 Survivor Space`
, `Metaspace`, etc.
| Name | Description | Unit | Unit ([UCUM](README.md#instrument-units)) | Instrument Type ([*](README.md#instrument-types)) | Value Type | Attribute Key | Attribute Values |
|------------------------------------------------|----------------------------------------------------------|---------|-------------------------------------------|---------------------------------------------------|------------|---------------|-----------------------|
| process.runtime.jvm.memory.usage | Measure of memory used | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.init | Measure of initial memory requested | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.committed | Measure of memory committed | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.memory.max | Measure of max obtainable memory | Bytes | `By` | UpDownCounter | Int64 | type | `"heap"`, `"nonheap"` |
| | | | | | | pool | Name of pool [1] |
| process.runtime.jvm.threads.count | Number of executing threads | threads | `{threads}` | UpDownCounter | Int64 | | |
| process.runtime.jvm.classes.loaded | Number of classes currently loaded | classes | `{classes}` | UpDownCounter | Int64 | | |
| process.runtime.jvm.classes.unloaded | Number of classes unloaded since JVM start | classes | `{classes}` | UpDownCounter | Int64 | | |
reyang marked this conversation as resolved.
Show resolved Hide resolved
| process.runtime.jvm.cpu.utilization | Recent cpu utilization for the process [2] | 1 | 1 | Asynchronous Gauge | Double | | |
| process.runtime.jvm.system.cpu.utilization | Recent cpu utilization for the whole system [2] | 1 | 1 | Asynchronous Gauge | Double | | |
| process.runtime.jvm.system.cpu.load_1m | Average CPU load of the whole system for the last minute | 1 | 1 | Asynchronous Gauge | Double | | |
reyang marked this conversation as resolved.
Show resolved Hide resolved

**[1]**: 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()).
Examples include `G1 Old Gen`, `G1 Eden space`, `G1 Survivor Space`, `Metaspace`, etc.
**[2]**: These utilizations are not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`).