

# Amazon ECS CloudWatch 指标
<a name="available-metrics"></a>

您可以使用 CloudWatch 用量指标来提供账户资源使用情况的可见性。这些指标可在 CloudWatch 图表和控制面板上直观呈现当前的服务使用情况。

Amazon ECS 会每隔一分钟向 CloudWatch 发送指标。这些指标是为任务状态为 `RUNNING` 的资源收集的。如果集群、服务或其他资源没有正在运行的任务，则在此期间不会报告该资源的指标。例如，假设集群有一个服务，但该服务没有状态为 `RUNNING` 的任务，则不会向 CloudWatch 发送任何指标。同样，假设有两个服务，其中一个服务具有正在运行的任务，而另一个服务没有，则仅会发送具有正在运行的任务的服务指标。


****  

| 指标 | 说明 | 有效维度 | 有用的统计数据 | 单位 | 
| --- | --- | --- | --- | --- | 
| CPUReservation | 集群或服务中保留的 CPU 单位的百分比。<br />CPU 预留（按 `ClusterName` 进行筛选）是用集群上 Amazon ECS 任务预留的总 CPU 单位数除以集群中注册的所有 Amazon EC2 实例的总 CPU 单位数计算得到的。仅处于 `ACTIVE` 或 `DRAINING` 状态的 Amazon EC2 实例将影响 CPU 预留指标。此指标仅支持 Amazon EC2 实例上托管的任务。 |  ClusterName. | 平均值、最小值、最大值 | 百分比 | 
| CPUUtilization | 集群、服务或托管进程守护程序中使用的 CPU 单位的百分比。<br />集群级别的 CPU 使用率（按 `ClusterName` 筛选）是通过将集群上的 Amazon ECS 任务所使用的总 CPU 单位数除以集群中注册的所有 Amazon EC2 实例的总 CPU 单位数计算得到的。仅处于 `ACTIVE` 或 `DRAINING` 状态的 Amazon EC2 实例将影响 CPU 预留指标。集群级别的指标仅支持 Amazon EC2 实例上托管的任务。<br />服务级别的 CPU 使用率（按 `ClusterName`、`ServiceName` 进行筛选）是通过将属于服务的任务所使用的总 CPU 单位数除以为属于服务的任务预留的总 CPU 单位数计算得到的。服务级别的指标仅支持 Amazon EC2 实例和 Fargate 上托管的任务。<br />进程守护程序级别的 CPU 利用率（按 `ClusterName`、`ServiceName` 进行筛选）是通过将属于托管进程守护程序的任务所使用的总 CPU 单位数除以为属于托管进程守护程序的任务预留的总 CPU 单位数计算得到的。 |  ClusterName, ServiceName | 平均值、最小值、最大值 | 百分比 | 
| MemoryReservation | 集群中正在运行的任务所预留的内存的百分比。<br />集群内存预留是通过将集群上的 Amazon ECS 任务在集群上预留的总内存量除以集群中注册的所有 Amazon EC2 实例的总内存量计算得到的。此指标只能按 `ClusterName` 筛选。仅处于 `ACTIVE` 或 `DRAINING` 状态的 Amazon EC2 实例将影响内存预留指标。集群级别的内存预留指标仅支持 Amazon EC2 实例上托管的任务。 计算内存利用率时，如果 `MemoryReservation` 已指定，则在计算中使用它而不是总内存。  |  ClusterName. | 平均值、最小值、最大值 | 百分比 | 
| MemoryUtilization | 集群、服务或托管进程守护程序所使用的内存的百分比。<br />集群级别的内存使用率（按 `ClusterName` 筛选）是通过将集群上的 Amazon ECS 任务所使用的总内存量除以集群中注册的所有 Amazon EC2 实例的总内存量计算得到的。仅处于 `ACTIVE` 或 `DRAINING` 状态的 Amazon EC2 实例将影响内存利用率指标。集群级别的指标仅支持 Amazon EC2 实例上托管的任务。<br />服务级别的内存使用率（按 `ClusterName`、`ServiceName` 进行筛选）是通过将属于服务的任务所使用的总内存量除以为属于服务的任务预留的总内存量计算得到的。服务级别的指标仅支持 Amazon EC2 实例和 Fargate 上托管的任务。<br />进程守护程序级别的内存利用率（按 `ClusterName`、`ServiceName` 进行筛选）是通过将属于托管进程守护程序的任务所使用的总内存量除以为属于托管进程守护程序的任务预留的总内存量计算得到的。 |  ClusterName, ServiceName | 平均值、最小值、最大值 | 百分比 | 
| EBSFilesystemUtilization | 服务中的任务使用的 Amazon EBS 文件系统的百分比。<br />服务级别的 EBS 文件系统利用率指标（按 `ClusterName`、`ServiceName` 筛选）是通过将属于该服务的任务使用的 EBS 文件系统的总量，除以为属于该服务的所有任务分配的 EBS 文件系统存储总量来计算得到的。服务级别的 EBS 文件系统利用率指标仅适用于托管在附加了 EBS 卷的 Amazon EC2 实例（使用容器代理版本 `1.79.0`）和 Fargate（使用平台版本 `1.4.0`）上的任务。 对于托管在 Fargate 上的任务，磁盘上有仅供 Fargate 使用的空间。Fargate 使用的空间不会产生任何成本，但可以使用类似 `df` 的工具看到额外的存储空间。  |  ClusterName, ServiceName | 平均值、最小值、最大值 | 百分比 | 
| GPUReservation | 集群中正在运行的任务所预留的总可用 GPU 的百分比。<br />集群级别的 GPU 预留指标是通过将是集群上 Amazon ECS 任务预留的 GPU 数除以集群中注册的所有具有 GPU 的 Amazon EC2 实例上可用的 GPU 总数计算得出的。仅处于 `ACTIVE` 或 `DRAINING` 状态的 Amazon EC2 实例将影响 GPU 预留指标。 | ClusterName | 平均值、最小值、最大值 | 百分比 | 
| ActiveConnectionCount | 从客户端到在共享选定 `DiscoveryName` 的任务中运行的 Amazon ECS Service Connect 代理的并发活动连接总数。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。<br />有效维度：`DiscoveryName` 和 `DiscoveryName, ServiceName, ClusterName`。 |  DiscoveryName 和 DiscoveryName、ServiceName、ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| NewConnectionCount | 从客户端到在共享选定 `DiscoveryName` 的任务中运行的 Amazon ECS Service Connect 代理建立的新连接总数。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 | DiscoveryName 和 DiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| ProcessedBytes | Service Connect 代理处理的入站流量的总字节数。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 | DiscoveryName 和 DiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 字节 | 
| RequestCount | Service Connect 代理处理的入站流量请求的数量。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。<br />您还需要在任务定义的端口映射中配置 `appProtocol`。 | DiscoveryName 和 DiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| GrpcRequestCount | Service Connect 代理处理的 gRPC 入站流量请求的数量。<br />此指标仅在您配置了 Amazon ECS Service Connect 且 `appProtocol` 为位于任务定义的端口映射中的 `GRPC` 时才可用。 | DiscoveryName 和 DiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| HTTPCode\_Target\_2XX\_Count | 应用程序在这些任务中生成的编号为 200 到 299 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应，不计入直接发送的响应。<br />此指标仅在您配置了 Amazon ECS Service Connect 且 `appProtocol` 为位于任务定义的端口映射中的 `HTTP` 或 `HTTP2` 时才可用。<br />有效维度： | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| HTTPCode\_Target\_3XX\_Count | 应用程序在这些任务中生成的编号为 300 到 399 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应，不计入直接发送的响应。<br />此指标仅在您配置了 Amazon ECS Service Connect 且 `appProtocol` 为位于任务定义的端口映射中的 `HTTP` 或 `HTTP2` 时才可用。 | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| HTTPCode\_Target\_4XX\_Count | 应用程序在这些任务中生成的编号为 400 到 499 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应，不计入直接发送的响应。<br />此指标仅在您配置了 Amazon ECS Service Connect 且 `appProtocol` 为位于任务定义的端口映射中的 `HTTP` 或 `HTTP2` 时才可用。 | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| HTTPCode\_Target\_5XX\_Count | 应用程序在这些任务中生成的编号为 500 到 599 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应，不计入直接发送的响应。<br />此指标仅在您配置了 Amazon ECS Service Connect 且 `appProtocol` 为位于任务定义的端口映射中的 `HTTP` 或 `HTTP2` 时才可用。 | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| RequestCountPerTarget | 共享所选 `DiscoveryName` 的每个目标收到的平均请求数。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值 | 计数 | 
| TargetProcessedBytes | Service Connect 代理处理的总字节数。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 | TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值、总计 | 字节 | 
| TargetResponseTime | 应用程序请求处理的延迟。请求到达目标任务中的 Service Connect 代理到从目标应用程序收到返回代理的响应所用的时间（以毫秒为单位）。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 |  TargetDiscoveryName 和 TargetDiscoveryName, ServiceName, ClusterName | 平均值、最小值、最大值 | 毫秒 | 
| ClientTLSNegotiationErrorCount | TLS 连接失败的总次数。此指标仅在启用 TLS 时使用。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 |  DiscoveryName 和 DiscoveryName、ServiceName、ClusterName | 平均值、最小值、最大值、总计 | 计数 | 
| TargetTLSNegotiationErrorCount | 由于缺少客户端证书、Amazon 私有 CA 验证失败或 SAN 验证失败而导致 TLS 连接失败的总次数。此指标仅在启用 TLS 时使用。<br />此指标仅在您配置了 Amazon ECS Service Connect 时可用。 |  ServiceName、ClusterName、TargetDiscoveryName 和 TargetDiscoveryName | 平均值、最小值、最大值、总计 | 计数 | 

## Amazon ECS 指标的维度
<a name="ecs-metrics-dimensions"></a>

Amazon ECS 指标使用 `AWS/ECS` 命名空间并提供以下维度的指标。Amazon ECS 仅为任务处于 `RUNNING` 状态的资源发送指标。例如，如果您的集群包含一个服务，但该服务没有处于 `RUNNING` 状态的任务，则不会向 CloudWatch 发送任何指标。如果您有两个服务，其中一个服务具有正在运行的任务，而另一个服务没有，则仅发送具有正在运行的任务的服务的指标。


****  

| 维度 | 定义 | 
| --- | --- | 
| ClusterName | 此维度将筛选您为指定集群中的所有资源请求的数据。将按 `ClusterName` 筛选所有 Amazon ECS 指标。 | 
| ServiceName | 此维度将筛选您为指定集群内的指定服务或进程守护程序中的所有资源请求的数据。对于进程守护程序指标，`ServiceName` 维度值具有前缀 `daemon:`，后跟进程守护程序名称。例如，名为 `my-daemon` 的进程守护程序的 `ServiceName` 维度值为 `daemon:my-daemon`。 | 
| DiscoveryName | 该维度将您为流量指标请求的数据筛选到所有 Amazon ECS 集群的指定 Service Connect 发现名称。<br />请注意，正在运行的容器中的特定端口可能有多个发现名称。 | 
| DiscoveryName, ServiceName, ClusterName | 此维度会将您请求的流量指标数据筛选到所有任务中的指定 Service Connect 发现名称，这些任务具有此发现名称且由此服务在此集群中创建。<br />如果您在不同命名空间的多个服务中重复使用了相同的发现名称，则可以使用此维度来查看特定服务的入站流量指标。<br />请注意，正在运行的容器中的特定端口可能有多个发现名称。 | 
| TargetDiscoveryName | 该维度将您为流量指标请求的数据筛选到所有 Amazon ECS 集群的指定 Service Connect 发现名称。<br />与 `DiscoveryName` 不同的是，这些流量指标仅衡量来自在此命名空间中具有 Service Connect 配置的其他 Amazon ECS 任务的传送到该 `DiscoveryName` 的入站流量。这包括具有仅限客户端配置或客户端/服务器 Service Connect 配置的服务执行的任务。<br />请注意，正在运行的容器中的特定端口可能有多个发现名称。 | 
| TargetDiscoveryName, ServiceName, ClusterName | 此维度会将您请求的流量指标数据筛选到指定 Service Connect 发现名称，但仅计入来自此服务在此集群中创建的任务的流量。<br />使用此维度可以查看来自其他服务中特定客户端的入站流量指标。<br />与 `DiscoveryName, ServiceName, ClusterName` 不同的是，这些流量指标仅衡量来自在此命名空间中具有 Service Connect 配置的其他 Amazon ECS 任务的传送到该 `DiscoveryName` 的入站流量。这包括具有仅限客户端配置或客户端/服务器 Service Connect 配置的服务执行的任务。<br />请注意，正在运行的容器中的特定端口可能有多个发现名称。 | 