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

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

CloudWatch Application Load Balancer 的指标

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

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

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

有关更多信息,请参阅 Amazon CloudWatch 用户指南

Application Load Balancer 指标

AWS/ApplicationELB 命名空间包括负载均衡器的以下指标。

指标 描述
ActiveConnectionCount

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

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

AnomalousHostCount

检测到存在异常的主机数量。

报告标准:始终报告

统计数据:最有用的统计工具是 AverageMinimumMaximum

尺寸
  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

ClientTLSNegotiationErrorCount

由因 TLS 错误而未能与负载均衡器建立会话的客户端发起的 TLS 连接数。可能的原因包括密码或协议不匹配或者客户端因无法验证服务器证书而关闭了连接。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ConsumedLCUs

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

报告标准:始终报告

统计数据:全部

尺寸
  • LoadBalancer

DesyncMitigationMode_NonCompliant_Request_Count

不符合 RFC 7230 标准的请求数。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

MitigatedHostCount

正在缓解的目标数量。

报告标准:始终报告

统计数据:最有用的统计工具是 AverageMinimumMaximum

尺寸
  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

GrpcRequestCount

通过 IPv4 和 IPv6 处理的 gRPC 请求数量。

报告标准:有非零值

统计数据:最有用的统计数据是 Sum. MinimumMaximum 以及 Average 全部返回 1。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTP_Fixed_Response_Count

成功的固定响应操作的次数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTP_Redirect_Count

成功的重定向操作的次数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTP_Redirect_Url_Limit_Exceeded_Count

由于响应位置标头中的 URL 大于 8K 而无法完成的重定向操作数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_3XX_Count

源自负载均衡器的 HTTP 3XX 重定向代码数。该计数不包含目标生成的响应代码。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_4XX_Count

源自负载均衡器的 HTTP 4XX 客户端错误代码的数量。该计数不包含目标生成的响应代码。

如果请求格式错误或不完整,则会生成客户端错误。除了负载均衡器返回 HTTP 460 错误代码的情况之外,目标不会收到这些请求。该计数不包含目标生成的任何响应代码。

报告标准:有非零值

统计数据:最有用的统计数据是 Sum. MinimumMaximum 以及 Average 全部返回 1。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_5XX_Count

源自负载均衡器的 HTTP 5XX 服务器错误代码的数量。该计数不包含目标生成的任何响应代码。

报告标准:有非零值

统计数据:最有用的统计数据是 Sum. MinimumMaximum 以及 Average 全部返回 1。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_500_Count

源自负载均衡器的 HTTP 500 错误代码的数量。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_502_Count

源自负载均衡器的 HTTP 502 错误代码的数量。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_503_Count

源自负载均衡器的 HTTP 503 错误代码的数量。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_504_Count

源自负载均衡器的 HTTP 504 错误代码的数量。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

IPv6ProcessedBytes

负载均衡器通过 IPv6 处理的总字节数。此计数包含在 ProcessedBytes 中。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

IPv6RequestCount

负载均衡器收到的 IPv6 请求的数量。

报告标准:有非零值

统计数据:最有用的统计数据是 Sum. MinimumMaximum 以及 Average 全部返回 1。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

NewConnectionCount

从客户端到负载均衡器以及从负载均衡器到目标建立的新 TCP 连接的总数。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

NonStickyRequestCount

负载均衡器因其无法使用现有粘性会话而选择新目标的请求的数目。例如,请求是来自新客户端的第一个请求且未提供粘性 Cookie,提供了粘性 Cookie 但未指定已注册到此目标组的目标,粘性 Cookie 的格式错误或已过期,或者出现内部错误,导致负载均衡器无法读取粘性 Cookie。

报告标准:已在目标组上启用粘性。

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ProcessedBytes

负载均衡器通过 IPv4 和 IPv6(HTTP 标头和 HTTP 有效负载)处理的总字节数。此计数包括到和来自客户端和 Lambda 函数的流量,以及来自身份提供程序 (IdP) 的流量(如果启用了用户身份验证)。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

RejectedConnectionCount

由于负载均衡器达到连接数上限被拒绝的链接的数量。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

RequestCount

通过 IPv4 和 IPv6 处理的请求的数量。此指标仅在负载均衡器节点能够选择目标的请求中递增。在选择目标之前拒绝的请求不会反映在此指标中。

报告标准:始终报告

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • LoadBalancer, AvailabilityZone

  • LoadBalancer, TargetGroup

  • LoadBalancer, AvailabilityZone, TargetGroup

RuleEvaluations

在给定 1 小时的平均请求速率的情况下,负载均衡器处理的规则的数量。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

AWS/ApplicationELB 命名空间包括目标的以下指标。

指标 描述
HealthyHostCount

被视为正常运行的目标数量。

报告标准:在启用了运行状况检查时报告

统计数据:最有用的统计工具是 AverageMinimumMaximum

尺寸
  • LoadBalancer, TargetGroup

  • LoadBalancer, AvailabilityZone, TargetGroup

HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count

目标生成的 HTTP 响应代码的数量。它不包括负载均衡器生成的任何响应代码。

报告标准:有非零值

统计数据:最有用的统计数据是 Sum. MinimumMaximum 以及 Average 全部返回 1。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

RequestCountPerTarget

目标组中每个目标的平均请求数。您必须使用 TargetGroup 维度指定目标组。如果目标是 Lambda 函数,则此指标不适用。

此计数使用目标组收到的请求总数除以目标组中健康目标的数量。如果目标组中没有健康的目标,则会报告目标的总数。

报告标准:始终报告

统计:唯一有效的统计数据是 Sum。这代表平均值,而不是总和。

尺寸
  • TargetGroup

  • TargetGroup, AvailabilityZone

  • LoadBalancer, TargetGroup

  • LoadBalancer, AvailabilityZone, TargetGroup

TargetConnectionErrorCount

负载均衡器和目标之间连接建立不成功的次数。如果目标是 Lambda 函数,则此指标不适用。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

TargetResponseTime

请求离开负载均衡器直至收到来自目标的响应所用的时间(以秒为单位)。这与访问日志中的 target_processing_time 字段是等效的。

报告标准:有非零值

Statistics:最有用的统计工具是 AveragepNN.NN(百分比)。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

TargetTLSNegotiationErrorCount

由未与目标建立会话的负载均衡器发起的 TLS 连接数。可能的原因包括密码或协议不匹配。如果目标是 Lambda 函数,则此指标不适用。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

UnHealthyHostCount

被视为未正常运行的目标数量。

报告标准:在启用了运行状况检查时报告

统计数据:最有用的统计工具是 AverageMinimumMaximum

尺寸
  • LoadBalancer, TargetGroup

  • LoadBalancer, AvailabilityZone, TargetGroup

AWS/ApplicationELB 命名空间包括目标组运行状况的以下指标。有关更多信息,请参见 目标组运行状况

指标 描述
HealthyStateDNS

符合 DNS 运行状况良好状态要求的区域数量。

统计数据:最有用的统计工具是 Min

尺寸
  • LoadBalancer, TargetGroup

  • AvailabilityZone, LoadBalancer, TargetGroup

HealthyStateRouting

符合路由运行状况良好状态要求的区域数量。

统计数据:最有用的统计工具是 Min

尺寸
  • LoadBalancer, TargetGroup

  • AvailabilityZone, LoadBalancer, TargetGroup

UnhealthyRoutingRequestCount

使用路由故障转移操作(失败时开放)路由的请求数。

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer, TargetGroup

  • AvailabilityZone, LoadBalancer, TargetGroup

UnhealthyStateDNS

不符合 DNS 运行状况良好状态要求,因此在 DNS 中被标记为运行状况不佳的区域数量。

统计数据:最有用的统计工具是 Min

尺寸
  • LoadBalancer, TargetGroup

  • AvailabilityZone, LoadBalancer, TargetGroup

UnhealthyStateRouting

不符合路由运行状况良好状态要求,因此负载均衡器会将流量分配到区域中的所有目标(包括运行状况不佳的目标)的区域数量。

统计数据:最有用的统计工具是 Min

尺寸
  • LoadBalancer, TargetGroup

  • AvailabilityZone, LoadBalancer, TargetGroup

AWS/ApplicationELB 命名空间包括已注册为目标的 Lambda 函数的以下指标。

指标 描述
LambdaInternalError

因负载均衡器或 Amazon Lambda 内部出现问题而导致失败的对 Lambda 函数的请求数。要获取错误原因代码,请查看访问日志的 error_reason 字段。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • TargetGroup

  • TargetGroup, LoadBalancer

LambdaTargetProcessedBytes

负载均衡器为针对 Lambda 函数的请求和来自该函数的响应处理的字节的总数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

LambdaUserError

因 Lambda 函数出现问题而导致失败的对 Lambda 函数的请求数。例如,负载均衡器没有调用该函数的权限,负载均衡器从格式错误或缺少必填字段的函数接收 JSON,或者请求正文或响应的大小超过了 1 MB 的最大大小。要获取错误原因代码,请查看访问日志的 error_reason 字段。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • TargetGroup

  • TargetGroup, LoadBalancer

AWS/ApplicationELB 命名空间包括用户身份验证的以下指标。

指标 描述
ELBAuthError

由于身份验证操作配置错误、负载均衡器无法与 IdP 建立连接,或负载均衡器因内部错误无法完成身份验证流程,所导致的无法完成用户身份验证的次数。要获取错误原因代码,请查看访问日志的 error_reason 字段。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthFailure

由于 IdP 拒绝用户访问或授权代码多次使用导致的无法完成用户身份验证的次数。要获取错误原因代码,请查看访问日志的 error_reason 字段。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthLatency

向 IdP 查询 ID 令牌和用户信息所用的时间(毫秒)。如果这些操作中有一项或多项操作失败,这表示失败时间。

报告标准:有非零值

统计数据:所有统计数据均有意义。

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthRefreshTokenSuccess

负载均衡器使用 IdP 提供的刷新令牌成功刷新用户声明的次数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthSuccess

成功的身份验证操作的次数。负载均衡器从 IdP 检索用户身份声明后,验证工作流结束时此指标会递增。

报告标准:有非零值

统计数据:最有用的统计工具是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthUserClaimsSizeExceeded

配置的 IdP 返回大小超过 11K 字节的用户声明的次数。

报告标准:有非零值

统计数据:唯一有意义的统计数据是 Sum

尺寸
  • LoadBalancer

  • AvailabilityZone, LoadBalancer

Application Load Balancer 的指标维度

要筛选 Application Load Balancer 的指标,请使用以下维度。

维度 描述
AvailabilityZone

按可用区筛选指标数据。

LoadBalancer

按负载均衡器筛选指标数据。按如下方式指定负载均衡器:app load-balancer-name/1234567890123456(负载均衡器 ARN 的最后一部分)。

TargetGroup

按目标组筛选指标数据。按如下方式指定目标组:targetgroup target-group-name/1234567890123456(目标组 ARN 的最后一部分)。

Application Load Balancer 指标的统计数据

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

MinimumMaximum 统计数据反映每个采样窗口中各个负载均衡器节点报告的数据点的最小值和最大值。例如,假定应用程序负载均衡器由两个负载均衡器节点组成。一个节点的 HealthyHostCountMinimum 为 2,Maximum 为 10,Average 为 6,另一个节点的 HealthyHostCountMinimum 为 1,Maximum 为 5,Average 为 3。因此,负载均衡器的 Minimum 为 1,Maximum 为 10,Average 大约为 4。

我们建议您监控 Minimum 统计数据中的非零值 UnHealthyHostCount,并在多个数据点为非零值时发出警报。如果您使用 Minimum,则系统将检测负载均衡器中每个节点和可用区认为目标运行不正常的情况。如果您想收到有关潜在问题的提醒,则可以设置为按 AverageMaximum 发出警报,我们建议客户检查此指标并调查非零值情况。要自动减少故障,请遵循有关在 Amazon EC2 Auto Scaling 或 Amazon Elastic Container Service(Amazon ECS)中使用负载均衡器运行状况检查的最佳实践。

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

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

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

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

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

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

使用 Amazon EC2 控制台查看指标
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 要查看按目标组筛选的指标,请执行以下操作:

    1. 在导航窗格中,选择 Target Groups

    2. 选择目标组,然后选择 Monitoring 选项卡。

    3. (可选) 要按时间筛选结果,请从 Showing data for 中选择时间范围。

    4. 要获得单个指标的一个较大视图,请选择其图形。

  3. 要查看按负载均衡器筛选的指标,请执行以下操作:

    1. 在导航窗格中,选择 Load Balancers

    2. 选择您的负载均衡器,然后选择 Monitoring 选项卡。

    3. (可选) 要按时间筛选结果,请从 Showing data for 中选择时间范围。

    4. 要获得单个指标的一个较大视图,请选择其图形。

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

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

  3. 选择 ApplicationELB 命名空间。

  4. (可选)要跨所有维度查看某个指标,请在搜索字段中输入其名称。

  5. (可选) 要按维度筛选,请选择下列选项之一:

    • 要仅显示为负载均衡器报告的指标,请选择 Per AppELB Metrics。要查看单个负载均衡器的指标,请在搜索字段中输入其名称。

    • 要仅显示为您的目标组报告的指标,请选择 Per AppELB, per TG Metrics。要查看单个目标组的指标,请在搜索字段中输入其名称。

    • 要仅按可用区显示为负载均衡器报告的指标,请选择 Per AppELB, per AZ Metrics。要查看单个负载均衡器的指标,请在搜索字段中输入其名称。要查看单个可用区的指标,请在搜索字段中输入其名称。

    • 要仅按可用区和目标组显示为负载均衡器报告的指标,请选择 Per AppELB, per AZ, per TG Metrics。要查看单个负载均衡器的指标,请在搜索字段中输入其名称。要查看单个目标组的指标,请在搜索字段中输入其名称。要查看单个可用区的指标,请在搜索字段中输入其名称。

使用 Amazon CLI 查看指标

使用以下 list-metrics 命令列出可用指标:

aws cloudwatch list-metrics --namespace AWS/ApplicationELB
使用 Amazon CLI 获取指标的统计数据

使用以下get-metric-statistics命令获取指定指标和维度的统计信息。 CloudWatch 将每个唯一的维度组合视为一个单独的指标。您无法使用未专门发布的维度组合检索统计数据。您必须指定创建指标时使用的同一维度。

aws cloudwatch get-metric-statistics --namespace AWS/ApplicationELB \ --metric-name UnHealthyHostCount --statistics Average --period 3600 \ --dimensions Name=LoadBalancer,Value=app/my-load-balancer/50dc6c495c0c9188 \ Name=TargetGroup,Value=targetgroup/my-targets/73e2d6bc24d8a067 \ --start-time 2016-04-18T00:00:00Z --end-time 2016-04-21T00:00:00Z

下面是示例输出:

{ "Datapoints": [ { "Timestamp": "2016-04-18T22:00:00Z", "Average": 0.0, "Unit": "Count" }, { "Timestamp": "2016-04-18T04:00:00Z", "Average": 0.0, "Unit": "Count" }, ... ], "Label": "UnHealthyHostCount" }