Amazon ECS
AWS Fargate 用户指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon ECS CloudWatch 指标

您可以使用 Amazon CloudWatch 监控您的 Amazon ECS 资源,此工具可从 Amazon ECS 收集原始数据,并将数据处理为易读的近乎实时的指标。这些统计数据会保存两周,从而使您能够访问历史信息,并能够更好地了解集群或服务的执行情况。Amazon ECS 指标数据以 1 分钟为间隔自动发送到 CloudWatch。有关 CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

启用 CloudWatch 指标

自动为 CloudWatch CPU 和内存利用率指标启用使用 Fargate 启动类型的任意任务或服务,因此您无需执行任何手动步骤。

可用指标和维度

以下部分列出了 Amazon ECS 发送到 Amazon CloudWatch 的指标和维度。

Amazon ECS 指标

Amazon ECS 为您提供了用来监控资源的指标。您可以将集群内的 CPU 和内存预留以及使用率作为一个整体进行监控,并监控集群中的各个服务的 CPU 和内存使用率。对于您的 GPU 工作负载,您可以度量集群中的 GPU 预留。

可用的指标将取决于集群中任务和服务的启动类型。如果您对服务使用 Fargate 启动类型,则会提供 CPU 和内存利用率指标以帮助监控您的服务。对于 EC2 启动类型,您将拥有并需要监控构成底层基础设施的 Amazon EC2 实例。因此,其他 CPU、内存和 GPU 预留以及 CPU 和内存利用率指标可在集群、服务和任务级别上使用。

Amazon ECS 每分钟向 CloudWatch 发送以下指标。当 Amazon ECS 收集指标时,每分钟会收集多个数据点。然后将它们聚合成一个数据点,并将数据发送到 CloudWatch。因此,在 CloudWatch 中,一个样本数实际上是每分钟内聚合的多个数据点。

AWS/ECS 命名空间包括以下指标。

指标 描述

CPUReservation

集群中正在运行的任务所预留的 CPU 单位的百分比。

集群 CPU 预留(此指标仅可按 ClusterName 进行筛选)是通过将集群上的 Amazon ECS 任务所预留的总 CPU 单位数除以为集群中的所有容器实例注册的总 CPU 单位数计算得到的。此指标仅用于使用 EC2 启动类型的任务。

有效维度:ClusterName

有效统计数据:平均值、最小值、最大值、总计和样本数。最有用的统计数据是平均值。

单位:百分比。

CPUUtilization

集群或服务中使用的 CPU 单位的百分比。

集群 CPU 使用率(按 ClusterName 而不是 ServiceName 进行筛选的指标)是通过将集群上的 Amazon ECS 任务所使用的总 CPU 单位数除以为集群中的所有容器实例注册的总 CPU 单位数计算得到的。集群 CPU 利用率指标仅用于使用 EC2 启动类型的任务。

服务 CPU 使用率(按 ClusterNameServiceName 进行筛选的指标)是通过将属于服务的任务所使用的总 CPU 单位数除以为属于服务的任务预留的总 CPU 单位数计算得到的。服务 CPU 利用率指标用于使用 Fargate 和 EC2 启动类型的任务。

有效维度:ClusterNameServiceName

有效统计数据:平均值、最小值、最大值、总计和样本数。最有用的统计数据是平均值。

单位:百分比。

MemoryReservation

集群中正在运行的任务所预留的内存的百分比。

集群内存预留(此指标仅可按 ClusterName 进行筛选)是通过将集群上的 Amazon ECS 任务所预留的总内存量除以为集群中的所有容器实例注册的总内存量计算得到的。此指标仅用于使用 EC2 启动类型的任务。

有效维度:ClusterName

有效统计数据:平均值、最小值、最大值、总计和样本数。最有用的统计数据是平均值。

单位:百分比。

MemoryUtilization

集群或服务中使用的内存的百分比。

集群内存使用率(按 ClusterName 而不是 ServiceName 进行筛选的指标)是通过将集群上的 Amazon ECS 任务所使用的总内存量除以为集群中的所有容器实例注册的总内存量计算得到的。集群内存利用率指标仅用于使用 EC2 启动类型的任务。

服务内存使用率(按 ClusterNameServiceName 进行筛选的指标)是通过将属于服务的任务所使用的总内存量除以为属于服务的任务预留的总内存量计算得到的。服务内存利用率指标用于使用 Fargate 和 EC2 启动类型的任务。

有效维度:ClusterNameServiceName

有效统计数据:平均值、最小值、最大值、总计和样本数。最有用的统计数据是平均值。

单位:百分比。

GPUReservation

集群中正在运行的任务所预留的总可用 GPU 的百分比。

集群 GPU 预留是通过将集群上的 Amazon ECS 任务所预留的 GPU 数除以集群中所有已启用 GPU 的容器实例上可用的 GPU 总数计算得到的。

有效维度:ClusterName

有效统计数据:平均值、最小值、最大值、总计和样本数。最有用的统计数据是平均值。

单位:百分比。

注意

如果您使用的是使用 EC2 启动类型的任务并且具有 Linux 容器实例,则 Amazon ECS 容器代理将依靠 Docker stats 指标收集在实例上运行的每个容器的 CPU 和内存数据。如果您使用版本早于 1.14.0 的 Amazon ECS 代理,Amazon ECS 会在向 CloudWatch 报告内存利用率时包括文件系统缓存使用率,此时您的 CloudWatch 图表显示的使用率会高于任务实际内存利用率。为修复这一问题,自 Amazon ECS 代理版本 1.14.0 起,Amazon ECS 容器代理会从内存利用率指标中排除文件系统缓存使用率。此更改不会影响容器的内存不足行为。

Amazon ECS 指标的维度

Amazon ECS 指标使用 AWS/ECS 命名空间并提供以下维度的指标。

维度 描述

ClusterName

此维度将筛选您为指定集群中的所有资源请求的数据。将按 ClusterName 筛选所有 Amazon ECS 指标。

ServiceName

此维度将筛选您为指定集群内的指定服务中的所有资源请求的数据。

服务利用率

服务利用率以属于集群上某个服务的 Amazon ECS 任务使用的 CPU 和内存占该服务的任务定义中指定的 CPU 和内存的百分比的形式来度量。具有使用 Fargate 启动类型的任务的服务支持此指标。

(Total CPU units used by tasks in service) x 100 Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100 Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

与每个任务关联的 Amazon ECS 容器代理每分钟都会计算当前用于由该服务拥有每个任务的 CPU 单元数和内存 MiB 数,并将此信息报告回 Amazon ECS。它还将计算用于由该服务拥有且正在该集群上运行的所有任务的 CPU 和内存的总量,并将这些数字以占在该服务的任务定义中为该服务指定的总资源的百分比的形式报告给 CloudWatch。如果您指定软限制 (memoryReservation),它用于计算预留内存量。否则将使用硬限制 (memory)。有关软限制和硬限制的更多信息,请参阅任务定义参数

服务 RUNNING 任务计数

您可以使用 CloudWatch 指标查看您的服务中处于 RUNNING 状态的任务数。例如,您可以为此指标设置一个 CloudWatch 警报,用于在您的服务中运行的任务数下降至指定值以下时提醒您。

查看服务中正在运行的任务数

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格上,选择 Metrics (指标)

  3. All metrics 选项卡上,选择 ECS

  4. 依次选择 ClusterNameServiceName,然后选择与要在其中查看正在运行的任务的服务对应的任何指标(CPUUtilizationMemoryUtilization)。

  5. 绘成图表的指标选项卡上,将周期更改为 1 分钟,将统计数据更改为样本数

    图中显示的值表示服务中的 RUNNING 任务的数量。

    
                        集群指标视图