本文へスキップ

Kubernetesメトリクス

Kubernetesモニタリングが収集するメトリクスをカテゴリ別に整理しました。各カテゴリのTags(ディメンション)とFields(測定値)を確認できます。

  • 一部のメトリクスはサーバーモニタリング、アプリケーションモニタリングと共通です。
  • メトリクスを直接検索したり、チャートで可視化するにはメトリクス照会メトリクスチャートページを参照してください。

コンテナ(container) メトリクス

containerカテゴリは、コンテナのPODに設定されているすべてのユーザー定義ラベルをタグとして収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分

Tags

TagTypeUnitDescription
agentOid--ノードエージェント固有ID(固有値)
agentPcode--プロジェクトコード(固有値)
command--実行コマンド
containerId--コンテナID(固有値)
containerKey--コンテナKey
created--コンテナが生成されたTimeStamp
image--コンテナイメージ名
imageHash--イメージハッシュ値
imageId--イメージID
k8s-app--Podのラベルk8s-appに対する値
microOid--コンテナにインストールされたWhaTap APMエージェントの固有ID
name--コンテナ名
namespace--コンテナが所属するネームスペース
namespaceHash--コンテナが所属するネームスペースのハッシュ値
okind--コンテナにインストールされているWhaTap APMエージェントに指定したOKINDの固有ID
okindName--コンテナにインストールされているWhaTap APMエージェントに指定したOKIND名
oname--コンテナにインストールされているWhaTap APMエージェント名
onode--コンテナが実行されているノードエージェントの固有ID
onodeName--コンテナが動作しているノード名
podHash--コンテナのPodハッシュ値
podName--コンテナのPod名
replicaSetHash--コンテナのレプリカセットハッシュ値
replicaSetName--コンテナのレプリカセット名
whatap_project--コンテナが属するWhaTapプロジェクト名

Fields

FieldTypeUnitShortname/Name/Description
blkio_rbps-バイトIoReadBytes
Container Block I/O Read Byte
コンテナ全体ブロックデバイスの1秒当たり読み込んだバイトの合計
blkio_riops-countIoReadIops
Container Block I/O Read IOPS
コンテナ全体ブロックデバイスの1秒当たり読み込んだ数の合計
blkio_wbps-バイトIoWriteBytes
Container Block I/O Write Byte
コンテナ全体ブロックデバイスの1秒当たり書き込んだバイトの合計
blkio_wiops-countIoWriteIops
Container Block I/O Write IOPS
コンテナ全体ブロックデバイスの1秒当たり書き込んだ数の合計
cpu_per_quota-percentCpuByLimit
Container CPU Usage by Limit(%)
CPU Limit基準CPUの全体使用率
cpu_quota-millicoresCpuLimit
Container CPU Limit (core)
コンテナのCPU Limit割当量
- Limitが未設定の場合、コンテナが実行中のノードのCPU全体コアがミリコア単位で表示
cpu_quota_percent-percentCpuLimitByNode
Container CPU Limit by Node(%)
ノードCPUに対するコンテナCPUリミットの割り当て量
- リミットが設定されていない場合、コンテナが動作しているノードのCPU全コアがパーセントで表示されます。
cpu_sys-percentCpuSysByNode
Container CPU Sys Usage by Node(%)
ノードCPUに対するコンテナCPU System使用率
cpu_throttledperiods-countCpuThrottledCnt
Container CPU Throttling Count
コンテナCPU Throttled数
cpu_throttledtime-nanosecond(ns)CpuThrottledTime
Container CPU Throttling Time
コンテナCPU Throttled時間
cpu_total-percentCpuByNode
Container CPU Usage by Node(%)
ノードCPUに対するコンテナCPU使用率
cpu_total_milli-millicoresCpuTotUsage
Container CPU Usage (millicore)
コンテナCPU使用量
cpu_user-percentCpuUserByNode
Container CPU User Usage by Node(%)
ノードCPUに対するコンテナCPU User使用率
cpu_request-millicoresCpuRequest
Container CPU Request (core)
コンテナCPU要求
cpu_per_request-percentCpuByRequest
Container CPU Usage by Request(%)
コンテナCPUリクエストに対する使用率
= cpu_total_milli / cpu_request * 100
mem_failcnt-countMemFailCnt
Container Memory Failure Count
コンテナメモリLimit到達件数
mem_limit-バイトMemLimit
Container Memory Limit (byte)
コンテナのメモリLimitサイズ
mem_maxusage-バイトMemMaxUsage
Container Memory Max Usage (byte)
コンテナメモリの最大使用量の記録値
- 詳細は下記案内を参照してください。
mem_percent-percentMemWsByLimit
Container Memory Working Set by Limit(%)
コンテナメモリLimit基準working set使用量
= mem_working_set / mem_limit * 100
mem_totalcache-バイトMemTotCache
Container Memory Total Cache (byte)
コンテナ全体のキャッシュサイズ
mem_totalpgfault-countMemTotPageFaultCnt
Container Memory Total Page Fault Count
コンテナPage Fault回数
mem_totalrss-バイトMemTotRss
Container Memory Total RSS (byte)
コンテナRSSメモリ全体サイズ
mem_totalrss_percent-percentMemTotRssByLimit
Container Memory Total RSS by Limit (%)
コンテナRSSメモリ全体使用率
mem_totalunevictable-バイトMemTotUnevictable
Container Memory Total Unevictable (byte)
コンテナUnevictable Memory全体サイズ
mem_usage-バイトMemUsage
Container Memory Usage (byte)
コンテナメモリ使用量
mem_working_set-バイトMemWs
Container Memory Working Set (byte)
コンテナメモリworking set
= mem_usage - inactive file
mem_working_set_percent-percentMemWsByLimit
Container Memory Working Set by Limit (%)
コンテナメモリLimit基準working set使用量
= mem_working_set / mem_limit * 100
mem_request-バイトMemRequest
Container Memory Request (byte)
コンテナのメモリRequestサイズ
mem_per_request-percentMemWsByRequest
Container Memory Working Set by Request (%)
コンテナメモリRequest基準working set使用量
= mem_working_set / mem_request * 100
network_rbps-byteNetRxBytes
Container Network Receive Byte
コンテナ全体ブロックデバイスの1秒当たり読み取りバイトの合計
network_rdropped-バイトNetRxDropped
Container Network Receive Dropped
コンテナネットワーク受信dropped数
network_rerror-バイトNetRxError
Container Network Receive Error
コンテナのネットワーク受信エラー数
network_riops-バイトNetRxIops
Container Network Receive IOPS
コンテナのネットワーク受信数
network_wbps-バイトNetTxByes
Container Network Transmit Byte
コンテナのネットワーク送信データサイズ
network_wdropped-countNetTxDropped
Container Network Transmit Dropped
コンテナのネットワーク送信dropped数
network_werror-countNetTxError
Container Network Transmit Error
コンテナのネットワーク送信エラー数
network_wiops-countNetTxIops
Container Network Transmit IOPS
コンテナのネットワーク送信数
node_cpu-percentConNodeCpu
Container Work Node CPU Usage (%)
コンテナ実行中のノードのCPU使用量
node_mem-percentConNodeMem
Container Work Node Memory Usage (%)
コンテナ実行中のノードのメモリ使用量
phasestring-Podライフサイクル
① PENDING
② RUNNING
③ SUCCEEDED
④ FAILED
⑤ UNKNOWN
restart_countinteger-ConRestartCnt
Container Restart Count
コンテナの再起動回数
stateinteger-ConState
Container Current State
コンテナステータスコード
① RUNNING = 114
② PAUSE = 112
③ RESTARTING = 101
④ OOMKILLED = 111
⑤ DEAD = 100
⑥ WAITING = 119
statusstring-ConStatus
Container Current Status
コンテナステータス情報
① runningステータス:uptime情報表示
② waiting/terminatedステータス:ステータスに対するreason情報の表示
ノート

mem_maxusageは、コンテナの実行中に記録されたメモリの最大使用量を示します。しかし、Linuxカーネルバージョンが5.19より低い場合、このメトリクスの原本データが対応できない場合があります。このような場合、その値が0になる可能性があります。該当メトリクスを正常に収集するためには、Linuxカーネルバージョンを5.19以上にアップデートする必要があります。

Kubernetesノード(kube_node) メトリクス

kube_nodeカテゴリは、ノードに設定されているすべてのユーザー定義ラベルをタグとして収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
nodeName--ノード名

次のタグが追加されました。

TagTypeUnitDescription
infrastructureTypestring-ノードのインフラ種別
- baremetalvmunknown

Fields

FieldTypeUnitDescription
allocatable_cpu-millicoresノード割り当て可能なCPU量
allocatable_memory-バイトノード割り当て可能なメモリ量
allocatable_podsinteger-ノード割り当て可能なPod数
limit_cpu-millicoresノードCPU Limit合計
limit_memory-バイトノードメモリLimit合計
podsinteger-ノードPodの総個数
request_cpu-millicoresノードCPU Request合計
request_memory-バイトノードメモリRequest合計

ノードのGPU数量は、デバイスタイプ別の並列リストフィールドで収集します。*_types*_countsはインデックスが1:1で対応し、nvidia.com/gpu(whole-GPU)とすべてのMIGプロファイル(nvidia.com/mig-*)を個別の項目として保持します。

FieldTypeUnitDescription
gpu_capacity_typeslist-ノードGPU capacityのデバイスタイプ一覧
gpu_capacity_countslistcount上記タイプ別capacity数量(インデックス1:1対応)
gpu_allocatable_typeslist-ノードGPU allocatableのデバイスタイプ一覧
gpu_allocatable_countslistcount上記タイプ別allocatable数量(インデックス1:1対応)
ノート

v1.9.14から、whole-GPU専用のスカラーフィールドcapacity_gpuallocatable_gpuは削除されました。MIG環境でスカラーフィールドがnvidia.com/gpuのみを保持しMIGスライスを欠落させることで、集計が誤った合計になる問題を防ぐためです。whole-GPU数量もリストのnvidia.com/gpu項目で確認し、全体・タイプ別の集計は*_countsを合算します。

CategoryRemoved scalar fieldReplacement list field
kube_nodecapacity_gpu, allocatable_gpugpu_capacity_types/gpu_capacity_counts, gpu_allocatable_types/gpu_allocatable_counts

Kubernetesノード性能(kube_node_perf) メトリクス

kube_node_perfカテゴリは、ノードにスケジューリングされたすべてのPod/Containerのリソース使用量と割り当て量を集計し、ノード単位の性能メトリクスを収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
onode--ノードハッシュ値
onodeName--ノード名
agentPcode--エージェントプロジェクトコード
agentOid--エージェント固有ID

次のタグが追加されました。

TagTypeUnitDescription
cgroup_version--ノードホストのcgroupマウントモード
- unified(cgroup v2)、hybridlegacy(cgroup v1)、unknown(アクセス不可)

ノードホストの/sys/fs/cgroupマウントモードを直接検知してタグとして収集します。ノード別のcgroupバージョン状況をサーバーで集計できます。

ノードの仮想化判別タグが追加されました。

TagTypeUnitDescription
virtualizationstring-ノードの仮想化の有無
- baremetalvmunknown
hypervisorstring-ハイパーバイザーのベンダー名
- ベアメタルの場合や判別できない場合は-

ノードホストのDMI情報(/sys/class/dmi/id/sys_vendorproduct_name)でベンダーを先に照合し、一致するベンダーがない場合は/proc/cpuinfoのhypervisorフラグで仮想マシンかどうかのみを判定します。DMI情報がない非x86ノードはunknownとして収集します。

QEMU/KVM、VMware、Hyper-V、Xen、VirtualBox、Parallels、Amazon EC2、Google GCE、OpenStack、Nutanix AHV、oVirt/RHV、Alibaba Cloudなどのベンダーを認識します。値はノードの稼働中に変わらないため、最初の1回のみ読み取ってキャッシュします。

制約:Amazon EC2の.metalインスタンスのようにクラウド事業者が提供するベアメタルは、DMI情報だけでは一般インスタンスと区別できないためvmとして判別されます。

ノードエージェント1.9.21バージョン以上で収集します。

Fields

FieldTypeUnitDescription
cpuRequestlongmillicoresノード内全コンテナのCPU Request合計
cpuLimitlongmillicoresノード内全コンテナのCPU Limit合計
cpuTotallongmillicoresノード内全コンテナのCPU使用量合計
cpuPerRequestfloatpercentノードCPU Request対比の実際のCPU使用率
cpuPerLimitfloatpercentノードCPU Limit対比の実際のCPU使用率
memoryRequestlongbyteノード内全コンテナのMemory Request合計
memoryLimitlongbyteノード内全コンテナのMemory Limit合計
memTotallongbyteノード内全コンテナのMemory使用量合計
memoryPerRequestfloatpercentノードMemory Request対比の実際のMemory使用率
memoryPerLimitfloatpercentノードMemory Limit対比の実際のMemory使用率

次のフィールドが追加されました。

FieldTypeUnitDescription
conntrack_countlongcount現在のconntrackエントリ数
conntrack_maxlongcountconntrackエントリの上限(nf_conntrack_max
conntrack_pctfloatpercent上限に対する使用率
  • エントリ数は、ホストのnetwork namespace基準の値を読み取るため/proc/1/net/stat/nf_conntrackパスから収集します。
  • nf_conntrackモジュールがロードされていないノードはフィールドを送信しません。値0と未収集を区別するための動作です。
  • ノードエージェント1.9.18バージョン以上で収集します。collect_conntrack_enabledオプションで収集をオフにできます。

Kubernetesイベント(kube_event) メトリクス

kube_eventカテゴリは、クラスタープロジェクトの場合は、クラスター全体を対象としてデータを収集し、ネームスペースプロジェクトの場合は、ネームスペースで発生したイベントのみ収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
field_path--Field Path
kind--イベントが発生したオブジェクトの種類
name--イベントが発生したKubernetesオブジェクト名
namespace--イベントが発生したネームスペース名
reason--イベント発生理由
type--イベントタイプ
- WarningまたはNormal
uid--UID
- イベントが発生したオブジェクト

Fields

FieldTypeUnitDescription
actionstring-アクション名
count-countイベント発生件数
event_timeinteger-イベント初期発生TimeStamp
first_timestampinteger-イベント初期発生時間
last_timestampinteger-イベント最終発生時間
messagestring-イベントメッセージ
reasonFiledstring-イベントReason
reporting_componentstring-現在のイベントを報告するコンポーネント
reporting_instancestring-現在のイベントを報告するインスタンス
series_last_observed_timeinteger-series last observed time

Kubernetesクラスター(kube_stat) メトリクス

kube_statカテゴリは、クラスタープロジェクトのクラスター全体を対象として収集し、ネームスペースプロジェクトは、そのネームスペースに関連するオブジェクトのみ対象に収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
name--kube_stat(固定値)

次のタグが追加されました。

TagTypeUnitDescription
namespace--収集対象のネームスペース名

Fields

FieldTypeUnitDescription
alloctable_cpu-millicoresクラスタ全体のコア数(クラスタプロジェクトOnly)
alloctable_ephemeral-storage-バイトクラスター全体に割り当てられるephemeral storage(クラスタープロジェクトOnly)
alloctable_hugepages-1gi-バイトクラスター全体に割り当てられるhugepages-1Gi(クラスタープロジェクトOnly)
alloctable_hugepages-2mi-バイトクラスター全体に割り当てられるhugepages-2Mi(クラスタープロジェクトOnly)
alloctable_memory-バイトクラスター全体に割り当てることができるメモリ(クラスタープロジェクトOnly)
alloctable_podsinteger-割り当て可能なPod数
available_podinteger-PhaseがRunning状態のPodの数
desired_podinteger-metadata.ownerReferencesなしで配布されたPod数とクバネティスオブジェクト(ReplicaSet, Daemonset, StatefulSet)に定義されたDesired Pod数の合計
kubectl get pods -Aで参照したPod数と同じ
nodesinteger-ノード数
pod_phase_Pendinginteger-PendingステータスPod数
pod_phase_Runninginteger-Running状態Pod数
running_containersinteger-Runningコンテナ数
stopped_containersinteger-Stoppedコンテナ数
total_available_cpuinteger-割り当て可能なCPUの合計
total_available_memoryinteger-割り当て可能なMemory合計
total_limit_cpu-millicoresLimit CPU合計
total_limit_memory-バイトLimit Memory合計
total_request_cpu-millicoresRequest CPU合計
total_request_memory-バイトRequest Memory合計
unavailable_podinteger-PhaseがRunning状態ではない(Pending, Failed, Succedded) Pod数
waiting_containersinteger-Waiting Container数

ネームスペースに設定されたResourceQuotaの上限と消費量を収集します。次のフィールドが追加されました。

FieldTypeUnitDescription
quota_countlongcountネームスペースに設定されたResourceQuota数
quota_request_cpu_hardlongmillicoresCPU Requestクォータの上限
quota_request_cpu_usedlongmillicoresCPU Requestクォータの消費量
quota_request_memory_hardlongbyteMemory Requestクォータの上限
quota_request_memory_usedlongbyteMemory Requestクォータの消費量
quota_limit_cpu_hardlongmillicoresCPU Limitクォータの上限
quota_limit_cpu_usedlongmillicoresCPU Limitクォータの消費量
quota_limit_memory_hardlongbyteMemory Limitクォータの上限
quota_limit_memory_usedlongbyteMemory Limitクォータの消費量
quota_pods_hardlongcountPod数クォータの上限
quota_pods_usedlongcountPod数クォータの消費量
  • Kubernetesが算出したstatus.hardstatus.usedの値をそのまま使用します。
  • 1つのネームスペースにスコープの異なるResourceQuotaが複数ある場合は、項目ごとに合算します。
  • クォータが設定されていないネームスペースはquota_countのみを0で送信し、残りのフィールドは送信しません。クォータ未設定と上限0を区別するための動作です。
  • マスターエージェント1.9.17バージョン以上で収集します。

権限:ClusterRoleにcore APIのresourcequotasに対するlist権限が必要です。権限がない場合、ResourceQuotaの収集のみが省略され、残りのkube_stat収集は継続されます。

Pod(kube_pod) メトリクス

kube_podカテゴリは、Podに設定されているすべてのユーザー定義ラベルをタグとして収集します。

  • 対象:マスター(クラスター) プロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分

Tags

TagTypeUnitDescription
agentOid--ノードエージェント固有ID(固有値)
agentPcode--プロジェクトコード(固有値)
command--実行コマンド
containerIds--Podに属しているコンテナID
containerIdsCount--containerIdsの個数
containerKeys--Podに属しているコンテナIDのハッシュ値
containerKeysCount--containerKeysの個数
DaemonSet--PodのDaemonSet名
Deployment--Deployment
k8s-app--Podのラベルk8s-appに対する値
microOid--Podのコンテナ内部アプリケーションで実行中のエージェントのID
microOids--Podの複数コンテナ内部のアプリケーションで実行中のエージェントの複数ID
microOidsCount--microOidsの個数
name--Pod名
onames--Podのコンテナ内部アプリケーションで実行中のエージェントの名称
onamesCount--onamesの個数
podName--Pod名
namespace--Podが所属するネームスペース
namespaceHash--Podが所属するネームスペースハッシュ値
replicaSetHash--PodのReplicaSetハッシュ値
replicaSetName--PodのReplicaSet名
whatap_project--Podが属するWhaTapプロジェクト名

Fields

FieldTypeUnitShortname、 Name、 Description
blkio_rbps-バイトIoReadBytes
Pod Block I/O Read Byte
Pod全体ブロックデバイスの1秒あたり読み込みバイトの合計
blkio_riops-countIoReadIops
Pod Block I/O Read IOPS
Pod全体ブロックデバイスの1秒当たり読み込み件数の合計
blkio_wbps-バイトIoWriteBytes
Pod Block I/O Write Byte
Pod全体ブロックデバイスの1秒あたり書き込みバイトの合計
blkio_wiops-countIoWriteIops
Pod Block I/O Write IOPS
Pod全体ブロックデバイスの1秒当たり書き込み件数の合計
cpu_per_limit-percentCpuByLimit
Pod CPU Usage by Limit (%)
CPU Limit基準CPUの全体使用率
cpu_per_request-percentCpuByRequest
Pod CPU Usage by Request (%)
CPU Request基準CPUの全体使用率
cpu_quota_percent-percentCpuLimitByNode
Pod CPU Limit by Node (%)
ノードCPUに対するPod CPU Limit割当量
- Limit未設定の場合、Podが実行中のノードのCPU全体コアがパーセントで表示
cpu_sys-percentCpuSysByNode
Pod CPU Sys Usage by Node (%)
ノードCPUに対するPod CPU System使用率
cpu_throttledperiods-countCpuThrottledCnt
Pod CPU Throttling Count
Pod CPU Throttled件数
cpu_throttledtime-nanosecond(ns)CpuThrottledTime
Pod CPU Throttling Time
Pod CPU Throttled時間
cpu_total-percentCpuByNode
Pod CPU Usage by Node (%)
ノードCPUに対するPod CPU使用率
cpu_total_milli-millicoresCpuTotUsage
Pod CPU Usage (millicore)
Pod CPU使用量
cpu_user-percentCpuUserByNode
Pod CPU User Usage by Node (%)
ノードCPUに対するPod CPU User使用率
cpu_request-millicoresCpuRequest
Pod CPU Request (core)
Pod CPUリクエスト
cpu_per_request-percentCpuByRequest
Pod CPU Usage by Request (%)
Pod CPUリクエストに対する使用率
= cpu_total_milli / cpu_request * 100
mem_totalcache-バイトMemTotCache
Pod Memory Total Cache (byte)
Pod全体のキャッシュサイズ
mem_totalpgfault-countMemTotPageFaultCnt
Pod Memory Total Page Fault Count
Pod PageFault回数
mem_totalrss-バイトMemTotRss
Pod Memory Total RSS (byte)
Pod RSSメモリ全体サイズ
mem_totalrss_percent-percentMemTotRssByLimit
Pod Memory Total RSS by Limit (%)
Pod RSSメモリ全体使用率
mem_totalunevictable-バイトMemTotUnevictable
Pod Memory Total Unevictable (byte)
Pod Unevictable Memory全体サイズ
mem_usage-バイトMemUsage
Pod Memory Usage (byte)
Podメモリ使用量
mem_working_set-バイトMemWs
Pod Memory Working Set (byte)
Podメモリworking set
= mem_usage - inactive file
memory_request-バイトMemRequest
Pod Memory Request (byte)
Podメモリー要求量
memory_limit-バイトMemLimit
Pod Memory Limit (byte)
PodメモリLimit割当量
memory_per_request-percentMemByRequest
Pod Memory Working Set By Request (%)
Podメモリの要求基準のWorking Set使用量
memory_per_limit-percentMemByLimit
Pod Memory Working Set By Limit (%)
PodメモリのLimit基準のWorking Set使用量
network_rbps-バイトNetRxBytes
Pod Network Receive Byte
Pod全体ブロックデバイスの1秒あたり読み込みバイトの合計
network_rdropped-バイトNetRxDropped
Pod Network Receive Dropped
Podネットワーク受信のdropped件数
network_rerror-バイトNetRxError
Pod Network Receive Error
Podネットワーク受信エラー件数
network_riops-バイトNetRxIops
Pod Network Receive IOPS
Podネットワーク受信件数
network_wbps-バイトNetTxByes
Pod Network Transmit Byte
Podネットワーク送信データサイズ
network_wdropped-countNetTxDropped
Pod Network Transmit Dropped
Podネットワーク送信dropped件数
network_werror-countNetTxError
Pod Network Transmit Error
Podネットワーク送信エラー件数
network_wiops-countNetTxIops
Pod Network Transmit IOPS
Podネットワーク送信件数
phasestring-Phase
Pod Current Phase
Podライフサイクル
① PENDING
② RUNNING
③ SUCCEEDED
④ FAILED
⑤ UNKNOWN

次のフィールドは内部用に予約されています。

FieldTypeUnitDescription
kube_sless_normal--Kubernetes情報イベント発生件数
kube_sless_warning--Kubernetes警告イベント発生件数
micro_sful_critical--apm重要ステータスベースのイベント発生件数
micro_sful_info--apm情報ステータスベースのイベント発生件数
micro_sful_warning--apm警告ステータスベースのイベント発生件数
micro_sless_critical--apm深刻状態イベント発生件数
micro_sless_info--apm情報状態イベント発生件数
micro_sless_warning--apm警告状態イベント発生件数
sful_critical--メトリクス重要状態ベースのイベント発生件数
sful_info--メトリクス情報ステータスベースのイベント発生件数
sful_warning--メトリクス警告ステータスベースのイベント発生件数
sless_critical--メトリクス重要状態イベント発生件数
sless_info--メトリクス情報状態イベント発生件数
sless_warning--メトリクス警告状態イベント発生件数

PodのGPU Request・Limit数量は、デバイスタイプ別の並列リストフィールドで収集します。*_types*_countsはインデックスが1:1で対応し、nvidia.com/gpu(whole-GPU)とすべてのMIGプロファイル(nvidia.com/mig-*)を個別の項目として保持します。

FieldTypeUnitDescription
gpu_request_typeslist-Pod GPU Requestのデバイスタイプ一覧
gpu_request_countslistcount上記タイプ別Request数量(インデックス1:1対応)
gpu_limit_typeslist-Pod GPU Limitのデバイスタイプ一覧
gpu_limit_countslistcount上記タイプ別Limit数量(インデックス1:1対応)
ノート

v1.9.14から、whole-GPU専用のスカラーフィールドgpu_requestgpu_limitは削除されました。MIG環境でスカラーフィールドがnvidia.com/gpuのみを保持しMIGスライスを欠落させることで、集計が誤った合計になる問題を防ぐためです。whole-GPU数量もリストのnvidia.com/gpu項目で確認し、全体・タイプ別の集計は*_countsを合算します。

Kubernetes Pod統計(kube_pod_stat) メトリクス

kube_pod_statカテゴリのクラスタープロジェクトは、クラスター全体のデータを収集し、ネームスペースプロジェクトは、ネームスペースに所属するPodのデータのみ収集します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
kind--タイプ
- クラスタープロジェクトの場合は、clusterに固定値を持ち、ネームスペースプロジェクトの場合は、DeploymentまたはReplicaSet のみ収集
name--Kubernetes資源名
-クラスタープロジェクトにはname値がなく、ネームスペースプロジェクトはDeploymentまたはReplicaSetの名前

Fields

FieldTypeUnitDescription
available_podinteger-PhaseがRunning状態のPodの数
desired_podinteger-metadata.ownerReferencesなしで配布されたPod数とクバネティスオブジェクト(ReplicaSet, Daemonset, StatefulSet)に定義されたDesired Pod数の合計
kubectl get pods -Aで参照したPod数と同じ
limit_cpu-millicoresCPU Limit使用量
limit_memory-バイトMemory Limit使用量
request_cpu-millicoresCPU Request使用量
request_memory-バイトMemory Request使用量
running_containerinteger-Running Container数
stopped_containerinteger-Stopped Container数
waiting_containerinteger-Waiting Container数

Kubernetes Podボリューム(kube_pod_volume) メトリクス

kube_pod_volumeカテゴリは、ノードで実行中のPodにマウントされたボリュームの容量・i-node使用量を収集します。アプリPodのPVCボリュームはディレクトリ名がPV名であるため、volumeNameタグでPVCのspec.volumeNameと結合できます。

Tags

TagTypeUnitDescription
hostDevice--ボリュームが位置するホストデバイス
hostFileSystem--ボリュームのファイルシステム
hostMountPath--ホスト上のボリュームマウントパス
volumeName--ボリューム名
- PVCボリュームの場合はPV名(例: pvc-...)。PVCのspec.volumeNameと結合可能
volumePlugin--ボリュームプラグイン
- 例: kubernetes.io~csikubernetes.io~nfsvolume-subpaths

Fields

FieldTypeUnitDescription
capacitylongbyteボリューム全体の容量
availablelongbyteボリュームの使用可能容量
availablePercentfloatpercentボリュームの使用可能容量の割合
usedPercentfloatpercentボリューム使用率
freelongbyteボリュームの空き容量
freePercentfloatpercentボリュームの空き容量の割合
totalInodelongcountボリュームの全i-node数
usedInodelongcountボリュームで使用中のi-node数
usedInodePercentfloatpercentボリュームのi-node使用率

emptyDirボリュームの収集が追加されました。デフォルト(ディスク)mediumのemptyDirは別途のマウントではなくノードのルートファイルシステム上のディレクトリであるため、dfベースの収集では捕捉できませんでした。ノードエージェントがkubeletのボリュームディレクトリを直接照会し、同じkube_pod_volumeカテゴリーに送信します。

  • 照会パス:{HOST_PREFIX}{kubelet_root_dir}/pods/{podUid}/volumes/kubernetes.io~empty-dir/{volumeName}
  • 収集周期:60秒。ディレクトリ照会のコストが大きいため、5秒の収集周期とは分離します。
  • emptyDirボリュームのvolumePluginタグの値はkubernetes.io~empty-dirです。

次のタグが追加されました。

TagTypeUnitDescription
volumeTypestring-ボリュームの種類
- emptyDirボリュームはEmptyDir
emptyDirMediumstring-emptyDirの保存媒体
- MemoryまたはDisk。PodのspecのemptyDir.medium基準で、未指定はDisk
emptyDirSpecConfirmedstring-Podのspecを確認したかどうか
- trueはspecで確認した値、falseはkubeletのパスとファイルシステムの種類から推定した値

次のフィールドが追加されました。

FieldTypeUnitDescription
usedSpacelongbyteボリューム使用量の合計
fileCountlongcountボリューム内のファイル数
sizeLimitlongbytePodのspecのemptyDir.sizeLimit
- 未設定の場合は送信しません
truncatedinteger-収集上限を超過したかどうか
- 1の場合は上限に達し、値が実際より小さいことを示します

capacityavailableusedPercentは、ボリューム容量を確定できる場合にのみ送信します。

  • sizeLimitがある場合は、その値をボリューム容量として使用します。
  • sizeLimitがなく、mediumがMemoryの場合は、kubeletが作成したtmpfsの総量を容量として使用します。tmpfs総量のデフォルト値はノードメモリの半分です。
  • sizeLimitがないDisk mediumは上限がないため容量を作成しません。この場合はPodのcontainer.ephemeral_storage_limitと比較してください。

ノードエージェント1.9.23バージョン以上で、上記のタグとフィールドをすべて送信します。収集の有効化とコスト上限のオプションは、Kubernetesエージェントのオプション設定を参照してください。

Kubernetes Horizontal Pod Autoscaler(HPA)(kube_hpa_stat) メトリクス

WhaTapで使用するCluster RoleにHPAが追加されると、メトリクス収集が開始されます。

  • 対象:クラスタープロジェクト
  • 収集間隔:5秒
  • 統計データ:5分、1時間

Tags

TagTypeUnitDescription
name--HPA名

次のタグが追加されました。

TagTypeUnitDescription
scaleTargetKindstring-スケール対象オブジェクトの種類(spec.scaleTargetRef.kind
scaleTargetNamestring-スケール対象オブジェクトの名前(spec.scaleTargetRef.name
scaleTargetApiVersionstring-スケール対象オブジェクトのAPIバージョン
creationTimeMillislong-HPAの作成時刻(epoch ms)
- 値がない場合は送信しません

HPAのスケール対象はspec.scaleTargetRefにあります。ownerReferencesベースのowner_kindowner_nameowner_idタグはHPAではほとんど空の値になるため、スケール対象はscaleTarget*タグで確認してください。既存のタグは下位互換のために維持します。

マスターエージェント1.9.24バージョン以上で収集します。

Fields

FieldTypeUnitDescription
currentReplicasintegercount現在のレプリカ数
desiredReplicasintegercountDesiredレプリカ数
lastScaleTimeintegercount最後にスケールが変更されたTimeStamp
maxReplicasintegercount最大レプリカ数
minReplicasintegercount最小レプリカ数

Kubernetes HPAリスト(kube_hpa) メトリクス

kube_hpaカテゴリーは、kubectl get hpa -o wideの結果と同等のHPAリストデータを収集します。時系列指標の性格を持つkube_hpa_statとは別のカテゴリーです。

  • 対象:クラスタープロジェクト
  • 収集間隔:30秒
  • 要求バージョン:マスターエージェント1.9.24以上

Tags

TagTypeUnitDescription
hpaUidstring-HPAのUID(固有値)
hpaNamestring-HPAの名前
namespacestring-HPAが所属するネームスペース
creationTimeMillislong-HPAの作成時刻(epoch ms)
scaleTargetKindstring-スケール対象オブジェクトの種類
scaleTargetNamestring-スケール対象オブジェクトの名前
scaleTargetApiVersionstring-スケール対象オブジェクトのAPIバージョン

Fields

FieldTypeUnitDescription
minReplicasintegercount最小レプリカ数
maxReplicasintegercount最大レプリカ数
currentReplicasintegercount現在のレプリカ数
desiredReplicasintegercountDesiredレプリカ数
targetMetricTypelist-スケール基準となるメトリックの種類リスト
targetValuelist-メトリック別の目標値リスト
currentValuelist-メトリック別の現在値リスト
conditionAbleToScalestring-AbleToScaleコンディションの状態
conditionScalingActivestring-ScalingActiveコンディションの状態
conditionScalingLimitedstring-ScalingLimitedコンディションの状態

targetMetricTypetargetValuecurrentValueは、同じインデックスが1つのメトリックに対応する並列リストです。HPAはCPU、メモリ、ユーザー定義メトリックを同時に持つことができるため、1つの値では表現できません。

  • 値はkubectlの表記と同じ文字列です(例:50%100m)。
  • metrics-serverがなく現在値を取得できない場合は<unknown>として収集します。
  • Resourceメトリック以外のPods、External、Objectメトリックは、それぞれpods:external:object:の接頭辞を付けて格納します。
  • autoscaling/v2を優先して使用し、未対応のクラスターはautoscaling/v1で代替します。

ClusterRoleにhorizontalpodautoscalers権限がすでに含まれているため、追加の権限設定は必要ありません。

プロセス(kube_process) メトリクス

ノート

Kubernetesエージェント1.7.12バージョン以降が必要です。エージェントのアップデートの詳細については、次の文書を参照してください。

ノードに存在するKubernetes関連のプロセスをモニタリングする時に収集されます。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト

  • 収集間隔:5秒

  • 統計データ:5分

Tags

TagTypeUnitDescription
ppidstring-親プロセスID
/proc/[pid]/status::PPid
pidstring-プロセスID
/proc/[pid]/status::Pid
cmd1string-コマンド名
/proc/[pid]/status::Name
cmd2string-コマンドライン(全コマンドと印字)
/proc/[pid]/cmdline
ユーザーstring-ユーザーIDまたはユーザー名
/proc/[pid]/status::Uid
onodeNamestring-プロセスのノード名
コンテナシステム環境変数 (NODE_IP)
createTimeTimeStamp-プロセス開始時間
/proc/uptimeによって計算されたフィールド

Fields

FieldTypeUnitDescription
cpufloatpercent(%)CPU使用率
- /proc/[pid]/statによって計算されたフィールド
memoryfloatpercent(%)メモリ使用率
- /proc/[pid]/statmによって計算されたフィールド
rsslongバイト実際のメモリ使用量(Resident Set Size)
- /proc/[pid]/statusの VmRSS
uidstring-ユーザーIDまたはユーザー名
- /proc/[pid]/statusのUid
statestring-プロセス状態
- /proc/[pid]/statusのState
sharedMemorylongバイト共有メモリサイズ
- /proc/[pid]/statmによって計算されたフィールド
openFileDescriptorsinteger-プロセスが開いたファイルディスク リプター数
- /proc/[pid]/fdによって計算されたフィールド
vmSizelongバイト仮想メモリサイズ(Virtual Memory Size)
- /proc/[pid]/statusのVmSize
threadsinteger-プロセスが作成したスレッド数
- /proc/[pid]/statusのThreads

Kubernetes環境のLinuxプロセスの状態

Linuxで_/proc/[pid]/status_ファイルのStateフィールドがプロセスの現在の状態を表示します。各ステータス値の意味は次の通りです。

CodeDescription
R (Running)実行中
- プロセスが実行中または実行される準備ができている状態
S (Sleeping)待機中
- 割り込み可能な停止状態で、待機しながらイベントを待っている状態
D (Disk Sleep)ディスク睡眠
- 割り込み不可能なスリープ状態で、通常はI/O作業を待っている状態
R (Zombie)ゾンビ状態
- プロセスが終了したが、まだ親プロセスが終了状態を収集していない状態
T (Stopped)中止
- プロセスが作業制御信号によって停止された状態(SIGSTOPなど) またはデバッガにより中止された状態
t (Tracing stop)追跡中止
- デバッガによって追跡中の状態(小文字tで表示される)
X (Dead)死んだ状態
- プロセスが死んだ状態(通常は発生しない)
x (Dead)死んだ状態
- カーネルスレッドが死んだ状態(通常は発生しない)
K (WakeKill)強制終了
- 起こしの信号を無視して直ちに死んだ状態
W (Waking)起こし中
- 起こし信号を受けて起こされる最中の状態
I (Idle)遊休状態
- カーネルスレッドがアイドル状態(一般的にユーザーのプロセスには見えない)
ノート

Kubernetesは、コンテナとノードのリソースを効率的に管理するため、コンテナ内部で実行される多数のプロセスが実際に待機状態を維持します。これにより、ほとんどのプロセスはSleeping状態の可能性があります。

エージェント状態(agent_status_summary) メトリクス

エージェントの状態に関するメトリクスを10秒間隔で収集したカテゴリです。

Fields

FieldTypeUnitDescription
inActTime-milliseconds(ms)エージェントが無効になったままの時間
isActiveBoolean-現在のエージェントの活性状態有無(true / false)
isRestartBoolean-エージェントが再起動したかどうか (true / false)
lastActTime-milliseconds(ms)最後にエージェントが活性化された状態の時刻
- 0: 非活性化された場合
oid--プロジェクトに含まれる各エージェントの固有の識別子
oType--エージェント種類
- 1: アプリケーションエージェント
- 2: subType参照
startTime-milliseconds(ms)エージェントが開始された時点を示すタイムスタンプ
subType--エージェント種類
-9: ノードエージェント
- 10: マスターエージェント

Ingress(kube_ingress)メトリクス

ノート

Kubernetesエージェント1.7.13バージョン以降が必要です。エージェントのアップデートの詳細については、次の文書を参照してください。

Ingressリソースに関するメタデータと関連情報をモニタリングする際に収集されます。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト

  • 収集間隔: 30秒

  • 統計データ:5分

Tags

TagTypeUnitDescription
ingressUidstring-Ingressリソースの固有ID
ingressNamestring-Ingressリソースの名前
ingressNamespacestring-Ingressリソースのネームスペース
creationTimeMillislongmilliseconds(ms)Ingressリソース生成時間
ingressClassNamestring-Ingressクラス名
ingressLoadBalancerIpsList-IngressロードバランサーIP

Fields

FieldTypeUnitDescription
hostList-Ingressリソースが受信するホスト名
(*の場合、すべてのホストに対して適用される)
pathList-特定のホストサブでのリクエストパス
backendServiceNameList-バックエンドで配信されるサービスの名前
backendServicePortList-バックエンドで配信されるポート番号
backendServiceUidList-バックエンドで配信されるサービスのuid
pathTypeList-パス一致方式(例、PrefixExact)

Kubernetesクロンジョブ(kube_cronjob)メトリクス

デプロイメントリソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
cronJobNamestring-CronJobの名前(metadata.name)
namespacestring-CronJobが属するネームスペース (metadata.namespace)
cronJobUidstring-CronJobのUID(metadata.uid)

Fields

FieldTypeUnitDescription
lastScheduleTimestring-CronJobが最後にスケジュールされた時間(status.lastScheduleTime)
lastSuccessfulTimestring-CronJobが最後に成功した時間(status.lastSuccessfulTime)
cronJobSpecSchedulestring-CronJobスケジュール周期(spec.schedule, 例: "0 */5 * * *" )
successfulJobsHistoryLimitintegercount成功したJobを保存する最大個数(spec.successfulJobsHistoryLimit)
failedJobsHistoryLimitintegercount失敗したJobを保存する最大個数(spec.failedJobsHistoryLimit)
concurrencyPolicystring-同時実行ポリシー (Allow, Forbid, Replace) (spec.concurrencyPolicy)
startingDeadlineSecondsintegertime(seconds)スケジュールされた時間が過ぎた後でもJobを実行できる最大遅延時間(spec.startingDeadlineSeconds)

Kubernetesデプロイメント(kube_deployment)メトリクス

デプロイメントリソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
deployNamestring-デプロイメント名(metadata.name)
namespacestring-デプロイメントが属するネームスペース(metadata.namespace)
deployUidstring-デプロイメントのUID(metadata.uid)

Fields

FieldTypeUnitDescription
deployReadyReplicasintegercount準備(Ready)状態のPod数(status.readyReplicas)
deployTotalReplicasintegercount設定されたPod数(spec.replicas)
deployUpdatedReplicasintegercount最新バージョンに更新されたPod数(status.updatedReplicas)
deployAvailableReplicasintegercount使用可能な状態のPod数(status.availableReplicas)
deployUnavailableReplicasintegercount使用不可能な状態のPod数(status.unavailableReplicas)
deployCreationTimeintegermilliseconds(ms)デプロイメント生成時刻(Unix Epoch milliseconds, metadata.creationTimestamp)
deploySelectorstring-デプロイメントの選択者ラベル(spec.selector.matchLabels)
deployStrategystring-デプロイメントの配布戦略(spec.strategy.type, 例: RollingUpdate, Recreate)

Kubernetesデーモンセット(kube_daemonset) メトリクス

デモンセットリソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
daemonSetNamestring-DaemonSetの名前(metadata.name)
namespacestring-DaemonSetが属するネームスペース(metadata.namespace)
daemonSetUidstring-DaemonSetのUID(metadata.uid)
creationTimeintegermilliseconds(ms)DaemonSetの生成時刻(metadata.creationTimestamp)
agestring-DaemonSetの生成後の経過時間

Fields

FieldTypeUnitDescription
currentNumberScheduledintegercount現在スケジュールされているPod数(status.currentNumberScheduled)
desiredNumberScheduledintegercount期待するPod数(status.desiredNumberScheduled)
numberReadyintegercountReady状態のPod数(status.numberReady)
numberAvailableintegercount使用可能なPod数(status.numberAvailable)
numberMisscheduledintegercount誤ってスケジュールされたPod数(status.numberMisscheduled)
updatedNumberScheduledintegercount更新されたPod数(status.updatedNumberScheduled)
daemonSetSelectorstring-Selectorラベル(spec.selector.matchLabels)

Kubernetesレプリカセット(kube_replicaset)メトリクス

レプリカセット(ReplicaSet)リソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
replicaSetNamestring-ReplicaSetの名前(metadata.name)
namespacestring-ReplicaSetが属するネームスペース(metadata.namespace)
replicaSetUidstring-ReplicaSetのUID (metadata.uid)
ownerKindstring-上位オブジェクトの種類(例: Deployment) (metadata.ownerReferences.kind)
ownerNamestring-上位オブジェクト名(metadata.ownerReferences.name)
ownerUid string-上位オブジェクトUID (metadata.ownerReferences.uid)
creationTimeintegermilliseconds(ms)ReplicaSetの生成時刻(metadata.creationTimestamp)
agestring-ReplicaSetの生成後の経過時間

Fields

FieldTypeUnitDescription
replicaSetReplicasintegercount設定されたPod数(spec.replicas)
replicaSetReadyReplicasintegercountReady状態のPod数(status.readyReplicas)
replicaSetAvailableReplicasintegercount使用可能なPod数(status.availableReplicas)
replicaSetSelectorstring-Selectorラベル(spec.selector.matchLabels)

Kubernetesステートフルセット(kube_statefulSet)メトリクス

ステートフルセット(StatefulSet)リソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
statefulSetNamestring-StatefulSetの名前(metadata.name)
namespacestring-StatefulSetが属するネームスペース(metadata.namespace)
statefulSetUidstring-StatefulSetのUID (metadata.uid)
creationTimeintegermilliseconds(ms)StatefulSetの生成時刻(metadata.creationTimestamp)
agestring-StatefulSetの生成後の経過時間

Fields

FieldTypeUnitDescription
replicasintegercount設定されたPod数(spec.replicas)
readyReplicasintegercountReady状態のPod数(status.readyReplicas)
currentReplicasintegercount現在作成されているPod数(status.currentReplicas)
updatedReplicasintegercount更新されたPod数(status.updatedReplicas)
statefulSetSelectorstring-Selectorラベル(spec.selector.matchLabels)

Kubernetesジョブ(kube_job)メトリクス

デプロイメントリソースに関するメタデータとステータス情報をタグ付けして収集します。

Tags

TagTypeUnitDescription
jobNamestring-Jobの名前(metadata.name)
namespacestring-Jobが属するネームスペース(metadata.namespace)
jobUidstring-JobのUID (metadata.uid)
ownerKindstring-上位オブジェクトの種類(例: CronJob)
ownerNamestring-上位オブジェクトの名前
ownerUid string-上位オブジェクトのUID

Fields

FieldTypeUnitDescription
succeededPodsintegercount成功したPod数(status.succeeded)
failedPodsintegercount失敗したPod数(status.failed)
completionTimestring-Jobが完了した時間(status.completionTime.toString())
parallelismintegercount同時に実行されるように設定されたPod数(spec.parallelism)
completionsintegercountJobが完了するために必要なPod実行回数(spec.completions)
backoffLimitintegercount失敗時に再試行可能な最大回数(spec.backoffLimit)
activeDeadlineSecondsintegerseconds(sec)Jobが実行できる最大時間(spec.activeDeadlineSeconds)

Kubernetes NetworkPolicy(kube_network_policy) メトリクス

kube_network_policyカテゴリーは、クラスターのNetworkPolicyオブジェクトをイベントベースで収集します。周期収集ではなく、オブジェクトが追加、変更、削除されるたびに、その時点のスナップショットを送信します。

  • 対象:クラスタープロジェクト、ネームスペースプロジェクト
  • 収集方式:イベントベース

Tags

TagTypeUnitDescription
networkPolicyUidstring-NetworkPolicyのUID(固有値)
networkPolicyNamestring-NetworkPolicyの名前
namespacestring-NetworkPolicyが所属するネームスペース
resourceVersionstring-オブジェクトのリビジョン(metadata.resourceVersion

Fields

FieldTypeUnitDescription
generationlong-オブジェクトの世代(metadata.generation
creationTimeMillislong-オブジェクトの作成時刻(epoch ms)
policyTypeslist-ポリシー種別のリスト
- IngressEgress。空のリストはAPIのデフォルト値であるIngress
selectedPodUidslist-ポリシーが選択したPod UIDのリスト
podSelectormap-ポリシー対象のPodセレクター(matchLabelsmatchExpressions
ingressRuleslist-Ingressルールのリスト
- ルールごとにfromportsを含む
egressRuleslist-Egressルールのリスト
- ルールごとにtoportsを含む
specSchemaVersioninteger-specフィールドのスキーマバージョン
specHashlong-正規化したspecのハッシュ値
- 内容の変更有無の判別用

ルールは入れ子構造で送信し、Kubernetes APIの意味をそのまま保持します。

  • 1つのpeer内のnamespaceSelectorpodSelectorはAND関係です。
  • peerのリストとルールのリストはOR関係です。
  • ルール内の空のfromtoはすべてのpeerを、空のportsはすべてのポートを意味します。
  • peerのipBlockcidrexceptを格納します。
  • ポートはprotocolportTypeportNumberまたはportNameendPortを格納します。

ClusterRoleにnetworkpoliciesの照会権限が必要です。collect_network_policy_enabledオプションで収集をオフにできます。