

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EKS 和 Kubernetes 效能日誌事件中的相關欄位
<a name="Container-Insights-reference-performance-entries-EKS"></a>

對於 Amazon EKS 和 Kubernetes，容器化的 CloudWatch 代理程式會以效能日誌事件的形式發出資料。這可讓 CloudWatch 擷取和存放高基數資料。CloudWatch 使用效能日誌事件中的資料來建立在叢集、節點、與 pod 層級彙總的 CloudWatch 指標，而不需遺失精細的詳細資訊。

下表列出在這些效能日誌事件中與容器洞見指標資料集合相關的欄位。您可以使用 CloudWatch Logs 來查詢任何這些欄位以收集資料或調查問題。如需詳細資訊，請參閱[搭配 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。


| Type | 日誌欄位 | 來源 | 公式或備註 | 
| --- | --- | --- | --- | 
| Pod | `pod_cpu_utilization` | 計算 | 公式：`pod_cpu_usage_total / node_cpu_limit` | 
| Pod | `pod_cpu_usage_total`<br />`pod_cpu_usage_total` 的報告單位為 millicore。 | cadvisor |   | 
| Pod | `pod_cpu_limit` | 計算 | 公式：`sum(container_cpu_limit)`<br />`sum(container_cpu_limit)` 包含已完成的 Pod。<br />如果 pod 中的任何容器未定義 CPU 限制，這個欄位就不會在日誌事件中顯示。此項包含[初始化容器](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)。 | 
| Pod | `pod_cpu_request` | 計算 | 公式：`sum(container_cpu_request)`<br />不保證要設定 `container_cpu_request`。只有已設定的項目會包含在總和中。 | 
| Pod | `pod_cpu_utilization_over_pod_limit` | 計算 | 公式：`pod_cpu_usage_total / pod_cpu_limit` | 
| Pod | `pod_cpu_reserved_capacity` | 計算 | 公式：`pod_cpu_request / node_cpu_limit` | 
| Pod | `pod_memory_utilization` | 計算 | 公式：`pod_memory_working_set / node_memory_limit`<br />它是 pod 記憶體使用量佔節點記憶體限制的百分比。 | 
| Pod | `pod_memory_working_set` | cadvisor |   | 
| Pod | `pod_memory_limit` | 計算 | 公式：`sum(container_memory_limit)`<br />如果 pod 中的任何容器未定義記憶體限制，這個欄位就不會在日誌事件中顯示。此項包含[初始化容器](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)。 | 
| Pod | `pod_memory_request` | 計算 | 公式：`sum(container_memory_request)`<br />不保證要設定 `container_memory_request`。只有已設定的項目會包含在總和中。 | 
| Pod | `pod_memory_utilization_over_pod_limit` | 計算 | 公式：`pod_memory_working_set / pod_memory_limit`<br />如果 pod 中的任何容器未定義記憶體限制，這個欄位就不會在日誌事件中顯示。此項包含[初始化容器](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)。 | 
| Pod | `pod_memory_reserved_capacity` | 計算 | 公式：`pod_memory_request / node_memory_limit` | 
| Pod | `pod_network_tx_bytes` | 計算 | 公式：`sum(pod_interface_network_tx_bytes)`<br />此資料可用於每個 pod 的所有網路介面。CloudWatch 代理程式會計算總和並新增指標擷取規則。 | 
| Pod | `pod_network_rx_bytes` | 計算 | 公式：`sum(pod_interface_network_rx_bytes)` | 
| Pod | `pod_network_total_bytes` | 計算 | 公式：`pod_network_rx_bytes + pod_network_tx_bytes` | 
| PodNet | `pod_interface_network_rx_bytes` | cadvisor | 此資料是 pod 網路介面的網路 rx 每秒位元組。 | 
| PodNet | `pod_interface_network_tx_bytes` | cadvisor | 此資料是 pod 網路介面的網路 tx 每秒位元組。 | 
| 容器 | `container_cpu_usage_total` | cadvisor |   | 
| 容器 | `container_cpu_limit` | cadvisor | 不保證要設定。如果未設定則不會發出。 | 
| 容器 | `container_cpu_request` | cadvisor | 不保證要設定。如果未設定則不會發出。 | 
| 容器 | `container_memory_working_set` | cadvisor |   | 
| 容器 | `container_memory_limit` | Pod | 不保證要設定。如果未設定則不會發出。 | 
| 容器 | `container_memory_request` | Pod | 不保證要設定。如果未設定則不會發出。 | 
| 節點 | `node_cpu_utilization` | 計算 | 公式：`node_cpu_usage_total / node_cpu_limit` | 
| 節點 | `node_cpu_usage_total` | cadvisor |   | 
| 節點 | `node_cpu_limit` | /proc |   | 
| 節點 | `node_cpu_request` | 計算 | 公式：`sum(pod_cpu_request)`<br />對於 cronjobs，`node_cpu_request` 也包含來自已完成 Pod 的請求。這可能會導致較高的 `node_cpu_reserved_capacity` 值。 | 
| 節點 | `node_cpu_reserved_capacity` | 計算 | 公式：`node_cpu_request / node_cpu_limit` | 
| 節點 | `node_memory_utilization` | 計算 | 公式：`node_memory_working_set / node_memory_limit` | 
| 節點 | `node_memory_working_set` | cadvisor |   | 
| 節點 | `node_memory_limit` | /proc |   | 
| 節點 | `node_memory_request` | 計算 | 公式：`sum(pod_memory_request)` | 
| 節點 | `node_memory_reserved_capacity` | 計算 | 公式：`node_memory_request / node_memory_limit` | 
| 節點 | `node_network_rx_bytes` | 計算 | 公式：`sum(node_interface_network_rx_bytes)` | 
| 節點 | `node_network_tx_bytes` | 計算 | 公式：`sum(node_interface_network_tx_bytes)` | 
| 節點 | `node_network_total_bytes` | 計算 | 公式：`node_network_rx_bytes + node_network_tx_bytes` | 
| 節點 | `node_number_of_running_pods` | Pod 清單 |   | 
| 節點 | `node_number_of_running_containers` | Pod 清單 |   | 
| NodeNet | `node_interface_network_rx_bytes` | cadvisor | 此資料是工作者節點網路介面的網路 rx 每秒位元組。 | 
| NodeNet | `node_interface_network_tx_bytes` | cadvisor | 此資料是工作者節點網路介面的網路 tx 每秒位元組。 | 
| NodeFS | `node_filesystem_capacity` | cadvisor |   | 
| NodeFS | `node_filesystem_usage` | cadvisor |   | 
| NodeFS | `node_filesystem_utilization` | 計算 | 公式：`node_filesystem_usage / node_filesystem_capacity`<br />可根據裝置名稱提供此資料。 | 
| 叢集 | `cluster_failed_node_count` | API 伺服器 |   | 
| 叢集 | `cluster_node_count` | API 伺服器 |   | 
| 服務 | `service_number_of_running_pods` | API 伺服器 |   | 
| `Namespace` | `namespace_number_of_running_pods` | API 伺服器 |   | 

## 指標計算範例
<a name="Container-Insights-calculation-examples"></a>

本區段包含的範例會說明先前資料表中部分值的計算方式。

假設您有一個處於以下狀態的叢集。

```
Node1
   node_cpu_limit = 4
   node_cpu_usage_total = 3
   
   Pod1
     pod_cpu_usage_total = 2
     
     Container1
        container_cpu_limit = 1
        container_cpu_request = 1
        container_cpu_usage_total = 0.8
        
     Container2
        container_cpu_limit = null
        container_cpu_request = null
        container_cpu_usage_total = 1.2
        
   Pod2
     pod_cpu_usage_total = 0.4
     
     Container3
        container_cpu_limit = 1
        container_cpu_request = 0.5
        container_cpu_usage_total = 0.4
        
Node2
   node_cpu_limit = 8
   node_cpu_usage_total = 1.5
   
   Pod3
     pod_cpu_usage_total = 1
     
     Container4
        container_cpu_limit = 2
        container_cpu_request = 2
        container_cpu_usage_total = 1
```

下表顯示如何使用此資料計算 pod CPU 指標。


| 指標 | 公式 | Pod1 | Pod2 | Pod3 | 
| --- | --- | --- | --- | --- | 
| `pod_cpu_utilization` | `pod_cpu_usage_total / node_cpu_limit` | 2 / 4 = 50% | 0.4 / 4 = 10% | 1 / 8 = 12.5% | 
| `pod_cpu_utilization_over_pod_limit` | `pod_cpu_usage_total / sum(container_cpu_limit)` | 不適用，因為未定義 `Container2` 的 CPU 限制 | 0.4 / 1 = 40% | 1 / 2 = 50% | 
| `pod_cpu_reserved_capacity` | `sum(container_cpu_request) / node_cpu_limit` | (1 \+ 0) / 4 = 25% | 0.5 / 4 = 12.5% | 2 / 8 = 25% | 

下表顯示如何使用此資料計算節點 CPU 指標。


| 指標 | 公式 | Node1 | Node2 | 
| --- | --- | --- | --- | 
| `node_cpu_utilization` | `node_cpu_usage_total / node_cpu_limit` | 3 / 4 = 75% | 1.5 / 8 = 18.75% | 
| `node_cpu_reserved_capacity` | `sum(pod_cpu_request) / node_cpu_limit` | 1.5 / 4 = 37.5% | 2 / 8 = 25% | 