Hitachi

JP1 Version 13 JP1/Integrated Management 3 - Manager 導入・設計ガイド


3.15.4 コンテナ監視機能

コンテナ環境の監視は,次の表に示すように,監視対象によって稼働情報の収集方法が異なります。

監視対象

稼働情報の収集方法

Red Hat OpenShift

ユーザー独自のPrometheus

Kubernetes

Amazon Elastic Kubernetes Service(EKS)

Azure Kubernetes Service(AKS)

Azure監視機能(Promitor)

監視対象ごとの稼働情報の収集方法について,次に説明します。

〈この項の構成〉

(1) 前提OSと前提プログラム

前提OSおよび前提プログラムは,JP1/IM - Agentと同じです。

(a) ユーザー独自のPrometheusによるコンテナ監視の場合

JP1/IM - Managerとユーザー独自のPrometheusを使用してコンテナを監視します。JP1/IM - Agentは使用しません。そのため,前提OSは,ユーザー独自のPrometheusの仕様に準じます。また,次に示す監視対象に応じた前提プログラムが必要です。

■Red Hat OpenShiftを監視する場合
  • Red Hat OpenShift 4.11

■Kubernetesを監視する場合
  • Kubernetes 1.24

  • kube-state-metrics 2.6.0

  • node_exporter 1.4.0

(b) Azure監視機能(Promitor)によるコンテナ監視の場合

JP1/IM - ManagerとJP1/IM - Agentを使用してコンテナを監視します。そのため,前提OSはJP1/IM - ManagerおよびJP1/IM - Agentに準じます。また,JP1/IM - Agentの前提プログラムが必要です。

(2) ユーザー独自のPrometheusによるコンテナ監視機能

(a) Red Hat OpenShift

Red Hat OpenShiftでは,デフォルトのモニタリングコンポーネントに含まれるPrometheusがスクレイプ対象(kube-state-metrics,node_exporter,kubelet)から取得した稼働情報を,JP1/IM - Managerに送信します。

■ 主な取得項目

Red Hat OpenShiftの主な取得項目は,次の表に示すコンテナ監視のスクレイプ対象ごとのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の各メトリック定義ファイルの説明を参照してください。

スクレイプ対象

メトリック定義ファイル

kube-stat-metrics

コンテナ監視のメトリック定義ファイル(metrics_kubernetes.conf)

node_exporter

Node exporterのメトリック定義ファイル(metrics_node_exporter.conf)

kubelet

コンテナ監視のメトリック定義ファイル(metrics_kubernetes.conf)

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。

■スクレイプ対象がkube-stat-metricsの場合

メトリック名

取得する内容

ラベル

kube_cronjob_info

CronJobに関する情報

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

schedule=schedule

concurrency_policy=concurrency-policy

kube_cronjob_labels

Prometheusラベルに変換されたKubernetesラベル

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

label_CRONJOB_LABEL=CRONJOB_LABEL

kube_cronjob_created

Unix作成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_next_schedule_time

CronJobがスケジュールされている場合はlastScheduleTimeよりあとの時間,スケジュールされていない場合はCronJobの作成時間よりあとの時間

これを利用してJobが遅延しているかどうかを判断します。

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_status_active

現在実行中のJobへのポインター

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_status_last_schedule_time

Jobが最後にスケジュールされたときの情報

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_spec_suspend

コントローラーに後続の実行を一時停止する指示

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_spec_starting_deadline_seconds

何らかの理由でスケジュールされた時間に間に合わなかった場合に,Jobを開始する期限

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_metadata_resource_version

CronJobの特定のバージョンを示すリソースバージョン

instance: インスタンス識別文字列

job: ジョブ名

cronjob: cronjob-name

namespace=cronjob-namespace

kube_daemonset_created

Unix作成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_current_number_scheduled

1つ以上のデーモンポッドが動作しているはずのノードの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_desired_number_scheduled

デーモンポッドを動作させるべきノードの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_available

1つ以上のデーモンポッドが動作し,利用可能であるべきノード数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_misscheduled

デーモンポッドが動作しているが,想定していないノードの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_ready

デーモンポッドを実行し,1つ以上のデーモンポッドが実行可能な状態にあるべきノードの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_unavailable

デーモンポッドを実行すべきノードで,デーモンポッドが実行されておらず利用可能なノードの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_observed_generation

daemon setコントローラーが観測した直近の生成

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_updated_number_scheduled

更新されたデーモンポッド

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_metadata_generation

希望する状態の特定の生成を表すシーケンス番号

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

label_DAEMONSET_LABEL=DAEMONSET_LABEL

kube_deployment_status_replicas

Deploymentごとのレプリカの数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_ready

Deploymentごとの準備レプリカ数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_available

Deploymentごとの利用可能なレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_unavailable

Deploymentごとの利用不可能なレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_updated

Deploymentごとの更新されたレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_observed_generation

Deploymentコントローラーが観測した生成

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_condition

Deploymentの現在の状態

instance: インスタンス識別文字列

job: ジョブ名

deployment=deployment-name

namespace=deployment-namespace

condition=deployment-condition

status=true|false|unknown

kube_deployment_spec_replicas

Deploymentの必要なポッド数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_paused

Deploymentが一時停止され,Deploymentコントローラーで処理されないかどうか

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_strategy_rollingupdate_max_unavailable

Deploymentのローリングアップデート中に,利用できないレプリカの最大数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_strategy_rollingupdate_max_surge

Deploymentのローリングアップデート中に,希望するレプリカの数を超えてスケジュールできる最大数

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_metadata_generation

希望する状態の特定の生成を表すシーケンス番号

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_created

Unix作成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

daemonset=daemonset-name

namespace=daemonset-namespace

kube_job_info

Jobの情報

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

label_JOB_LABEL=JOB_LABEL

kube_job_owner

Jobのオーナーの情報

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

owner_kind=owner kind

owner_name=owner name

owner_is_controller=whether owner is controller

kube_job_spec_parallelism

Jobが任意の時間に実行すべきpodの最大希望数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_spec_completions

Jobの実行に必要な正常に終了したポッドの数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_spec_active_deadline_seconds

システムが終了させようとする前にJobがアクティブである可能性がある開始時間からの秒数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_status_active

アクティブに動作しているポッド数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_status_succeeded

Phase Succceededに到達したポッド数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_status_failed

Phase Failedに到達したポッド数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

reason=failure reason

kube_job_status_start_time

ジョブマネージャーによってJobが承認された時刻

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_status_completion_time

Jobが完了した時刻

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_job_complete

Jobの実行が完了

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

condition=true|false|unknown

kube_job_failed

Jobの実行に失敗

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

condition=true|false|unknown

kube_job_created

Unix作成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_status_replicas

ReplicaSetごとのレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_status_fully_labeled_replicas

ReplicaSetごとの完全ラベル付けされたレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_status_ready_replicas

ReplicaSetごとの準備レプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_status_observed_generation

ReplicaSetコントローラーが観測した生成

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_spec_replicas

ReplicaSetが必要とするポッド数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_metadata_generation

希望する状態の特定の生成を表すシーケンス番号

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

replicaset=replicaset-name

namespace=replicaset-namespace

label_REPLICASET_LABEL=REPLICASET_LABEL

kube_replicaset_created

Unix作成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_replicaset_owner

ReplicaSetのオーナー情報

instance: インスタンス識別文字列

job: ジョブ名

replicaset=replicaset-name

namespace=replicaset-namespace

owner_kind=owner kind

owner_name=owner name

owner_is_controller=whether owner is controller

kube_statefulset_status_replicas

StatefulSetごとのレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_current

StatefulSetごとの現在のレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_ready

StatefulSetごとの準備レプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_updated

StatefulSetごとのアップデートレプリカ数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_status_observed_generation

StatefulSetコントローラーが観測した生成

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_replicas

StatefulSetが必要とするポッド数

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_metadata_generation

StatefulSetの希望する状態の生成を表すシーケンス番号

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_created

Unix生成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

job_name=job-name

namespace=job-namespace

kube_statefulset_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

statefulset=statefulset-name

namespace=statefulset-namespace

label_STATEFULSET_LABEL=STATEFULSET_LABEL

kube_statefulset_status_current_revision

0,currentReplicasの順でポッドを生成するために使用されるStatefulSetのバージョン

instance: インスタンス識別文字列

job: ジョブ名

statefulset=statefulset-name

namespace=statefulset-namespace

revision=statefulset-current-revision

kube_statefulset_status_update_revision

replicas-updateReplicas,replicasの順でポッドを生成するために使用されるStatefulSetのバージョン

instance: インスタンス識別文字列

job: ジョブ名

statefulset=statefulset-name

namespace=statefulset-namespace

revision=statefulset-current-revision

kube_namespace_created

Unix生成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

namespace=namespace-name

kube_namespace_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

namespace=namespace-name

label_NS_LABEL=NS_LABEL

kube_namespace_status_phase

kubernetes名前空間の状態フェーズ

instance: インスタンス識別文字列

job: ジョブ名

namespace=namespace-name

phase=Active|Terminating

kube_node_info

クラスターノードの情報

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

kernel_version=kernel-version

os_image=os-image-name

container_runtime_version=container-runtime-and-version-combination

kubelet_version=kubelet-version

kubeproxy_version=kubeproxy-version

pod_cidr=pod-cidr

provider_id=provider-id

system_uuid=system-uuid

internal_ip=internal-ip

kube_node_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

label_NODE_LABEL=NODE_LABEL

kube_node_spec_unschedulable

ノードが新しいポッドをスケジュールできるかどうか

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

kube_node_spec_taint

クラスターノードのtaint

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

key=taint-key

value=taint-value

effect=taint-effect

kube_node_status_capacity

ノードの異なるリソースに対する容量

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

resource=resource-name

unit=resource-unit

kube_node_status_allocatable

スケジュール可能なノードの異なるリソースに割り当てることが可能な状態

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

resource=resource-name

unit=resource-unit

kube_node_status_condition

クラスターノードの状態

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

condition=node-condition

status=true|false|unknown

kube_node_created

Unix生成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

node=node-address

kube_pod_info

ポッドの情報

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

host_ip=host-ip

pod_ip=pod-ip

node=node-name

created_by_kind=created_by_kind

created_by_name=created_by_name

uid=pod-uid

priority_class=priority_class

host_network=host_network

kube_pod_start_time

unixタイムスタンプにおけるポッドの開始時間

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

ip=pod-ip-address

ip_family=4 OR 6

uid=pod-uid

kube_pod_completion_time

unixタイムスタンプにおけるポッドの完了時間

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_owner

ポッドのオーナー情報

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

owner_kind=owner kind

owner_name=owner name

owner_is_controller=whether owner is controller

uid=pod-uid

kube_pod_labels

KubernetesのラベルをPrometheusのラベルに変換したもの

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

label_POD_LABEL=POD_LABEL

uid=pod-uid

kube_pod_status_phase

ポッドの現在のフェーズ

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

phase=Pending|Running|Succeeded|Failed|Unknown

uid=pod-uid

kube_pod_status_ready

ポッドがリクエストを処理する準備ができているかどうか

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

condition=true|false|unknown

uid=pod-uid

kube_pod_status_scheduled

ポッドのスケジューリングプロセスの状態

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

condition=true|false|unknown

uid=pod-uid

kube_pod_container_info

ポッド内のコンテナの情報

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

image=image-name

image_id=image-id

image_spec=image-spec

container_id=containerid

uid=pod-uid

kube_pod_container_status_waiting

コンテナが現在待機状態かどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_waiting_reason

コンテナが現在待機状態である理由

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

reason=container-waiting-reason

uid=pod-uid

kube_pod_container_status_running

コンテナが現在実行状態かどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_state_started

Unitタイムスタンプにおけるポッドコンテナの開始時間

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_terminated

コンテナが現在終了状態かどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_ready

コンテナのreadinessチェックが成功したかどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_restarts_total

コンテナごとの再開したコンテナの数(累積値)

container=container-name

namespace=pod-namespace

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

uid=pod-uid

kube_pod_created

Unix生成タイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_restart_policy

ポッドで使用されている再起動ポリシー

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

type=Always|Never|OnFailure

uid=pod-uid

kube_pod_init_container_info

ポッド内のinitコンテナの情報

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

image=image-name

image_id=image-id

image_spec=image-spec

container_id=containerid

uid=pod-uid

kube_pod_init_container_status_waiting

initコンテナが現在待機状態かどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_running

initコンテナが現在実行状態であるかどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_terminated

initコンテナが現在終了状態であるかどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_ready

initコンテナのreadinessチェックが成功したかどうか

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_restarts_total

initコンテナが再開した数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

container=container-name

namespace=pod-namespace

pod=pod-name

uid=pod-uid

kube_pod_spec_volumes_persistentvolumeclaims_info

ポッド内の永続ボリュームの情報

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

volume=volume-name

persistentvolumeclaim=persistentvolumeclaim-claimname

uid=pod-uid

kube_pod_spec_volumes_persistentvolumeclaims_readonly

永続ボリュームが読み込み権限だけでマウントされているかどうか

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

volume=volume-name

persistentvolumeclaim=persistentvolumeclaim-claimname

uid=pod-uid

kube_pod_status_scheduled_time

ポッドがスケジュール状態に移行したときのUnixタイムスタンプ

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_status_unschedulable

ポッドのスケジュールできない状態

instance: インスタンス識別文字列

job: ジョブ名

pod=pod-name

namespace=pod-namespace

uid=pod-uid

■スクレイプ対象がnode_exporterの場合

3.15.1(1)(d)Node exporter(Linux性能情報収集機能)」の「主な取得項目」を参照してください。

■スクレイプ対象がkubeletの場合

メトリック名

取得する内容

ラベル

container_blkio_device_usage_total

ブロックI/Oデバイスの使用バイト数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

major: メジャーID

minor: マイナーID

operation: オペレーション(Async/Sync/Discard/Read/Write/Total)

container_cpu_cfs_periods_total

施行経過期間の間隔数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_cpu_cfs_throttled_periods_total

絞られた期間の間隔数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_cpu_cfs_throttled_seconds_total

コンテナが絞られた合計時間(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_cpu_system_seconds_total

累積システムCPU消費時間(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_cpu_usage_seconds_total

累積CPU消費時間(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

cpu: CPU名

container_cpu_user_seconds_total

累積ユーザCPU消費時間(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_fs_inodes_free

利用可能なInode数

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_inodes_total

合計Inode数

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_io_current

現在処理中のI/O数

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_io_time_seconds_total

累積I/O秒数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_io_time_weighted_seconds_total

累積重みづけI/O時間(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_limit_bytes

コンテナがこのファイルシステムで消費できるバイト数

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_reads_bytes_total

累積読み込みバイト数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_read_seconds_total

累積読み込み秒数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_reads_merged_total

マージされた書き込み累積数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_reads_total

累積読み込み完了数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_sector_reads_total

累積セクタ読み込み完了数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_sector_writes_total

累積セクタ書き込み完了数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_usage_bytes

コンテナがこのファイルシステムで消費したバイト数

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_writes_bytes_total

累積書き込みバイト数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_write_seconds_total

累積書き込み秒数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_writes_merged_total

マージされた書き込み累積数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_fs_writes_total

累積書き込み完了数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

device: デバイス名

container_memory_cache

合計ページキャッシュメモリ

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_failcnt

メモリ使用量制限のヒット数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_failures_total

累積メモリ割り当て失敗数(累積値)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

failure_type: 失敗原因(pgfault/pgmajfault)

scope: スコープ(container/hierarchy)

container_memory_mapped_file

メモリマップトファイルのサイズ

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_max_usage_bytes

記録された最大メモリ使用量

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_rss

RSSのサイズ

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_swap

コンテナスワップ使用量

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_usage_bytes

現在のメモリ使用量(いつアクセスされたかは問わず,すべてのメモリを含む)

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_memory_working_set_bytes

現在のワーキングセット

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_cpu_period

CPU制限時間

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_cpu_quota

CPUクォータ

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_cpu_shares

CPUシェア

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_memory_limit_bytes

メモリ制限

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_memory_reservation_limit_bytes

メモリ予約制限

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

container_spec_memory_swap_limit_bytes

メモリスワップ制限

id: コンテナID

name: コンテナ名

image: イメージ名

container: コンテナ名(kubernetes定義)

namespace: ネームスペース

pod: ポッド名

(b) Kubernetes

Kubernetesでは,Kubernetes環境を監視しているユーザー独自のPrometheusがスクレイプ対象(kube-state-metrics,node_exporter,kubelet)から取得した稼働情報を,JP1/IM - Managerに送信します。

Kubernetesの監視対象のコンポーネント名を,次の表に示します。

構成要素名

監視対象

コンポーネント名

クラスタ

Cluster

Control Plane

ホスト

※1

Node

サービス(apiserverなど)

ワーカーノード

ホスト

※1

Node

サービス(apiserverなど)

コンテナ

Namespace

※1

Namespace

ワークロード※2

※1

注※2の表を参照してください。

ポッド

Pod

(凡例)

○:監視する −:監視しない

注※1

AKSでは取得できません。

注※2

ワークロードには,次の6つの種別があります。

ワークロードの種別

コンポーネント名

CronJob

CronJob

Job

Job

DaemonSet

DaemonSet

Deployment

Deployment

ReplicaSet

ReplicaSet

StatefulSet

StatefulSet

■ 主な取得項目

3.15.4(2)(a)Red Hat OpenShift」の「主な取得項目」を参照してください。

(c) Amazon Elastic Kubernetes Service(EKS)

Amazon Elastic Kubernetes Service(EKS)では,PrometheusまたはADOT(AWS Distro for OpenTelemetry)エージェント(Prometheus receiverとexporterを使用)がスクレイプ対象(kube-state-metrics,node_exporter,kubelet)から収集した情報を,JP1/IM - Managerに送信します。

なお,次の表に示すように,監視対象のサービスがEKS on Fargateの場合,ポッドの性能情報をするためには,ADOTエージェントを使用する必要があります。

収集ツール

監視対象のサービス

EKS on EC2

EKS on Fargate

Prometheus

ADOTエージェント

(凡例)

○:メトリクスを収集できます(ポッドの性能情報を取得できます)。

△:メトリクスを収集できます(ポッドの性能情報を取得できません)。

■ 主な取得項目

3.15.4(2)(a)Red Hat OpenShift」の「主な取得項目」を参照してください。

(3) Azure監視機能(Promitor)によるコンテナ監視機能

(a) Azure Kubernetes Service(AKS)

Azure Kubernetes Service(AKS)の監視では,Azure監視機能(Promitor)を使用して,AKSのデフォルトの情報を取得します。Promitorの詳細については,「3.15.1(1)(h)Promitor(Azure Monitor性能情報収集機能)」を参照してください。

■ 主な取得項目

PromitorによるAKS監視の主な取得項目は,Promitorのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Promitorのメトリック定義ファイル(metrics_promitor.conf)」を参照してください。

Promitorのメトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるAKS監視のメトリックについては,「3.15.1(1)(h)Promitor(Azure Monitor性能情報収集機能)」の「収集できるメトリック」を参照してください。