Elastic Load Balancing
应用程序负载均衡器
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

应用程序负载均衡器的 CloudWatch 指标

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

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

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

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

应用程序负载均衡器 指标

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

指标 描述
ActiveConnectionCount

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

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

ClientTLSNegotiationErrorCount

由未与负载均衡器建立会话的客户端发起的 TLS 连接数。可能的原因包括密码或协议不匹配。

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

ConsumedLCUs

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

HealthyHostCount

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

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

HTTPCode_ELB_4XX_Count

源自负载均衡器的 HTTP 4XX 客户端错误代码的数量。如果请求格式错误或不完整,则会生成客户端错误。目标尚未收到这些请求。该计数不包含目标生成的任何响应代码。

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

HTTPCode_ELB_5XX_Count

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

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

HTTPCode_Target_2XX_CountHTTPCode_Target_3XX_CountHTTPCode_Target_4XX_CountHTTPCode_Target_5XX_Count

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

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

IPv6ProcessedBytes

负载均衡器通过 IPv6 处理的总字节数。

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

IPv6RequestCount

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

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

NewConnectionCount

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

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

ProcessedBytes

负载均衡器通过 IPv4 和 IPv6 处理的总字节数。

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

RejectedConnectionCount

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

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

RequestCount

负载均衡器收到的请求数量。这包括通过 IPv4 和 IPv6 的请求。

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

RequestCountPerTarget

目标组中每个目标收到的平均请求数量。您必须使用 TargetGroup 维度指定目标组。

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

RuleEvaluations

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

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

TargetConnectionErrorCount

负载均衡器和目标之间连接建立不成功的次数。

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

TargetResponseTime

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

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

TargetTLSNegotiationErrorCount

由未与目标建立会话的负载均衡器发起的 TLS 连接数。可能的原因包括密码或协议不匹配。

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

UnHealthyHostCount

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

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

应用程序负载均衡器 的指标维度

要筛选您的应用程序负载均衡器的指标,可以使用以下维度。

维度 描述
AvailabilityZone

按照可用区筛选指标数据。

LoadBalancer

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

TargetGroup

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

应用程序负载均衡器指标的统计数据

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 仅适用于对所有负载均衡器节点进行汇总的指标。

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

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

查看负载均衡器的 CloudWatch 指标

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

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

使用 Amazon EC2 控制台查看指标

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

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

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

    4. 要获得单个指标的一个较大视图,请选择其图形。可供使用的指标如下:

      • 正常主机 - HealthyHostCount

      • 不正常的主机 - UnHealthyHostCount

      • 平均延迟 - TargetResponseTime

      • 请求总数 - RequestCount

      • 目标连接错误 - TargetConnectionErrorCount

      • 已拒绝连接总和 - RejectedConnectionCount

      • ELB 4XX 总数 - HTTPCode_ELB_4XX_Count

      • ELB 5XX 总数 - HTTPCode_ELB_5XX_Count

      • HTTP 2XX 总数 - HTTPCode_Target_2XX_Count

      • HTTP 3XX 总数 - HTTPCode_Target_3XX_Count

      • HTTP 4XX 总数 - HTTPCode_Target_4XX_Count

      • HTTP 5XX 总数 - HTTPCode_Target_5XX_Count

      • 目标 TLS 协商错误 - TargetTLSNegotiationErrorCount

      • 客户端 TLS 协商错误 - ClientTLSNegotiationErrorCount

      • 活动连接数 - ActiveConnectionCount

      • 新建连接数 - NewConnectionCount

      • 已处理的字节数 - ProcessedBytes

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

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

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

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

    4. 要获得单个指标的一个较大视图,请选择其图形。可供使用的指标如下:

      • 平均延迟 - TargetResponseTime

      • 请求总数 - RequestCount

      • 新建连接数 - NewConnectionCount

      • 活动连接数 - ActiveConnectionCount

      • 已处理的字节数 - ProcessedBytes

      • 规则评估 - RuleEvaluations

      • 已使用的负载均衡器容量单位数 — ConsumedLCUs

      • 目标连接错误 - TargetConnectionErrorCount

      • 已拒绝连接总和 - RejectedConnectionCount

      • 客户端 TLS 协商错误 - ClientTLSNegotiationErrorCount

      • 目标 TLS 协商错误 - TargetTLSNegotiationErrorCount

      • HTTP 2XX 总数 - HTTPCode_Target_2XX_Count

      • HTTP 3XX 总数 - HTTPCode_Target_3XX_Count

      • HTTP 4XX 总数 - HTTPCode_Target_4XX_Count

      • HTTP 5XX 总数 - HTTPCode_Target_5XX_Count

      • ELB HTTP 4XX 总数 - HTTPCode_ELB_4XX_Count

      • ELB HTTP 5XX 总数 - HTTPCode_ELB_5XX_Count

使用 CloudWatch 控制台查看指标

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

  2. 在导航窗格中,选择 Metrics

  3. 选择 ApplicationELB 命名空间。

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

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

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

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

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

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

使用 AWS CLI 查看指标

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

Copy
aws cloudwatch list-metrics --namespace AWS/ApplicationELB

使用 AWS CLI 获取指标的统计数据

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

Copy
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"
}