Hitachi

JP1 Version 13 JP1/Integrated Management 3 - Manager Overview and System Design Guide


3.15.4 Container monitoring function

Container environment monitoring uses different methods to collect operating information depending on monitoring targets, as listed in the following table.

Monitoring target

How to collect operating information

Red Hat OpenShift

User-specific Prometheus

Kubernetes

Amazon Elastic Kubernetes Service (EKS)

Azure Kubernetes Service (AKS)

Azure's monitoring feature (Promitor)

The following describes how operating information is collected for each monitoring target.

Organization of this subsection

(1) Prerequisite operating systems and prerequisite programs

The prerequisite operating systems and prerequisite programs are the same as those for JP1/IM - Agent.

(a) For monitoring containers with user-defined Prometheus

Monitor containers using JP1/IM - Manager and user-defined Prometheus. The JP1/IM - Agent is not used. Therefore, the prerequisite OS conforms to the user's own Prometheus specifications. In addition, the following prerequisite programs are required according to the monitoring target.

- If you want to monitor Red Hat OpenShif
  • Red Hat OpenShift 4.11

- If you want to monitor Kubernetes
  • Kubernetes 1.24

  • kube-state-metrics 2.6.0

  • node_exporter 1.4.0

(b) For monitoring containers using Azure monitoring facility (Promitor)

Monitor containers using JP1/IM - Manager and JP1/IM - Agent. Therefore, the prerequisite OS follows JP1/IM - Manager and JP1/IM - Agent. JP1/IM - Agent prerequisite program is also required.

(2) Container monitoring through user-specific Prometheus

(a) Red Hat OpenShift

In Red Hat OpenShift, Prometheus as a default monitoring component collects operating information from scraping targets (kube-state-metrics, node_exporter, and kubelet) and sends the information to JP1/IM - Manager.

■ Key metric items

The key metric items for Red Hat OpenShift are defined in the metric definition file (initial status) for each scraping target for container monitoring, as shown in the table below. For details, see the description on each metric definition file in Chapter 2. Definition Files in the JP1/Integrated Management 3 - Manager Command, Definition File and API Reference.

Scraping target

Metric definition file

kube-stat-metrics

Container monitoring metric definition file (metrics_kubernetes.conf)

node_exporter

Node exporter metric definition file (metrics_node_exporter.conf)

kubelet

Container monitoring metric definition file (metrics_kubernetes.conf)

You can add more metric items to the metric definition file. The following table shows the metrics you can specify with PromQL statements used within the definition file.

- When kube-stat-metrics is to be scraped

Metric name

Data to be obtained

Label

kube_cronjob_info

Info about cronjob.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

schedule=schedule

concurrency_policy=concurrency-policy

kube_cronjob_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

label_CRONJOB_LABEL=CRONJOB_LABEL

kube_cronjob_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_next_schedule_time

Next time the cronjob should be scheduled. The time after lastScheduleTime, or after the cron job's creation time if it's never been scheduled.

Use this to determine if the job is delayed.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_status_active

Active holds pointers to currently running jobs.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_status_last_schedule_time

LastScheduleTime keeps information of when was the last time the job was successfully scheduled.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_spec_suspend

Suspend flag tells the controller to suspend subsequent executions.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_spec_starting_deadline_seconds

Deadline in seconds for starting the job if it misses scheduled time for any reason.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_cronjob_metadata_resource_version

Resource version representing a specific version of the cronjob.

instance: instance-identifier-string

job: job-name

cronjob: cronjob-name

namespace=cronjob-namespace

kube_daemonset_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_current_number_scheduled

The number of nodes running at least one daemon pod and are supposed to.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_desired_number_scheduled

The number of nodes that should be running the daemon pod.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_available

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_misscheduled

The number of nodes running a daemon pod but are not supposed to.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_ready

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_number_unavailable

The number of nodes that should be running the daemon pod and have none of the daemon pod running and available

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_observed_generation

The most recent generation observed by the daemon set controller.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_status_updated_number_scheduled

The total number of nodes that are running updated daemon pod

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_metadata_generation

Sequence number representing a specific generation of the desired state.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_daemonset_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

label_DAEMONSET_LABEL=DAEMONSET_LABEL

kube_deployment_status_replicas

The number of replicas per deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_ready

The number of ready replicas per deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_available

The number of available replicas per deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_unavailable

The number of unavailable replicas per deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_replicas_updated

The number of updated replicas per deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_observed_generation

The generation observed by the deployment controller.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_status_condition

The current status conditions of a deployment.

instance: instance-identifier-string

job: job-name

deployment=deployment-name

namespace=deployment-namespace

condition=deployment-condition

status=true|false|unknown

kube_deployment_spec_replicas

Number of desired pods for a deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_paused

Whether the deployment is paused and will not be processed by the deployment controller.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_strategy_rollingupdate_max_unavailable

Maximum number of unavailable replicas during a rolling update of a deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_spec_strategy_rollingupdate_max_surge

Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a deployment.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_metadata_generation

Sequence number representing a specific generation of the desired state.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_deployment_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

daemonset=daemonset-name

namespace=daemonset-namespace

kube_job_info

Information about job.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

label_JOB_LABEL=JOB_LABEL

kube_job_owner

Information about the Job's owner.

instance: instance-identifier-string

job: job-name

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

The maximum desired number of pods the job should run at any given time.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_spec_completions

The desired number of successfully finished pods the job should be run with.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_spec_active_deadline_seconds

The duration in seconds relative to the startTime that the job may be active before the system tries to terminate it.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_status_active

The number of actively running pods.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_status_succeeded

The number of pods which reached Phase Succeeded.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_status_failed

The number of pods which reached Phase Failed.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

reason=failure reason

kube_job_status_start_time

StartTime represents time when the job was acknowledged by the Job Manager.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_status_completion_time

CompletionTime represents time when the job was completed.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_job_complete

The job has completed its execution.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

condition=true|false|unknown

kube_job_failed

The job has failed its execution.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

condition=true|false|unknown

kube_job_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_status_replicas

The number of replicas per ReplicaSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_status_fully_labeled_replicas

The number of fully labeled replicas per ReplicaSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_status_ready_replicas

The number of ready replicas per ReplicaSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_status_observed_generation

The generation observed by the ReplicaSet controller.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_spec_replicas

Number of desired pods for a ReplicaSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_metadata_generation

Sequence number representing a specific generation of the desired state.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

replicaset=replicaset-name

namespace=replicaset-namespace

label_REPLICASET_LABEL=REPLICASET_LABEL

kube_replicaset_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_replicaset_owner

Information about the ReplicaSet's owner.

instance: instance-identifier-string

job: job-name

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

The number of replicas per StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_current

The number of current replicas per StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_ready

The number of ready replicas per StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_status_replicas_updated

The number of updated replicas per StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_status_observed_generation

The generation observed by the StatefulSet controller.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_replicas

Number of desired pods for a StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_metadata_generation

Sequence number representing a specific generation of the desired state for the StatefulSet.

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

job_name=job-name

namespace=job-namespace

kube_statefulset_labels

Kubernetes labels converted to Prometheus labels.

instance: instance-identifier-string

job: job-name

statefulset=statefulset-name

namespace=statefulset-namespace

label_STATEFULSET_LABEL=STATEFULSET_LABEL

kube_statefulset_status_current_revision

Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).

instance: instance-identifier-string

job: job-name

statefulset=statefulset-name

namespace=statefulset-namespace

revision=statefulset-current-revision

kube_statefulset_status_update_revision

Indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)

instance: instance-identifier-string

job: job-name

statefulset=statefulset-name

namespace=statefulset-namespace

revision=statefulset-current-revision

kube_namespace_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

namespace=namespace-name

kube_namespace_labels

Kubernetes labels converted to Prometheus labels

instance: instance-identifier-string

job: job-name

namespace=namespace-name

label_NS_LABEL=NS_LABEL

kube_namespace_status_phase

kubernetes namespace status phase

instance: instance-identifier-string

job: job-name

namespace=namespace-name

phase=Active|Terminating

kube_node_info

Information about a cluster node

instance: instance-identifier-string

job: job-name

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 labels converted to Prometheus labels

instance: instance-identifier-string

job: job-name

node=node-address

label_NODE_LABEL=NODE_LABEL

kube_node_spec_unschedulable

Whether a node can schedule new pods

instance: instance-identifier-string

job: job-name

node=node-address

kube_node_spec_taint

The taint of a cluster node.

instance: instance-identifier-string

job: job-name

node=node-address

key=taint-key

value=taint-value

effect=taint-effect

kube_node_status_capacity

The capacity for different resources of a node

instance: instance-identifier-string

job: job-name

node=node-address

resource=resource-name

unit=resource-unit

kube_node_status_allocatable

The allocatable for different resources of a node that are available for scheduling

instance: instance-identifier-string

job: job-name

node=node-address

resource=resource-name

unit=resource-unit

kube_node_status_condition

The condition of a cluster node

instance: instance-identifier-string

job: job-name

node=node-address

condition=node-condition

status=true|false|unknown

kube_node_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

node=node-address

kube_pod_info

Information about pod

instance: instance-identifier-string

job: job-name

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

Start time in unix timestamp for a pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

ip=pod-ip-address

ip_family=4 OR 6

uid=pod-uid

kube_pod_completion_time

Completion time in unix timestamp for a pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_owner

Information about the Pod's owner

instance: instance-identifier-string

job: job-name

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 labels converted to Prometheus labels

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

label_POD_LABEL=POD_LABEL

uid=pod-uid

kube_pod_status_phase

The pods current phase

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

phase=Pending|Running|Succeeded|Failed|Unknown

uid=pod-uid

kube_pod_status_ready

Describes whether the pod is ready to serve requests

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

condition=true|false|unknown

uid=pod-uid

kube_pod_status_scheduled

Describes the status of the scheduling process for the pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

condition=true|false|unknown

uid=pod-uid

kube_pod_container_info

Information about a container in a pod

instance: instance-identifier-string

job: job-name

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

Describes whether the container is currently in waiting state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_waiting_reason

Describes the reason the container is currently in waiting state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

reason=container-waiting-reason

uid=pod-uid

kube_pod_container_status_running

Describes whether the container is currently in running state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_state_started

Start time in unix timestamp for a pod container

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_terminated

Describes whether the container is currently in terminated state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_ready

Describes whether the containers readiness check succeeded

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_container_status_restarts_total

The number of container restarts per container(Counter)

container=container-name

namespace=pod-namespace

instance: instance-identifier-string

job: job-name

pod=pod-name

uid=pod-uid

kube_pod_created

Unix creation timestamp

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_restart_policy

Describes the restart policy in use by this pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

type=Always|Never|OnFailure

uid=pod-uid

kube_pod_init_container_info

Information about an init container in a pod

instance: instance-identifier-string

job: job-name

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

Describes whether the init container is currently in waiting state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_running

Describes whether the init container is currently in running state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_terminated

Describes whether the init container is currently in terminated state

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_ready

Describes whether the init containers readiness check succeeded

instance: instance-identifier-string

job: job-name

container=container-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_init_container_status_restarts_total

The number of restarts for the init container

instance: instance-identifier-string

job: job-name

container=container-name

namespace=pod-namespace

pod=pod-name

uid=pod-uid

kube_pod_spec_volumes_persistentvolumeclaims_info

Information about persistentvolumeclaim volumes in a pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

volume=volume-name

persistentvolumeclaim=persistentvolumeclaim-claimname

uid=pod-uid

kube_pod_spec_volumes_persistentvolumeclaims_readonly

Describes whether a persistentvolumeclaim is mounted read only

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

volume=volume-name

persistentvolumeclaim=persistentvolumeclaim-claimname

uid=pod-uid

kube_pod_status_scheduled_time

Unix timestamp when pod moved into scheduled status

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

kube_pod_status_unschedulable

Describes the unschedulable status for the pod

instance: instance-identifier-string

job: job-name

pod=pod-name

namespace=pod-namespace

uid=pod-uid

- When node_exporter is to be scraped

See Key metric items in 3.15.1(1)(d) Node exporter (Linux performance data collection capability).

- When kubelet is to be scraped

Metric name

Data to be obtained

Label

container_blkio_device_usage_total

Blkio device bytes usage

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

major: major-identifier

minor: minor-identifier

operation: operation (Async, Sync, Discard, Read, Write, or Total)

container_cpu_cfs_periods_total

Number of elapsed enforcement period intervals

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_cpu_cfs_throttled_periods_total

Number of throttled period intervals

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_cpu_cfs_throttled_seconds_total

Total time duration the container has been throttled

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_cpu_system_seconds_total

Cumulative system cpu time consumed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_cpu_usage_seconds_total

Cumulative cpu time consumed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

cpu: CPU-name

container_cpu_user_seconds_total

Cumulative user cpu time consumed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_fs_inodes_free

Number of available Inodes

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_inodes_total

Total number of Inodes

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_io_current

Number of I/Os currently in progress

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_io_time_seconds_total

Cumulative count of seconds spent doing I/Os

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_io_time_weighted_seconds_total

Cumulative weighted I/O time

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_limit_bytes

Number of bytes that can be consumed by the container on this filesystem

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_reads_bytes_total

Cumulative count of bytes read

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_read_seconds_total

Cumulative count of seconds spent reading

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_reads_merged_total

Cumulative count of reads merged

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_reads_total

Cumulative count of reads completed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_sector_reads_total

Cumulative count of sector reads completed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_sector_writes_total

Cumulative count of sector writes completed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_usage_bytes

Number of bytes that are consumed by the container on this filesystem

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_writes_bytes_total

Cumulative count of bytes written

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_write_seconds_total

Cumulative count of seconds spent writing

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_writes_merged_total

Cumulative count of writes merged

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_fs_writes_total

Cumulative count of writes completed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

device: device-name

container_memory_cache

Total page cache memory

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_failcnt

Number of memory usage hits limits

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_failures_total

Cumulative count of memory allocation failures

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

failure_type: cause-of-failure (pgfault or pgmajfault)

scope: scope (container or hierarchy)

container_memory_mapped_file

Size of memory mapped files

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_max_usage_bytes

Maximum memory usage recorded

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_rss

Size of RSS

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_swap

Container swap usage

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_usage_bytes

Current memory usage, including all memory regardless of when it was accessed

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_memory_working_set_bytes

Current working set

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_cpu_period

CPU period of the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_cpu_quota

CPU quota of the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_cpu_shares

CPU share of the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_memory_limit_bytes

Memory limit for the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_memory_reservation_limit_bytes

Memory reservation limit for the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

container_spec_memory_swap_limit_bytes

Memory swap limit for the container

id: container-identifier

name: container-name

image: image-name

container: container-name (defined as kubernetes)

namespace: namespace

pod: pod-name

(b) Kubernetes

In Kubernetes, the user-specific Prometheus that monitors the Kubernetes environment collects operating information from scraping targets (kube-state-metrics, node_exporter, and kubelet) and sends the information to JP1/IM - Manager.

The following table lists the names of components to be monitored by Kubernetes.

Configuration component name

Monitoring target

Component name

Cluster

Y

Cluster

Control Plane

Host

Y#1

Node

Service (such as apiserver)

--

--

Worker node

Host

Y#1

Node

Service (such as apiserver)

--

--

Container

--

--

Namespace

Y#1

Namespace

Workload#2

Y#1

See the table in #2.

Pod

Y

Pod

Legend:

Y: Monitored, --: Not monitored

#1

Not supported by AKS.

#2

The workloads can be divided into the six types shown in the following table.

Type of workload

Component name

CronJob

CronJob

Job

Job

DaemonSet

DaemonSet

Deployment

Deployment

ReplicaSet

ReplicaSet

StatefulSet

StatefulSet

■ Key metric items

See Key metric items in 3.15.4(2)(a) Red Hat OpenShift.

(c) Amazon Elastic Kubernetes Service (EKS)

In Amazon Elastic Kubernetes Service (EKS), Prometheus or an AWS Distro for OpenTelemetry (ADOT) agent (which uses Prometheus receiver and exporter) collects information from scraping targets (kube-state-metrics, node_exporter, and kubelet) and sends the information to JP1/IM - Manager.

If you want to monitor the EKS on Fargate service, you need to use the ADOT agent in order to collect performance data of pods, as shown in the following table.

Collection tool

Service to be monitored

EKS on EC2

EKS on Fargate

Prometheus

Y

C

ADOT agent

Y

Y

Legend:

Y: The tool can collect metrics (and pods' performance data can be collected).

C (conditional): The tool can collect metrics (whereas pods' performance data cannot be collected).

■ Key metric items

See Key metric items in 3.15.4(2)(a) Red Hat OpenShift.

(3) Container monitoring function using Azure monitoring function (Promitor)

(a) Azure Kubernetes Service (AKS)

To monitor Azure Kubernetes Service (AKS), the Azure monitoring capability (Promitor) is used to collect default AKS information. For details on Promitor, see 3.15.1(1)(h) Promitor (Azure Monitor performance data collection capability).

■ Key metric items

he key metric items when Promitor monitors AKS are defined in the Promitor metric definition file (initial status). For details, see Promitor metric definition file (metrics_promitor.conf) in the JP1/Integrated Management 3 - Manager Command, Definition File and API Reference.

You can add more metric items to the Promitor metric definition file. For details on the AKS-monitoring metrics you can specify with PromQL statements used within the definition file, see Metrics you can collect in 3.15.1(1)(h) Promitor (Azure Monitor performance data collection capability).