この記事は英語の原文を日本語に翻訳したものです。原文: 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()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.memory.usedUpDownCounterBy使用中のメモリの測定値。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.memory.pool.nameStableRecommendedstringメモリプールの名前。[1]G1 Old Gen; G1 Eden space; G1 Survivor Space
jvm.memory.typeStableRecommendedstringメモリの種別。heap; non_heap

[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。


jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
heapヒープメモリ。Stable
non_heap非ヒープメモリStable

メトリクス: jvm.memory.committed

このメトリクスは推奨です。 このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.memory.committedUpDownCounterByコミット済みメモリの測定値。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.memory.pool.nameStableRecommendedstringメモリプールの名前。[1]G1 Old Gen; G1 Eden space; G1 Survivor Space
jvm.memory.typeStableRecommendedstringメモリの種別。heap; non_heap

[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。


jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
heapヒープメモリ。Stable
non_heap非ヒープメモリStable

メトリクス: jvm.memory.limit

このメトリクスは推奨です。 このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.memory.limitUpDownCounterBy取得可能な最大メモリの測定値。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.memory.pool.nameStableRecommendedstringメモリプールの名前。[1]G1 Old Gen; G1 Eden space; G1 Survivor Space
jvm.memory.typeStableRecommendedstringメモリの種別。heap; non_heap

[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。


jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
heapヒープメモリ。Stable
non_heap非ヒープメモリStable

メトリクス: jvm.memory.used_after_last_gc

このメトリクスは推奨です。 このメトリクスはMemoryPoolMXBean#getCollectionUsage()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.memory.used_after_last_gcUpDownCounterByこのプールにおける直近のガーベジコレクションイベントの後に測定された、使用中メモリの測定値。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.memory.pool.nameStableRecommendedstringメモリプールの名前。[1]G1 Old Gen; G1 Eden space; G1 Survivor Space
jvm.memory.typeStableRecommendedstringメモリの種別。heap; non_heap

[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。


jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
heapヒープメモリ。Stable
non_heap非ヒープメモリStable

JVMのガーベジコレクション

ステータス: Stable

Description: 名前空間jvm.gc.*の下で取得されるJava Virtual Machine(JVM)メトリクス。

メトリクス: jvm.gc.duration

このメトリクスは推奨です。 このメトリクスは、GarbageCollectorMXBeanが提供するGarbageCollectionNotificationInfoイベントをサブスクライブすることで取得されます。期間の値はGcInfoから取得されます。

このメトリクスは、ExplicitBucketBoundaries advisoryパラメータ[ 0.01, 0.1, 1, 10 ]を指定すべきです(SHOULD)。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.gc.durationHistogramsJVMのガーベジコレクション処理の期間。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.gc.actionStableRecommendedstringガーベジコレクターの処理の名前。[1]end of minor GC; end of major GC
jvm.gc.nameStableRecommendedstringガーベジコレクターの名前。[2]G1 Young Generation; G1 Old Generation
jvm.gc.causeDevelopmentOpt-Instringガーベジコレクターの契機の名前。[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

このメトリクスは推奨です。 このメトリクスは、次の組み合わせから取得されます。

これは(仮想スレッドではなく)プラットフォームスレッドの数であることに注意してください。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.thread.countUpDownCounter{thread}実行中のプラットフォームスレッドの数。Stable

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.thread.daemonStableRecommendedbooleanそのスレッドがデーモンかどうか。
jvm.thread.stateStableRecommendedstringスレッドの状態。runnable; blocked

jvm.thread.stateには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
blockedモニターロックの待機によってブロックされているスレッドは、この状態です。Stable
newまだ開始されていないスレッドは、この状態です。Stable
runnableJava仮想マシンで実行中のスレッドは、この状態です。Stable
terminated終了したスレッドは、この状態です。Stable
timed_waiting指定された待機時間まで他のスレッドが処理を行うのを待っているスレッドは、この状態です。Stable
waiting他のスレッドが特定の処理を行うのを無期限に待っているスレッドは、この状態です。Stable

JVMのクラス

ステータス: Stable

Description: 名前空間jvm.class.*の下で取得されるJava Virtual Machine(JVM)メトリクス。

メトリクス: jvm.class.loaded

このメトリクスは推奨です。 このメトリクスはClassLoadingMXBean#getTotalLoadedClassCount()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.class.loadedCounter{class}JVM起動以降にロードされたクラスの数。Stable

メトリクス: jvm.class.unloaded

このメトリクスは推奨です。 このメトリクスはClassLoadingMXBean#getUnloadedClassCount()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.class.unloadedCounter{class}JVM起動以降にアンロードされたクラスの数。Stable

メトリクス: jvm.class.count

このメトリクスは推奨です。 このメトリクスはClassLoadingMXBean#getLoadedClassCount()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.class.countUpDownCounter{class}現在ロードされているクラスの数。Stable

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()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.cpu.timeCountersJVMが報告する、そのプロセスによって使用されたCPU時間。Stable

メトリクス: jvm.cpu.count

このメトリクスは推奨です。 このメトリクスはRuntime#availableProcessors()から取得されます。 これは常に整数値であることに注意してください(分数やミリコアは表現されません)。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.cpu.countUpDownCounter{cpu}Java仮想マシンが利用できるプロセッサーの数。Stable

メトリクス: jvm.cpu.recent_utilization

このメトリクスは推奨です。 このメトリクスは、HotSpotではcom.sun.management.OperatingSystemMXBean#getProcessCpuLoad()、OpenJ9ではcom.ibm.lang.management.OperatingSystemMXBean#getProcessCpuLoad()から取得されます。 JVMは「recent(直近)」の意味を定義していないことに注意してください。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.cpu.recent_utilizationGauge1JVMが報告する、そのプロセスの直近のCPU使用率。[1]Stable

[1]: 値の範囲は[0.0,1.0]です。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献

開発中のメトリクス

ステータス: Development

Description: jvm.の下で取得される、開発中のJava Virtual Machine(JVM)メトリクス。

メトリクス: jvm.memory.init

このメトリクスは推奨です。 このメトリクスはMemoryPoolMXBean#getUsage()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.memory.initUpDownCounterBy要求された初期メモリの測定値。Development

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.memory.pool.nameStableRecommendedstringメモリプールの名前。[1]G1 Old Gen; G1 Eden space; G1 Survivor Space
jvm.memory.typeStableRecommendedstringメモリの種別。heap; non_heap

[1] jvm.memory.pool.name: プール名は、一般にMemoryPoolMXBean#getName()から取得されます。


jvm.memory.typeには、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず(MUST)、それ以外の場合は独自の値を使ってもかまいません(MAY)。

ValueDescriptionStability
heapヒープメモリ。Stable
non_heap非ヒープメモリStable

メトリクス: 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()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.system.cpu.utilizationGauge1JVMが報告する、システム全体の直近のCPU使用率。[1]Development

[1]: 値の範囲は[0.0,1.0]です。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献

メトリクス: jvm.system.cpu.load_1m

このメトリクスはOpt-Inです。 このメトリクスはOperatingSystemMXBean#getSystemLoadAverage()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.system.cpu.load_1mGauge{run_queue_item}JVMが報告する、直近1分間のシステム全体の平均CPU負荷。[1]Development

[1]: 値の範囲は[0,n]です(nはCPUコアの数、値が取得できない場合は負の数)。この使用率は(system.cpu.utilizationとは異なり)直前の測定からの特定の間隔についてのものとしては定義されていません。参考文献

メトリクス: jvm.buffer.memory.used

このメトリクスは推奨です。 このメトリクスはBufferPoolMXBean#getMemoryUsed()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.buffer.memory.usedUpDownCounterByバッファーが使用しているメモリの測定値。Development

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.buffer.pool.nameDevelopmentRecommendedstringバッファープールの名前。[1]mapped; direct

[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。

メトリクス: jvm.buffer.memory.limit

このメトリクスは推奨です。 このメトリクスはBufferPoolMXBean#getTotalCapacity()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.buffer.memory.limitUpDownCounterByバッファーの総容量の測定値。Development

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.buffer.pool.nameDevelopmentRecommendedstringバッファープールの名前。[1]mapped; direct

[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。

メトリクス: jvm.buffer.count

このメトリクスは推奨です。 このメトリクスはBufferPoolMXBean#getCount()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.buffer.countUpDownCounter{buffer}プール内のバッファーの数。Development

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
jvm.buffer.pool.nameDevelopmentRecommendedstringバッファープールの名前。[1]mapped; direct

[1] jvm.buffer.pool.name: プール名は、一般にBufferPoolMXBean#getName()から取得されます。

メトリクス: jvm.file_descriptor.count

このメトリクスはOpt-Inです。 このメトリクスはUnixOperatingSystemMXBean#getOpenFileDescriptorCount()から取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.file_descriptor.countUpDownCounter{file_descriptor}JVMが報告する、開いているファイルディスクリプターの数。Development

メトリクス: jvm.file_descriptor.limit

このメトリクスはOpt-Inです。 このメトリクスはUnixOperatingSystemMXBean#getMaxFileDescriptorCountから取得されます。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
jvm.file_descriptor.limitUpDownCounter{file_descriptor}JVMが報告する、開いているファイルディスクリプターの最大数の測定値。Development