Menu
Amazon CloudWatch
User Guide

Elastic Load Balancing Metrics and Dimensions

Elastic Load Balancing supports two types of load balancers: Classic Load Balancers and Application Load Balancers. Elastic Load Balancing sends metrics to CloudWatch for both types of load balancers.

Application Load Balancer Metrics

The AWS/ApplicationELB namespace includes the following metrics.

MetricDescription
ActiveConnectionCount

The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets.

Statistics: The most useful statistic is Sum.

ClientTLSNegotiationErrorCount

The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols.

Statistics: The most useful statistic is Sum.

HealthyHostCount

The number of targets that are considered healthy.

Statistics: The most useful statistics are Average, Minimum, and Maximum.

HTTPCode_ELB_4XX_Count

The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target. This count does not include any response codes generated by the targets.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

HTTPCode_ELB_5XX_Count

The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

NewConnectionCount

The total number of new TCP connections established from clients to the load balancer and from the load balancer to targets.

Statistics: The most useful statistic is Sum.

ProcessedBytes

The total number of bytes processed by the load balancer.

RejectedConnectionCount

The number of connections that were rejected because the load balancer could not establish a connection with a healthy target in order to route the request.

Statistics: The most useful statistic is Sum.

RequestCount

The number of requests received by the load balancer.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

TargetConnectionErrorCount

The number of connections that were not successfully established between the load balancer and target.

Statistics: The most useful statistic is Sum.

TargetResponseTime

The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received. This is equivalent to the target_processing_time field in the access logs.

Statistics: The most useful statistics are Average and pNN.NN (percentiles).

TargetTLSNegotiationErrorCount

The number of TLS connections initiated by the load balancer that did not establish a session with the target. Possible causes include a mismatch of ciphers or protocols.

Statistics: The most useful statistic is Sum.

UnHealthyHostCount

The number of targets that are considered unhealthy.

Statistics: The most useful statistics are Average, Minimum, and Maximum.

Metric Dimensions for Application Load Balancers

To filter the metrics for your Application Load Balancer, use the following dimensions.

DimensionDescription
AvailabilityZone

Filter the metric data by Availability Zone.

LoadBalancer

Filter the metric data by load balancer. Specify the load balancer as follows: app/load-balancer-name/1234567890123456 (the final portion of the load balancer ARN).

TargetGroup

Filter the metric data by target group. Specify the target group as follows: targetgroup/target-group-name/1234567890123456 (the final portion of the target group ARN).

Classic Load Balancer Metrics

The AWS/ELB namespace includes the following metrics.

MetricDescription
BackendConnectionErrors

The number of connections that were not successfully established between the load balancer and the registered instances. Because the load balancer retries the connection when there are errors, this count can exceed the request rate. Note that this count also includes any connection errors related to health checks.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Average, Minimum, and Maximum are reported per load balancer node and are not typically useful. However, the difference between the minimum and maximum (or peak to average or average to trough) might be useful to determine whether a load balancer node is an outlier.

Example: Suppose that your load balancer has 2 instances in us-west-2a and 2 instances in us-west-2b, and that attempts to connect to 1 instance in us-west-2a result in back-end connection errors. The sum for us-west-2a includes these connection errors, while the sum for us-west-2b does not include them. Therefore, the sum for the load balancer equals the sum for us-west-2a.

HealthyHostCount, UnHealthyHostCount

The number of healthy and unhealthy instances registered with your load balancer. A newly registered instance is considered healthy after it passes the first health check. An instance is considered unhealthy after it exceeds the unhealthy threshold configured for health checks. An unhealthy instance is considered healthy again after it meets the healthy threshold configured for health checks. If cross-zone load balancing is enabled, the number of healthy instances for the LoadBalancerName dimension is calculated across all Availability Zones.

Reporting criteria: There are registered instances

Statistics: The most useful statistics are Average, Minimum, and Maximum. These statistics are determined by the load balancer nodes. Note that some load balancer nodes might determine that an instance is unhealthy for a brief period while other nodes determine that it is healthy.

Example: Suppose that your load balancer has 2 instances in us-west-2a and 2 instances in us-west-2b, us-west-2a has 1 unhealthy instance, and us-west-2b has no unhealthy instances. With the AvailabilityZone dimension, there is an average of 1 healthy and 1 unhealthy instance in us-west-2a, and an average of 2 healthy and 0 unhealthy instances in us-west-2b.

HTTPCode_Backend_2XX, HTTPCode_Backend_3XX, HTTPCode_Backend_4XX, HTTPCode_Backend_5XX

[HTTP listener] The number of HTTP response codes generated by registered instances. This count does not include any response codes generated by the load balancer.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average are all 1.

Example: Suppose that your load balancer has 2 instances in us-west-2a and 2 instances in us-west-2b, and that requests sent to 1 instance in us-west-2a result in HTTP 500 responses. The sum for us-west-2a includes these error responses, while the sum for us-west-2b does not include them. Therefore, the sum for the load balancer equals the sum for us-west-2a.

HTTPCode_ELB_4XX

[HTTP listener] The number of HTTP 4XX client error codes generated by the load balancer. Client errors are generated when a request is malformed or incomplete.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average are all 1.

Example: Suppose that your load balancer has us-west-2a and us-west-2b enabled, and that client requests include a malformed request URL. As a result, client errors would likely increase in all Availability Zones. The sum for the load balancer is the sum of the values for the Availability Zones.

HTTPCode_ELB_5XX

[HTTP listener] The number of HTTP 5XX server error codes generated by the load balancer. This count does not include any response codes generated by the registered instances. The metric is reported if there are no healthy instances registered to the load balancer, or if the request rate exceeds the capacity of the instances (spillover) or the load balancer.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average are all 1.

Example: Suppose that your load balancer has us-west-2a and us-west-2b enabled, and that instances in us-west-2a are experiencing high latency and are slow to respond to requests. As a result, the surge queue for the load balancer nodes in us-west-2a fills and clients receive a 503 error. If us-west-2b continues to respond normally, the sum for the load balancer equals the sum for us-west-2a.

Latency

[HTTP listener] The time elapsed, in seconds, after the request leaves the load balancer until the headers of the response are received.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistics are Average and pNN.NN (percentiles). Use Maximum to determine whether some requests are taking substantially longer than the average. Note that Minimum is typically not useful.

Example: Suppose that your load balancer has 2 instances in us-west-2a and 2 instances in us-west-2b, and that requests sent to 1 instance in us-west-2a have a higher latency. The average for us-west-2a has a higher value than the average for us-west-2b.

RequestCount

The number of requests completed or connections made during the specified interval (1 or 5 minutes).

[HTTP listener] The number of requests received and routed, including HTTP error responses from the registered instances.

[TCP listener] The number of connections made to the registered instances.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Example: Suppose that your load balancer has 2 instances in us-west-2a and 2 instances in us-west-2b, and that 100 requests are sent to the load balancer. There are 60 requests sent to us-west-2a, with each instance receiving 30 requests, and 40 requests sent to us-west-2b, with each instance receiving 20 requests. With the AvailabilityZone dimension, there is a sum of 60 requests in us-west-2a and 40 requests in us-west-2b. With the LoadBalancerName dimension, there is a sum of 100 requests.

SpilloverCount

The total number of requests that were rejected because the surge queue is full.

[HTTP listener] The load balancer returns an HTTP 503 error code.

[TCP listener] The load balancer closes the connection.

Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Average, Minimum, and Maximum are reported per load balancer node and are not typically useful.

Example: Suppose that your load balancer has us-west-2a and us-west-2b enabled, and that instances in us-west-2a are experiencing high latency and are slow to respond to requests. As a result, the surge queue for the load balancer node in us-west-2a fills, resulting in spillover. If us-west-2b continues to respond normally, the sum for the load balancer will be the same as the sum for us-west-2a.

SurgeQueueLength

The total number of requests that are pending routing. The load balancer queues a request if it is unable to establish a connection with a healthy instance in order to route the request. The maximum size of the queue is 1,024. Additional requests are rejected when the queue is full. For more information, see SpilloverCount.

Reporting criteria: There is a nonzero value.

Statistics: The most useful statistic is Maximum, because it represents the peak of queued requests. The Average statistic can be useful in combination with Minimum and Maximum to determine the range of queued requests. Note that Sum is not useful.

Example: Suppose that your load balancer has us-west-2a and us-west-2b enabled, and that instances in us-west-2a are experiencing high latency and are slow to respond to requests. As a result, the surge queue for the load balancer nodes in us-west-2a fills, with clients likely experiencing increased response times. If this continues, the load balancer will likely have spillovers (see the SpilloverCount metric). If us-west-2b continues to respond normally, the max for the load balancer will be the same as the max for us-west-2a.

Metric Dimensions for Classic Load Balancers

To filter the metrics for your Classic Load Balancer, use the following dimensions.

Dimension

Description

AvailabilityZone

Filter the metric data by the specified Availability Zone.

LoadBalancerName

Filter the metric data by the specified load balancer.