Amazon EKS 和 Kubernetes 效能日誌事件中的相關欄位 - Amazon CloudWatch

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

Amazon EKS 和 Kubernetes 效能日誌事件中的相關欄位

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

下表列出在這些效能日誌事件中與容器洞見指標資料集合相關的欄位。您可以使用 CloudWatch Logs 來查詢任何這些欄位以收集資料或調查問題。如需詳細資訊,請參閱搭配 CloudWatch Logs Insights 分析日誌資料

Type 日誌欄位 來源 公式或備註

Pod

pod_cpu_utilization

計算

公式:pod_cpu_usage_total / node_cpu_limit

Pod

pod_cpu_usage_total

pod_cpu_usage_total 的報告單位為 millicore。

cadvisor

Pod

pod_cpu_limit

計算

公式:sum(container_cpu_limit)

sum(container_cpu_limit) 包含已完成的 Pod。

如果 pod 中的任何容器未定義 CPU 限制,這個欄位就不會在日誌事件中顯示。此項包含初始化容器

Pod

pod_cpu_request

計算

公式:sum(container_cpu_request)

不保證要設定 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

它是 pod 記憶體使用量佔節點記憶體限制的百分比。

Pod

pod_memory_working_set

cadvisor

Pod

pod_memory_limit

計算

公式:sum(container_memory_limit)

如果 pod 中的任何容器未定義記憶體限制,這個欄位就不會在日誌事件中顯示。此項包含初始化容器

Pod

pod_memory_request

計算

公式:sum(container_memory_request)

不保證要設定 container_memory_request。只有已設定的項目會包含在總和中。

Pod

pod_memory_utilization_over_pod_limit

計算

公式:pod_memory_working_set / pod_memory_limit

如果 pod 中的任何容器未定義記憶體限制,這個欄位就不會在日誌事件中顯示。此項包含初始化容器

Pod

pod_memory_reserved_capacity

計算

公式:pod_memory_request / node_memory_limit

Pod

pod_network_tx_bytes

計算

公式:sum(pod_interface_network_tx_bytes)

此資料可用於每個 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)

對於 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

可根據裝置名稱提供此資料。

叢集

cluster_failed_node_count

API 伺服器

叢集

cluster_node_count

API 伺服器

服務

service_number_of_running_pods

API 伺服器

Namespace

namespace_number_of_running_pods

API 伺服器

指標計算範例

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

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

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%