CloudWatch Classic Load Balancer 的指标 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

CloudWatch Classic Load Balancer 的指标

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

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

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

有关亚马逊的更多信息 CloudWatch,请参阅亚马逊 CloudWatch 用户指南

经典负载均衡器指标

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

指标 描述
BackendConnectionErrors

负载均衡器和注册实例之间连接建立不成功的次数。因为负载均衡器在发生错误时会重试连接,所以此计数会超过请求速率。请注意,此计数还包含与运行状况检查有关的所有连接错误。

报告标准:有非零值

Statistics:最有用的统计工具是 Sum。请注意,AverageMinimumMaximum 针对每个负载均衡器节点报告,一般并无用处。然而,最小值与最大值(或者峰值到平均值、平均值到谷底)之间的差异可用于确定负载均衡器节点是否存在异常。

示例:假设您的负载均衡器在 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_NonCompliant_Request_Count

[HTTP监听器] 不符合 RFC 7230 的请求数。

报告标准:有非零值

Statistics:最有用的统计工具是 Sum

HealthyHostCount

向负载均衡器注册的运行状况良好的实例的数量。新注册的实例在通过第一次运行状况检查后被视为运行状况良好。如果启用跨可用区负载均衡,则会跨所有可用区为 LoadBalancerName 维度计算运行状况良好的实例的数量。否则,将为每个可用区域计算该数量。

报告标准:有注册的实例

Statistics:最有用的统计工具为 AverageMaximum。这些统计数据由负载均衡器节点决定。请注意,某些负载均衡器节点可能在短时间内认为某实例运行状况不佳,而其他节点将该实例视为运行状况良好。

示例:假设您的负载均衡器在 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。请注意,MinimumMaximumAverage 均为 1。

示例:假设您的负载均衡器在 us-west-2a 中有 2 个实例,在 us-west-2b 中有 2 个实例,并且在 us-west-2a 中发送到 1 个实例的请求会产生 500 个响应。HTTPus-west-2a 的 sum 值包含这些错误响应,而 us-west-2b 的 sum 值不包含。因此,负载均衡器的 sum 值等于 us-west-2a 的 sum 值。

HTTPCode_ELB_4XX

[HTTP监听器] 负载均衡器生成的 HTTP 4XX 客户端错误代码的数量。如果请求格式错误或不完整,则会生成客户端错误。

报告标准:有非零值

Statistics:最有用的统计工具是 Sum。请注意,MinimumMaximumAverage 均为 1。

示例:假设您的负载均衡器启用了 us-west-2a 和 us-west-2b,并且客户端请求包含格式错误的请求。URL结果可能导致所有可用区中客户端错误增加。负载均衡器的 sum 值为各可用区的值的总和。

HTTPCode_ELB_5XX

[HTTP监听器] 负载均衡器生成的 HTTP 5XX 服务器错误代码的数量。此计数不包括注册实例生成的任何响应代码。如果没有运行状况良好的实例注册到负载均衡器,或者请求速率超过实例或负载均衡器的容量(溢出),则会报告该指标。

报告标准:有非零值

Statistics:最有用的统计工具是 Sum。请注意,MinimumMaximumAverage 均为 1。

示例:假设您的负载均衡器启用了 us-west-2a 和 us-west-2b,并且 us-west-2a 中的实例具有较高的延迟,对请求的响应较慢。结果,us-west-2a 中的负载均衡器节点波动队列填满,客户端收到 503 错误。如果 us-west-2b 继续正常响应,则负载均衡器的 sum 值将等于 us-west-2a 的 sum 值。

Latency

[HTTPlistener] 从负载均衡器向注册实例发送请求到该实例开始发送响应标头所用的总时间(以秒为单位)。

[TCPlistener] 负载均衡器成功建立与注册实例的连接所用的总时间(以秒为单位)。

报告标准:有非零值

Statistics:最有用的统计工具是 AverageMaximum 可用于确定某些请求的耗时是否大大超过平均时间。请注意,Minimum 一般没什么用处。

示例:假设您的负载均衡器在 us-west-2a 和 us-west-2b 各有 2 个实例,并且发送到 us-west-2a 中的 1 个实例的请求具有较高的延迟。us-west-2a 的 average 值将高于 us-west-2b 的 average 值。

RequestCount

在指定的时间段(1 或 5 分钟)完成的请求或者发出的连接的数量。

[HTTPlistener] 接收和路由的请求数,包括来自注册实例的HTTP错误响应。

[TCP监听器] 与注册实例建立的连接数。

报告标准:有非零值

Statistics:最有用的统计工具是 Sum。请注意,MinimumMaximumAverage 均返回 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。请注意,AverageMinimumMaximum 针对每个负载均衡器节点报告,一般并无用处。

示例:假设您的负载均衡器启用了 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 统计数据与 MinimumMaximum 可以确定排队请求的范围。请注意,Sum 并无用处。

示例:假设您的负载均衡器启用了 us-west-2a 和 us-west-2b,并且 us-west-2a 中的实例具有较高的延迟,对请求的响应较慢。结果是 us-west-2a 中的负载均衡器节点波动队列填满,很可能导致客户端的响应时间增加。如果这种情况继续存在,负载均衡器可能溢出(参阅 SpilloverCount 指标)。如果 us-west-2b 继续正常响应,则负载均衡器的 max 将与 us-west-2a 的 max 相同。

UnHealthyHostCount

向负载均衡器注册的运行状况不良的实例的数量。如果实例超过运行状况检查所配置的不佳阈值,则认为实例运行状况不佳。不佳实例在符合运行状况检查所配置的良好阈值之后,被重新视为运行状况良好。

报告标准:有注册的实例

Statistics:最有用的统计工具为 AverageMinimum。这些统计数据由负载均衡器节点决定。请注意,某些负载均衡器节点可能在短时间内认为某实例运行状况不佳,而其他节点将该实例视为运行状况良好。

示例:请参阅HealthyHostCount

以下指标使您能够估算将经典负载均衡器迁移到 Application Load Balancer 的成本。这些指标仅供参考,不用于 CloudWatch 警报。注意,如果您的经典负载均衡器有多个侦听器,则这些指标在所有侦听器上进行聚合。

估算值基于包含一条默认规则和一个大小为 2K 的证书的负载均衡器。如果您使用的是大小为 4K 或以上的证书,我们建议您按如下方式估算成本:使用迁移工具基于您的经典负载均衡器创建一个 Application Load Balancer,然后监控该 Application Load Balancer 的 ConsumedLCUs 指标。有关更多信息,请参阅 Elastic Load Balancing 用户指南中的从经典负载均衡器迁移到 Application Load Balancer

指标 描述
EstimatedALBActiveConnectionCount

从客户端到负载均衡器以及从负载均衡器到目标的活动并发TCP连接的估计数量。

EstimatedALBConsumedLCUs

Application Load Balancer 使用的负载均衡器容量单位的估计数量 (LCU)。您需要为每小时LCUs的使用量付费。有关更多信息,请参阅 Elastic Load Balancing 定价

EstimatedALBNewConnectionCount

从客户端到负载均衡器以及从负载均衡器到目标的新TCP连接的估计数量。

EstimatedProcessedBytes

Application Load Balancer 处理的估计字节数。

经典负载均衡器的指标维度

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

维度 描述
AvailabilityZone

按指定的可用区筛选指标数据。

LoadBalancerName

按指定的负载均衡器筛选指标数据。

经典负载均衡器指标的统计数据

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

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

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

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

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

查看您的负载均衡器的 CloudWatch 指标

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

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

使用控制台查看指标
  1. 打开亚马逊EC2控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择负载均衡器

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

  4. 选择监控选项卡。

  5. 要查看单个指标的大图,请将鼠标悬停在其图表上,然后选择 Maximize 图标。可供使用的指标如下:

    • 正常主机 - HealthyHostCount

    • 不正常的主机 - UnHealthyHostCount

    • 平均延迟 - Latency

    • 请求 – RequestCount

    • 后端连接错误 - BackendConnectionErrors

    • 波动队列长度 - SurgeQueueLength

    • 溢出计数 - SpilloverCount

    • HTTP2 XXs — HTTPCode_Backend_2XX

    • HTTP3 XXs — HTTPCode_Backend_3XX

    • HTTP4 XXs — HTTPCode_Backend_4XX

    • HTTP5 XXs — HTTPCode_Backend_5XX

    • ELBHTTP4 XXs — HTTPCode_ELB_4XX

    • ELBHTTP5 XXs — HTTPCode_ELB_5XX

    • 估计已处理字节数 – EstimatedProcessedBytes

    • 预计ALB消耗量 LCUs — EstimatedALBConsumedLCUs

    • 预计的ALB活动连接数-EstimatedALBActiveConnectionCount

    • 估计ALB的新连接数-EstimatedALBNewConnectionCount

使用 CloudWatch 控制台查看指标
  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择指标

  3. 选择 ELB 命名空间。

  4. 请执行以下操作之一:

    • 选择一种指标维度,按负载均衡器、可用区或跨所有负载均衡器查看指标。

    • 要跨所有维度查看某个指标,请在搜索字段中键入其名称。

    • 要查看单个负载均衡器的指标,请在搜索字段中键入其名称。

    • 要查看单个可用区的指标,请在搜索字段中键入其名称。