

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CloudWatch 您的 Classic Load Balancer 的指标
<a name="elb-cloudwatch-metrics"></a>

Elastic Load Balancing 将您的 CloudWatch 负载均衡器和后端实例的数据点发布到亚马逊。 CloudWatch 允许您以一组有序的时间序列数据（称为*指标*）的形式检索有关这些数据点的统计信息。可将指标视为要监控的变量，而将数据点视为该变量随时间变化的值。例如，您可以在指定时间段内监控负载均衡器正常状态 EC2 实例的总数。每个数据点都有相关联的时间戳和可选测量单位。

您可使用指标来验证系统是否正常运行。例如，您可以创建 CloudWatch 警报来监控指定的指标，并在该指标超出您认为可接受的范围时启动操作（例如向电子邮件地址发送通知）。

 CloudWatch 仅当请求流经负载均衡器时，Elastic Load Balancing 才会向其报告指标。如果有请求流经负载均衡器，则 Elastic Load Balancing 进行测量并以 60 秒的间隔发送其指标。如果没有请求流经负载均衡器或指标无数据，则不报告指标。

有关亚马逊的更多信息 CloudWatch，请参阅*[亚马逊 CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)*。

**Topics**
+ [经典负载均衡器指标](#loadbalancing-metrics-clb)
+ [经典负载均衡器的指标维度](#load-balancer-metric-dimensions-clb)
+ [经典负载均衡器指标的统计数据](#measure-stats)
+ [查看您的负载均衡器的 CloudWatch 指标](#ViewingDataUsingCloudWatch)

## 经典负载均衡器指标
<a name="loadbalancing-metrics-clb"></a>

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


| 指标 | 描述 | 
| --- | --- | 
| BackendConnectionErrors |  负载均衡器和注册实例之间连接建立不成功的次数。因为负载均衡器在发生错误时会重试连接，所以此计数会超过请求速率。请注意，此计数还包含与运行状况检查有关的所有连接错误。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Average`、`Minimum` 和 `Maximum` 针对每个负载均衡器节点报告，一般并无用处。然而，最小值与最大值（或者峰值到平均值、平均值到谷底）之间的差异可用于确定负载均衡器节点是否存在异常。 ** 示例**：假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例，并且向 us-west-2a 中 1 个实例的连接尝试导致出现后端连接错误。us-west-2a 的 sum 值包含这些连接错误，而 us-west-2b 的 sum 值不包含。因此，负载均衡器的 sum 值等于 us-west-2a 的 sum 值。  | 
| DesyncMitigationMode\$1NonCompliant\$1Request\$1Count |  [HTTP 侦听器] 不符合 RFC 7230 标准的请求数。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。  | 
| HealthyHostCount |  向负载均衡器注册的运行状况良好的实例的数量。新注册的实例在通过第一次运行状况检查后被视为运行状况良好。如果启用跨可用区负载均衡，则会跨所有可用区为 `LoadBalancerName` 维度计算运行状况良好的实例的数量。否则，将为每个可用区域计算该数量。 **报告标准**：有注册的实例 **Statistics**：最有用的统计工具为 `Average` 和 `Maximum`。这些统计数据由负载均衡器节点决定。请注意，某些负载均衡器节点可能在短时间内认为某实例运行状况不佳，而其他节点将该实例视为运行状况良好。 ** 示例**：假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例，并且 us-west-2a 的 1 个实例运行状况不佳，而 us-west-2b 没有运行状况不佳的实例。对于 `AvailabilityZone` 维度，us-west-2a 平均有 1 个运行状况良好和 1 个运行状况不佳的实例，us-west-2b 平均有 2 个运行状况良好和 0 个运行状况不佳的实例。  | 
|  `HTTPCode_Backend_2XX`, `HTTPCode_Backend_3XX`, `HTTPCode_Backend_4XX`, `HTTPCode_Backend_5XX`  |  [HTTP 侦听器] 注册实例生成的 HTTP 响应代码的数量。该计数不包含负载均衡器生成的任何响应代码。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Minimum`、`Maximum` 和 `Average` 均为 1。 ** 示例**：假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例，并且发送到 us-west-2a 中的 1 个实例的请求导致了 HTTP 500 响应。us-west-2a 的 sum 值包含这些错误响应，而 us-west-2b 的 sum 值不包含。因此，负载均衡器的 sum 值等于 us-west-2a 的 sum 值。  | 
| HTTPCode\$1ELB\$14XX |  [HTTP 侦听器] 负载均衡器生成的 HTTP 4XX 客户端错误代码的数量。如果请求格式错误或不完整，则会生成客户端错误。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Minimum`、`Maximum` 和 `Average` 均为 1。 ** 示例**：假设您的负载均衡器启用了 us-west-2a 和 us-west-2b，并且客户端请求包含格式错误的请求 URL。结果可能导致所有可用区中客户端错误增加。负载均衡器的 sum 值为各可用区的值的总和。  | 
| HTTPCode\$1ELB\$15XX |  [HTTP 侦听器] 负载均衡器生成的 HTTP 5XX 服务器错误代码的数量。此计数不包括注册实例生成的任何响应代码。如果没有运行状况良好的实例注册到负载均衡器，或者请求速率超过实例或负载均衡器的容量（溢出），则会报告该指标。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Minimum`、`Maximum` 和 `Average` 均为 1。 ** 示例**：假设您的负载均衡器启用了 us-west-2a 和 us-west-2b，并且 us-west-2a 中的实例具有较高的延迟，对请求的响应较慢。结果，us-west-2a 中的负载均衡器节点波动队列填满，客户端收到 503 错误。如果 us-west-2b 继续正常响应，则负载均衡器的 sum 值将等于 us-west-2a 的 sum 值。  | 
| Latency |  [HTTP 侦听器] 从负载均衡器将请求发送到已注册实例到该实例开始发送响应标头所用的总时间 (以秒为单位)。 [TCP 侦听器] 负载均衡器成功与注册实例建立连接所用的总时间 (以秒为单位)。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Average`。`Maximum` 可用于确定某些请求的耗时是否大大超过平均时间。请注意，`Minimum` 一般没什么用处。 ** 示例**：假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例，并且发送到 us-west-2a 中的 1 个实例的请求具有较高的延迟。us-west-2a 的 average 值将高于 us-west-2b 的 average 值。  | 
| RequestCount |  在指定的时间段（1 或 5 分钟）完成的请求或者发出的连接的数量。 [HTTP 侦听器] 收到和路由的请求数，包括来自注册实例的 HTTP 错误响应。 [TCP 侦听器] 向注册实例发出的连接的数量。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Minimum`、`Maximum` 和 `Average` 均返回 1。 ** 示例**：假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例，并有 100 个请求发送至该负载均衡器。有 60 个请求发送至 us-west-2a，每个实例接收 30 个请求，有 40 个请求发送至 us-west-2b，每个实例接收 20 个请求。对于 `AvailabilityZone` 维度，us-west-2a 总计有 60 个请求，us-west-2b 总计有 40 个请求。对于 `LoadBalancerName` 维度，总计有 100 个请求。  | 
| SpilloverCount |  因波动队列填满而拒绝的请求的总数。 [HTTP 侦听器] 负载均衡器返回 HTTP 503 错误代码。 [TCP 侦听器] 负载均衡器关闭连接。 **报告标准**：有非零值 **Statistics**：最有用的统计工具是 `Sum`。请注意，`Average`、`Minimum` 和 `Maximum` 针对每个负载均衡器节点报告，一般并无用处。 ** 示例**：假设您的负载均衡器启用了 us-west-2a 和 us-west-2b，并且 us-west-2a 中的实例具有较高的延迟，对请求的响应较慢。结果是 us-west-2a 中的负载均衡器节点波动队列填满，导致溢出。如果 us-west-2b 继续正常响应，则负载均衡器的 sum 值将与 us-west-2a 的 sum 值相同。  | 
| SurgeQueueLength |  正在等待路由到正常实例的请求（HTTP 侦听器）或连接（TCP 侦听器）总数。队列的最大大小为 1024。队列填满后，额外的请求或连接将被拒绝。有关更多信息，请参阅 `SpilloverCount`。 ** 报告标准**：有非零值。 ** 统计数据**：最有价值的统计数据是 `Maximum`，因为它代表排队请求的峰值。结合使用 `Average` 统计数据与 `Minimum` 和 `Maximum` 可以确定排队请求的范围。请注意，`Sum` 并无用处。 ** 示例**：假设您的负载均衡器启用了 us-west-2a 和 us-west-2b，并且 us-west-2a 中的实例具有较高的延迟，对请求的响应较慢。结果是 us-west-2a 中的负载均衡器节点波动队列填满，很可能导致客户端的响应时间增加。如果这种情况继续存在，负载均衡器可能溢出（参阅 `SpilloverCount` 指标）。如果 us-west-2b 继续正常响应，则负载均衡器的 `max` 将与 us-west-2a 的 `max` 相同。  | 
| UnHealthyHostCount |  向负载均衡器注册的运行状况不良的实例的数量。如果实例超过运行状况检查所配置的不佳阈值，则认为实例运行状况不佳。不佳实例在符合运行状况检查所配置的良好阈值之后，被重新视为运行状况良好。 **报告标准**：有注册的实例 **Statistics**：最有用的统计工具为 `Average` 和 `Minimum`。这些统计数据由负载均衡器节点决定。请注意，某些负载均衡器节点可能在短时间内认为某实例运行状况不佳，而其他节点将该实例视为运行状况良好。 ** 示例**：请参阅`HealthyHostCount`。  | 

<a name="estimated-metrics"></a>以下指标使您能够估算将经典负载均衡器迁移到应用程序负载均衡器的成本。这些指标仅供参考，不用于 CloudWatch 警报。注意，如果您的经典负载均衡器有多个侦听器，则这些指标在所有侦听器上进行聚合。

估算值基于包含一条默认规则和一个大小为 2K 的证书的负载均衡器。如果您使用的是大小为 4K 或以上的证书，我们建议您按如下方式估算成本：使用迁移工具基于您的经典负载均衡器创建一个应用程序负载均衡器，然后监控该应用程序负载均衡器的 `ConsumedLCUs` 指标。有关更多信息，请参阅《Elastic Load Balancing 用户指南》中的 [迁移经典负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/migrate-classic-load-balancer.html)。


| 指标 | 描述 | 
| --- | --- | 
| EstimatedALBActiveConnectionCount |  从客户端到负载均衡器以及从负载均衡器到目标的并发活动 TCP 连接的估计数。  | 
| EstimatedALBConsumedLCUs |  应用程序负载均衡器使用的负载均衡器容量单位（LCU）的估计数。您需要为每小时 LCUs 的使用量付费。有关更多信息，请参阅 [Elastic Load Balancing 定价](https://aws.amazon.com/elasticloadbalancing/pricing/)。  | 
| EstimatedALBNewConnectionCount |  从客户端到负载均衡器以及从负载均衡器到目标建立的新 TCP 连接的估计数。  | 
| EstimatedProcessedBytes |  应用程序负载均衡器处理的估计字节数。  | 

## 经典负载均衡器的指标维度
<a name="load-balancer-metric-dimensions-clb"></a>

要筛选经典负载均衡器的指标，请使用以下维度。


|  维度  |  描述  | 
| --- | --- | 
|  AvailabilityZone  |  按指定的可用区筛选指标数据。  | 
|  LoadBalancerName  |  按指定的负载均衡器筛选指标数据。  | 

## 经典负载均衡器指标的统计数据
<a name="measure-stats"></a>

CloudWatch 根据 Elastic Load Balancing 发布的指标数据点提供统计数据。统计数据是在指定的时间段内汇总的指标数据。当请求统计数据时，返回的数据流按指标名称和维度进行识别。维度是唯一标识指标的 name/value 配对。例如，您可以请求在特定可用区内启动的负载均衡器背后所有正常状态 EC2 实例的统计数据。

`Minimum` 和 `Maximum` 统计数据反映各个负载均衡器节点报告的最小值和最大值。例如，假定有两个负载均衡器节点。一个节点的 `HealthyHostCount` 的 `Minimum` 为 2，`Maximum` 为 10，`Average` 为 6，另一个节点的 `HealthyHostCount` 的 `Minimum` 为 1，`Maximum` 为 5，`Average` 为 3。因此，负载均衡器的 `Minimum` 为 1，`Maximum` 为 10，`Average` 大约为 4。

`Sum` 统计数据是所有负载均衡器节点的汇总值。由于这些指标在每个周期均包含多个报告，因此 `Sum` 仅适用于对所有负载均衡器节点进行汇总的指标，如 `RequestCount`、`HTTPCode_ELB_XXX`、`HTTPCode_Backend_XXX`、`BackendConnectionErrors` 和 `SpilloverCount`。

`SampleCount` 统计数据是测量的样本数。由于这些指标是基于采样间隔和事件进行收集的，因此此统计信息一般没有用。例如，对于 `HealthyHostCount`，`SampleCount` 基于每个负载均衡器节点报告的样本数，而不是运行状况正常的主机数。

百分位数指示某个值在数据集中的相对位置。您可以指定任何百分位数，最多使用两位小数 (例如 p95.45)。例如，第 95 个百分位数表示 95% 的数据低于此值，5% 的数据高于此值。百分位数通常用于隔离异常值。例如，假设某个应用程序从缓存服务大多数请求的时间是 1-2 毫秒，但如果缓存是空的，则时间需要 100-200 毫秒。最大值反映了最慢的情况，也就是大约 200 毫秒。平均值不表示数据的分布。百分位提供了一个更有意义的应用程序性能视图。通过使用第 99 个百分位数作为 Auto Scaling 触发器或 CloudWatch 警报，您可以将处理时间超过 2 毫秒的请求设定为不超过 1%。

## 查看您的负载均衡器的 CloudWatch 指标
<a name="ViewingDataUsingCloudWatch"></a>

您可以使用 Amazon EC2 控制台查看您的负载均衡器的 CloudWatch 指标。这些指标显示为监控图表。如果负载均衡器处于活动状态并且正在接收请求，则监控图表会显示数据点。

或者，您可以使用 CloudWatch 控制台查看负载均衡器的指标。

**使用控制台查看指标**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择负载均衡器的名称以打开其详细信息页面。

1. 选择**监控**选项卡。

1. 要查看单个指标的大图，请将鼠标悬停在其图表上，然后选择 `Maximize` 图标。可供使用的指标如下：
   + 正常主机 - `HealthyHostCount`
   + 不正常的主机 - `UnHealthyHostCount`
   + 平均延迟 - `Latency`
   + 请求 – `RequestCount`
   + 后端连接错误 - `BackendConnectionErrors`
   + 波动队列长度 - `SurgeQueueLength`
   + 溢出计数 - `SpilloverCount`
   + HTTP 2 XXs — `HTTPCode_Backend_2XX`
   + HTTP 3 XXs — `HTTPCode_Backend_3XX`
   + HTTP 4 XXs — `HTTPCode_Backend_4XX`
   + HTTP 5 XXs — `HTTPCode_Backend_5XX`
   + ELB HTTP 4 — XXs `HTTPCode_ELB_4XX`
   + ELB HTTP 5 — XXs `HTTPCode_ELB_5XX`
   + 估计已处理字节数 – `EstimatedProcessedBytes`
   + 预计消耗的 ALB — LCUs `EstimatedALBConsumedLCUs`
   + 估计 ALB 活动连接数 – `EstimatedALBActiveConnectionCount`
   + 估计 ALB 新连接数 – `EstimatedALBNewConnectionCount`

**使用 CloudWatch 控制台查看指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择**指标**。

1. 选择 **ELB** 命名空间。

1. 请执行下列操作之一：
   + 选择一种指标维度，按负载均衡器、可用区或跨所有负载均衡器查看指标。
   + 要跨所有维度查看某个指标，请在搜索字段中键入其名称。
   + 要查看单个负载均衡器的指标，请在搜索字段中键入其名称。
   + 要查看单个可用区的指标，请在搜索字段中键入其名称。