Skip to content

Commit 97940e7

Browse files
roberttoyonagaMateusz Rzeszutektraskjack-berg
authored
Add JVM runtime metric source API notes (#3463)
Fixes #3418 ## Changes Add notes on where the JVM runtime metrics come from. --------- Co-authored-by: Mateusz Rzeszutek <[email protected]> Co-authored-by: Trask Stalnaker <[email protected]> Co-authored-by: jack-berg <[email protected]>
1 parent ffeec00 commit 97940e7

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ release.
2121
- Specify second unit (`s`) and advice bucket boundaries of `[]`
2222
for `process.runtime.jvm.gc.duration`.
2323
([#3458](https://github.com/open-telemetry/opentelemetry-specification/pull/3458))
24+
- Add links to the JMX APIs that are the JVM runtime metric sources.
25+
([#3463](https://github.com/open-telemetry/opentelemetry-specification/pull/3463))
2426

2527
### Logs
2628

specification/metrics/semantic_conventions/runtime-environment-metrics.md

+20
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ consider, for example pthreads vs green thread implementations.
7878
### Metric: `process.runtime.jvm.memory.usage`
7979

8080
This metric is [recommended](../metric-requirement-level.md#recommended).
81+
This metric is obtained from [`MemoryPoolMXBean#getUsage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryPoolMXBean.html#getUsage--).
8182

8283
<!-- semconv metric.process.runtime.jvm.memory.usage(metric_table) -->
8384
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -104,6 +105,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
104105
### Metric: `process.runtime.jvm.memory.init`
105106

106107
This metric is [recommended](../metric-requirement-level.md#recommended).
108+
This metric is obtained from [`MemoryPoolMXBean#getUsage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryPoolMXBean.html#getUsage--).
107109

108110
<!-- semconv metric.process.runtime.jvm.memory.init(metric_table) -->
109111
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -130,6 +132,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
130132
### Metric: `process.runtime.jvm.memory.committed`
131133

132134
This metric is [recommended](../metric-requirement-level.md#recommended).
135+
This metric is obtained from [`MemoryPoolMXBean#getUsage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryPoolMXBean.html#getUsage--).
133136

134137
<!-- semconv metric.process.runtime.jvm.memory.committed(metric_table) -->
135138
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -156,6 +159,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
156159
### Metric: `process.runtime.jvm.memory.limit`
157160

158161
This metric is [recommended](../metric-requirement-level.md#recommended).
162+
This metric is obtained from [`MemoryPoolMXBean#getUsage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryPoolMXBean.html#getUsage--).
159163

160164
<!-- semconv metric.process.runtime.jvm.memory.limit(metric_table) -->
161165
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -182,6 +186,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
182186
### Metric: `process.runtime.jvm.memory.usage_after_last_gc`
183187

184188
This metric is [recommended](../metric-requirement-level.md#recommended).
189+
This metric is obtained from [`MemoryPoolMXBean#getCollectionUsage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryPoolMXBean.html#getCollectionUsage--).
185190

186191
<!-- semconv metric.process.runtime.jvm.memory.usage_after_last_gc(metric_table) -->
187192
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -208,6 +213,8 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
208213
### Metric: `process.runtime.jvm.gc.duration`
209214

210215
This metric is [recommended](../metric-requirement-level.md#recommended).
216+
This metric is obtained by subscribing to
217+
[`GarbageCollectionNotificationInfo`](https://docs.oracle.com/javase/8/docs/jre/api/management/extension/com/sun/management/GarbageCollectionNotificationInfo.html) events provided by [`GarbageCollectorMXBean`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/GarbageCollectorMXBean.html). The duration value is obtained from [`GcInfo`](https://docs.oracle.com/javase/8/docs/jre/api/management/extension/com/sun/management/GcInfo.html#getDuration--)
211218

212219
This metric SHOULD be specified with
213220
[`ExplicitBucketBoundaries`](../../metrics/api.md#instrument-advice)
@@ -233,6 +240,8 @@ of `[]` (single bucket histogram capturing count, sum, min, max).
233240
### Metric: `process.runtime.jvm.threads.count`
234241

235242
This metric is [recommended](../metric-requirement-level.md#recommended).
243+
This metric is obtained from [`ThreadMXBean#getDaemonThreadCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadMXBean.html#getDaemonThreadCount--) and
244+
[`ThreadMXBean#getThreadCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadMXBean.html#getThreadCount--).
236245

237246
<!-- semconv metric.process.runtime.jvm.threads.count(metric_table) -->
238247
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -249,6 +258,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
249258
### Metric: `process.runtime.jvm.classes.loaded`
250259

251260
This metric is [recommended](../metric-requirement-level.md#recommended).
261+
This metric is obtained from [`ClassLoadingMXBean#getTotalLoadedClassCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/ClassLoadingMXBean.html#getTotalLoadedClassCount--).
252262

253263
<!-- semconv metric.process.runtime.jvm.classes.loaded(metric_table) -->
254264
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -262,6 +272,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
262272
### Metric: `process.runtime.jvm.classes.unloaded`
263273

264274
This metric is [recommended](../metric-requirement-level.md#recommended).
275+
This metric is obtained from [`ClassLoadingMXBean#getUnloadedClassCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/ClassLoadingMXBean.html#getUnloadedClassCount--).
265276

266277
<!-- semconv metric.process.runtime.jvm.classes.unloaded(metric_table) -->
267278
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -275,6 +286,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
275286
### Metric: `process.runtime.jvm.classes.current_loaded`
276287

277288
This metric is [recommended](../metric-requirement-level.md#recommended).
289+
This metric is obtained from [`ClassLoadingMXBean#getLoadedClassCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/ClassLoadingMXBean.html#getLoadedClassCount--).
278290

279291
<!-- semconv metric.process.runtime.jvm.classes.current_loaded(metric_table) -->
280292
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -288,6 +300,8 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
288300
### Metric: `process.runtime.jvm.cpu.utilization`
289301

290302
This metric is [recommended](../metric-requirement-level.md#recommended).
303+
This metric is obtained from [`com.sun.management.OperatingSystemMXBean#getProcessCpuLoad()`](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()) on HotSpot
304+
and [`com.ibm.lang.management.OperatingSystemMXBean#getProcessCpuLoad()`](https://www.ibm.com/docs/api/v1/content/SSYKE2_8.0.0/com.ibm.java.api.80.doc/com.ibm.lang.management/com/ibm/lang/management/OperatingSystemMXBean.html#getProcessCpuLoad--) on J9.
291305

292306
<!-- semconv metric.process.runtime.jvm.cpu.utilization(metric_table) -->
293307
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -301,6 +315,8 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
301315
### Metric: `process.runtime.jvm.system.cpu.utilization`
302316

303317
This metric is [recommended](../metric-requirement-level.md#recommended).
318+
This metric is obtained from [`com.sun.management.OperatingSystemMXBean#getSystemCpuLoad()`](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getSystemCpuLoad()) on Java version 8..13, [`com.sun.management.OperatingSystemMXBean#getCpuLoad()`](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getCpuLoad()) on Java version 14+,
319+
and [`com.ibm.lang.management.OperatingSystemMXBean#getSystemCpuLoad()`](https://www.ibm.com/docs/api/v1/content/SSYKE2_8.0.0/com.ibm.java.api.80.doc/com.ibm.lang.management/com/ibm/lang/management/OperatingSystemMXBean.html#getSystemCpuLoad--) on J9.
304320

305321
<!-- semconv metric.process.runtime.jvm.system.cpu.utilization(metric_table) -->
306322
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -314,6 +330,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
314330
### Metric: `process.runtime.jvm.system.cpu.load_1m`
315331

316332
This metric is [recommended](../metric-requirement-level.md#recommended).
333+
This metric is obtained from [`OperatingSystemMXBean#getSystemLoadAverage()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage--).
317334

318335
<!-- semconv metric.process.runtime.jvm.system.cpu.load_1m(metric_table) -->
319336
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -327,6 +344,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
327344
### Metric: `process.runtime.jvm.buffer.usage`
328345

329346
This metric is [recommended](../metric-requirement-level.md#recommended).
347+
This metric is obtained from [`BufferPoolMXBean#getMemoryUsed()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/BufferPoolMXBean.html#getMemoryUsed--).
330348

331349
<!-- semconv metric.process.runtime.jvm.buffer.usage(metric_table) -->
332350
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -345,6 +363,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
345363
### Metric: `process.runtime.jvm.buffer.limit`
346364

347365
This metric is [recommended](../metric-requirement-level.md#recommended).
366+
This metric is obtained from [`BufferPoolMXBean#getTotalCapacity()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/BufferPoolMXBean.html#getTotalCapacity--).
348367

349368
<!-- semconv metric.process.runtime.jvm.buffer.limit(metric_table) -->
350369
| Name | Instrument Type | Unit (UCUM) | Description |
@@ -363,6 +382,7 @@ This metric is [recommended](../metric-requirement-level.md#recommended).
363382
### Metric: `process.runtime.jvm.buffer.count`
364383

365384
This metric is [recommended](../metric-requirement-level.md#recommended).
385+
This metric is obtained from [`BufferPoolMXBean#getCount()`](https://docs.oracle.com/javase/8/docs/api/java/lang/management/BufferPoolMXBean.html#getCount--).
366386

367387
<!-- semconv metric.process.runtime.jvm.buffer.count(metric_table) -->
368388
| Name | Instrument Type | Unit (UCUM) | Description |

0 commit comments

Comments
 (0)