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).