Amazon CloudWatch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon EKS 和 Kubernetes 的性能日志事件中的相关字段

CloudWatch Container Insights is in open preview. The preview is open to all AWS accounts and you do not need to request access. Features may be added or changed before announcing General Availability. Don’t hesitate to contact us with any feedback or let us know if you would like to be informed when updates are made by emailing us at containerinsightsfeedback@amazon.com

对于 Amazon EKS 和 Kubernetes,容器化的 CloudWatch 代理将数据作为性能日志事件发出。这样一来,CloudWatch 便能提取和存储高基数数据。CloudWatch 使用性能日志事件中的数据在集群、节点和 pod 级别创建聚合的 CloudWatch 指标,而不会丢失详细信息。

下表列出了这些性能日志事件中与 Container Insights 指标数据收集相关的字段。您可以使用 CloudWatch Logs Insights 查询其中的任何字段以收集数据或调查问题。有关更多信息,请参阅使用 CloudWatch Logs Insights 分析日志数据

类型 日志字段 公式或备注

Pod

pod_cpu_utilization

计算

公式:pod_cpu_usage_total / node_cpu_limit

Pod

pod_cpu_usage_total

cadvisor

Pod

pod_cpu_limit

计算

公式:sum(container_cpu_limit)

如果 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_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 网络接口每秒接收的网络字节数。

PodNet

pod_interface_network_tx_bytes

cadvisor

该数据是 pod 网络接口每秒发送的网络字节数。

容器

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

不保证设置该字段。如果未设置,则不会发出该指标。

ContainerFS

container_filesystem_capacity

pod

该数据适用于每个磁盘设备。

ContainerFS

container_filesystem_usage

pod

该数据适用于每个磁盘设备。

ContainerFS

container_filesystem_utilization

计算

公式:container_filesystem_usage / container_filesystem_capacity

该数据适用于每个设备名称。

节点

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)

节点

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

该数据是工作线程节点网络接口每秒接收的网络字节数。

NodeNet

node_interface_network_tx_bytes

cadvisor

该数据是工作线程节点网络接口每秒发送的网络字节数。

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_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%

本页内容: