Understanding AWS EKS CloudWatch pod_cpu_utilization: What the Metric Really Means
This article explains the AWS CloudWatch Container Insights pod_cpu_utilization metric, its calculation as a percentage of node CPU, compares it with kubectl top, and introduces the related Pod CPU utilization over pod limit metric for effective Kubernetes resource monitoring.
1. What is the pod_cpu_utilization metric?
The metric name is ContainerInsights pod_cpu_utilization, measured in percent (%). It represents the average percentage of node‑total CPU that a specific pod (e.g., exchange‑app‑api) consumes during a defined period (typically 1 minute).
Statistic: CloudWatch provides Min, Max, Average, Sum, Last. The Average (e.g., 13.456%) is the average CPU usage of the pod over the period.
Unit: Percent (%), indicating the pod’s CPU share of the node’s total CPU.
Note: Early documentation may claim the metric is relative to the pod’s request/limit, but AWS documentation and tests confirm it is node‑based.
2. How is the percentage calculated?
pod_cpu_utilization = (Pod actual CPU usage / Node total CPU) * 100%Example: on a node with 4 cores (4000m), a pod using 400m yields 10% utilization.
3. Relationship with kubectl top
Different units: kubectl top shows CPU in millicores (m), the absolute usage.
CloudWatch pod_cpu_utilization shows a percentage of node CPU.
Different time dimensions: kubectl top provides a real‑time snapshot.
CloudWatch aggregates over a period (e.g., 1 minute) and can show average, max, etc.
4. Connection to node CPU
The metric reflects the proportion of the node’s total CPU consumed by the pod; the sum of all pods’ percentages never exceeds 100% of the node.
5. “Pod CPU utilization over pod limit” metric
This metric shows the percentage by which a pod’s actual CPU usage exceeds its configured CPU limit. A value above 0% indicates the pod is throttled or may affect performance.
Example: limit 500m, actual 600m → (600m‑500m)/500m × 100% = 20%.
Helps identify pods that frequently exceed limits for resource‑allocation tuning.
Summary
CloudWatch Container Insights pod_cpu_utilization reports the average CPU usage of a pod as a percentage of the node’s total CPU over a defined period. Compared with kubectl top, it differs in unit (percent vs millicores) and granularity (average vs snapshot). Monitoring both metrics, especially the “Pod CPU utilization over pod limit,” enables more accurate resource monitoring and optimization in Kubernetes clusters.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Ops Development & AI Practice
DevSecOps engineer sharing experiences and insights on AI, Web3, and Claude code development. Aims to help solve technical challenges, improve development efficiency, and grow through community interaction. Feel free to comment and discuss.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
