この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/semconv/runtime/jvm-metrics/
翻訳元: open-telemetry/semantic-conventions v1.44.0(コミット e10a930)
JVMメトリクスに関するセマンティック規約
ステータス: Mixed
この文書では、OpenTelemetryにおけるJVMメトリクスに関するセマンティック規約を定義します。
JVMのメモリ
ステータス: Stable
Description: 名前空間jvm.memory.*の下で取得されるJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.memory.used
このメトリクスは推奨です。
このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.memory.used | UpDownCounter | By | 使用中のメモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.memory.pool.name | Recommended | string | メモリプールの名前。[1] | G1 Old Gen; G1 Eden space; G1 Survivor Space | |
jvm.memory.type | Recommended | string | メモリの種別。 | heap; non_heap |
[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。
jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
heap | ヒープメモリ。 | |
non_heap | 非ヒープメモリ |
メトリクス: jvm.memory.committed
このメトリクスは推奨です。
このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.memory.committed | UpDownCounter | By | コミット済みメモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.memory.pool.name | Recommended | string | メモリプールの名前。[1] | G1 Old Gen; G1 Eden space; G1 Survivor Space | |
jvm.memory.type | Recommended | string | メモリの種別。 | heap; non_heap |
[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。
jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
heap | ヒープメモリ。 | |
non_heap | 非ヒープメモリ |
メトリクス: jvm.memory.limit
このメトリクスは推奨です。
このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.memory.limit | UpDownCounter | By | 取得可能な最大メモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.memory.pool.name | Recommended | string | メモリプールの名前。[1] | G1 Old Gen; G1 Eden space; G1 Survivor Space | |
jvm.memory.type | Recommended | string | メモリの種別。 | heap; non_heap |
[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。
jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
heap | ヒープメモリ。 | |
non_heap | 非ヒープメモリ |
メトリクス: jvm.memory.used_after_last_gc
このメトリクスは推奨です。
このメトリクスはMemoryPoolMXBean#getCollectionUsage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.memory.used_after_last_gc | UpDownCounter | By | このプールにおける直近のガーベジコレクションイベントの後に測定された、使用中メモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.memory.pool.name | Recommended | string | メモリプールの名前。[1] | G1 Old Gen; G1 Eden space; G1 Survivor Space | |
jvm.memory.type | Recommended | string | メモリの種別。 | heap; non_heap |
[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。
jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
heap | ヒープメモリ。 | |
non_heap | 非ヒープメモリ |
JVMのガーベジコレクション
ステータス: Stable
Description: 名前空間jvm.gc.*の下で取得されるJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.gc.duration
このメトリクスは推奨です。
このメトリクスは、GarbageCollectorMXBeanが提供するGarbageCollectionNotificationInfoイベントをサブスクライブすることで取得されます。期間の値はGcInfoから取得されます。
このメトリクスは、ExplicitBucketBoundaries advisoryパラメータに[ 0.01, 0.1, 1, 10 ]を指定すべきです(SHOULD)。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.gc.duration | Histogram | s | JVMのガーベジコレクション処理の期間。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.gc.action | Recommended | string | ガーベジコレクターの処理の名前。[1] | end of minor GC; end of major GC | |
jvm.gc.name | Recommended | string | ガーベジコレクターの名前。[2] | G1 Young Generation; G1 Old Generation | |
jvm.gc.cause | Opt-In | string | ガーベジコレクターの契機の名前。[3] | System.gc(); Allocation Failure |
[1] jvm.gc.action: ガーベジコレクターの処理は、一般にGarbageCollectionNotificationInfo#getGcAction()から取得されます。
[2] jvm.gc.name: ガーベジコレクターの名前は、一般にGarbageCollectionNotificationInfo#getGcName()から取得されます。
[3] jvm.gc.cause: ガーベジコレクターの契機は、一般にGarbageCollectionNotificationInfo#getGcCause()から取得されます。
JVMのスレッド
ステータス: Stable
Description: 名前空間jvm.thread.*の下で取得されるJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.thread.count
このメトリクスは推奨です。 このメトリクスは、次の組み合わせから取得されます。
ThreadMXBean#getAllThreadIds()ThreadMXBean#getThreadInfo()ThreadInfo#getThreadState()ThreadInfo#isDaemon()(Java 9以降が必要)
これは(仮想スレッドではなく)プラットフォームスレッドの数であることに注意してください。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.thread.count | UpDownCounter | {thread} | 実行中のプラットフォームスレッドの数。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.thread.daemon | Recommended | boolean | そのスレッドがデーモンかどうか。 | ||
jvm.thread.state | Recommended | string | スレッドの状態。 | runnable; blocked |
jvm.thread.stateには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
blocked | モニターロックの待機によってブロックされているスレッドは、この状態です。 | |
new | まだ開始されていないスレッドは、この状態です。 | |
runnable | Java仮想マシンで実行中のスレッドは、この状態です。 | |
terminated | 終了したスレッドは、この状態です。 | |
timed_waiting | 指定された待機時間まで他のスレッドが処理を行うのを待っているスレッドは、この状態です。 | |
waiting | 他のスレッドが特定の処理を行うのを無期限に待っているスレッドは、この状態です。 |
JVMのクラス
ステータス: Stable
Description: 名前空間jvm.class.*の下で取得されるJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.class.loaded
このメトリクスは推奨です。
このメトリクスはClassLoadingMXBean#getTotalLoadedClassCount()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.class.loaded | Counter | {class} | JVM起動以降にロードされたクラスの数。 |
メトリクス: jvm.class.unloaded
このメトリクスは推奨です。
このメトリクスはClassLoadingMXBean#getUnloadedClassCount()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.class.unloaded | Counter | {class} | JVM起動以降にアンロードされたクラスの数。 |
メトリクス: jvm.class.count
このメトリクスは推奨です。
このメトリクスはClassLoadingMXBean#getLoadedClassCount()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.class.count | UpDownCounter | {class} | 現在ロードされているクラスの数。 |
JVMのCPU
ステータス: Stable
Description: 名前空間jvm.cpu.*の下で取得されるJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.cpu.time
このメトリクスは推奨です。
このメトリクスは、HotSpotではcom.sun.management.OperatingSystemMXBean#getProcessCpuTime()、OpenJ9ではcom.ibm.lang.management.OperatingSystemMXBean#getProcessCpuTime()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.cpu.time | Counter | s | JVMが報告する、そのプロセスによって使用されたCPU時間。 |
メトリクス: jvm.cpu.count
このメトリクスは推奨です。
このメトリクスはRuntime#availableProcessors()から取得されます。
これは常に整数値であることに注意してください(分数やミリコアは表現されません)。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.cpu.count | UpDownCounter | {cpu} | Java仮想マシンが利用できるプロセッサーの数。 |
メトリクス: jvm.cpu.recent_utilization
このメトリクスは推奨です。
このメトリクスは、HotSpotではcom.sun.management.OperatingSystemMXBean#getProcessCpuLoad()、OpenJ9ではcom.ibm.lang.management.OperatingSystemMXBean#getProcessCpuLoad()から取得されます。
JVMは「recent(直近)」の意味を定義していないことに注意してください。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.cpu.recent_utilization | Gauge | 1 | JVMが報告する、そのプロセスの直近のCPU使用率。[1] |
[1]: 値の範囲は[0.0,1.0]です。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献。
開発中のメトリクス
ステータス: Development
Description: jvm.の下で取得される、開発中のJava Virtual Machine(JVM)メトリクス。
メトリクス: jvm.memory.init
このメトリクスは推奨です。
このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.memory.init | UpDownCounter | By | 要求された初期メモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.memory.pool.name | Recommended | string | メモリプールの名前。[1] | G1 Old Gen; G1 Eden space; G1 Survivor Space | |
jvm.memory.type | Recommended | string | メモリの種別。 | heap; non_heap |
[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。
jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
heap | ヒープメモリ。 | |
non_heap | 非ヒープメモリ |
メトリクス: jvm.system.cpu.utilization
このメトリクスはOpt-Inです。
このメトリクスは、Java 8から13ではcom.sun.management.OperatingSystemMXBean#getSystemCpuLoad()、Java 14以降ではcom.sun.management.OperatingSystemMXBean#getCpuLoad()、OpenJ9ではcom.ibm.lang.management.OperatingSystemMXBean#getSystemCpuLoad()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.system.cpu.utilization | Gauge | 1 | JVMが報告する、システム全体の直近のCPU使用率。[1] |
[1]: 値の範囲は[0.0,1.0]です。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献。
メトリクス: jvm.system.cpu.load_1m
このメトリクスはOpt-Inです。
このメトリクスはOperatingSystemMXBean#getSystemLoadAverage()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.system.cpu.load_1m | Gauge | {run_queue_item} | JVMが報告する、直近1分間のシステム全体の平均CPU負荷。[1] |
[1]: 値の範囲は[0,n]です(nはCPUコアの数、値が取得できない場合は負の数)。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献。
メトリクス: jvm.buffer.memory.used
このメトリクスは推奨です。
このメトリクスはBufferPoolMXBean#getMemoryUsed()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.buffer.memory.used | UpDownCounter | By | バッファーが使用しているメモリの測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.buffer.pool.name | Recommended | string | バッファープールの名前。[1] | mapped; direct |
[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。
メトリクス: jvm.buffer.memory.limit
このメトリクスは推奨です。
このメトリクスはBufferPoolMXBean#getTotalCapacity()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.buffer.memory.limit | UpDownCounter | By | バッファーの総容量の測定値。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.buffer.pool.name | Recommended | string | バッファープールの名前。[1] | mapped; direct |
[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。
メトリクス: jvm.buffer.count
このメトリクスは推奨です。
このメトリクスはBufferPoolMXBean#getCount()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.buffer.count | UpDownCounter | {buffer} | プール内のバッファーの数。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
jvm.buffer.pool.name | Recommended | string | バッファープールの名前。[1] | mapped; direct |
[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。
メトリクス: jvm.file_descriptor.count
このメトリクスはOpt-Inです。
このメトリクスはUnixOperatingSystemMXBean#getOpenFileDescriptorCount()から取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.file_descriptor.count | UpDownCounter | {file_descriptor} | JVMが報告する、開いているファイルディスクリプターの数。 |
メトリクス: jvm.file_descriptor.limit
このメトリクスはOpt-Inです。
このメトリクスはUnixOperatingSystemMXBean#getMaxFileDescriptorCountから取得されます。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
jvm.file_descriptor.limit | UpDownCounter | {file_descriptor} | JVMが報告する、開いているファイルディスクリプターの最大数の測定値。 |