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の作成時間よりあとの時間
|
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性能情報収集機能)」の「収集できるメトリック」を参照してください。