Introduction
Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, including:
- Amazon EC2 instances
- Containers
- IP addresses
- Lambda functions
Elastic Load Balancing handles the varying load of application traffic in a single availability zone or across multiple availability zones. There are 3 types of load balancers:
- Elastic load balancer
- Application load balancer
- Network load balancer
Classic load balancer
The classic load balancer distributes incoming application traffic across multiple EC2 instances in multiple availability zones. This increases the fault tolerance of applications. Elastic Load Balancing detects unhealthy instances and routes traffic only to healthy instances.
Application load balance
The application load balancer functions at the application layer, the seventh layer of the Open Systems Interconnection (OSI) model. After the load balancer receives a request, it evaluates the listener rules in priority order to determine which rule to apply, and then selects a target from the target group for the rule action.
Network load balancer
A network load balancer operates at the connection level (layer 4), it routes connections to targets. These targets are Amazon EC2 instances, microservices, or containers within the Amazon Virtual Private Cloud (Amazon VPC) based on IP protocol data.
Note
Use the OpsRamp AWS public cloud integration to discover and collect metrics against the AWS service.Setup
To set up the OpsRamp AWS integration and discover the AWS service,
go to AWS Integration Discovery Profile and select Load balancers
.
Metrics
Classic metrics
OpsRamp Metric | Metric Display Name | Unit | Aggregation Type | Description |
---|---|---|---|---|
aws_elb_HealthyHostCount | HealthyHostCount | Count | AVERAGE | Number count of healthy instances in each Availability Zone. Hosts are declared healthy if they meet the threshold for Number of consecutive health checks that are successful. Hosts that have failed more health checks than the value of the unhealthy threshold are considered unhealthy. If cross-zone is enabled, the count of Number of healthy instances is calculated for all Availability Zones. |
aws_elb_UnHealthyHostCount | UnHealthyHostCount | Count | AVERAGE | Number count of unhealthy instances in each Availability Zone. Hosts that have failed more health checks than the value of the unhealthy threshold are considered unhealthy. If cross-zone is enabled, the count of Number of unhealthy instances is calculated for all Availability Zones. Instances may become unhealthy due to connectivity issues, health checks returning non-200 responses (in the case of HTTP or HTTPS health checks), or timeouts when performing the health check. |
aws_elb_RequestCount | RequestCount | Count | AVERAGE | Number count of completed requests that were received and routed to the back-end instances. |
aws_elb_Latency | Latency | secs | AVERAGE | Measures the time elapsed in seconds after the request leaves Load balancer until the response is received. |
aws_elb_HTTPCode_ELB_4XX | HTTPCode_ELB_4XX | Count | AVERAGE | Number count of HTTP 4XX client error codes generated by the load balancer when the listener is configured to use HTTP or HTTPS protocols. Client errors are generated when a request is malformed or is incomplete. |
aws_elb_HTTPCode_ELB_5XX | HTTPCode_ELB_5XX | Count | AVERAGE | Number count of HTTP 5XX server error codes generated by the load balancer when the listener is configured to use HTTP or HTTPS protocols. This metric does not include any responses generated by back-end instances. |
aws_elb_HTTPCode_Backend_2XX | HTTPCode_Backend_2XX | Count | AVERAGE | Number count of HTTP response codes generated by back-end instances. This metric does not include any response codes generated by the load balancer. The 2XX class status codes represent successful actions. |
aws_elb_HTTPCode_Backend_3XX | HTTPCode_Backend_3XX | Count | AVERAGE | Number count of HTTP response codes generated by back-end instances. This metric does not include any response codes generated by the load balancer. The 3XX class status code indicates that the user agent requires action. |
aws_elb_HTTPCode_Backend_4XX | HTTPCode_Backend_4XX | Count | AVERAGE | Number count of HTTP response codes generated by back-end instances. This metric does not include any response codes generated by the load balancer. The 4XX class status code represents client errors. |
aws_elb_HTTPCode_Backend_5XX | HTTPCode_Backend_5XX | Count | AVERAGE | Number count of HTTP response codes generated by back-end instances. This metric does not include any response codes generated by the load balancer. The 5XX class status code represents back-end server errors. |
aws_elb_BackendConnectionErrors | BackendConnectionErrors | Count | AVERAGE | Number count of connections that were not successfully established between Load balancer and the registered instances. Because Load balancer will retry when there are connection errors, this count can exceed the request rate. |
aws_elb_SurgeQueueLength | SurgeQueueLength | Count | AVERAGE | Total number count of requests that are pending submission to a registered instance. |
aws_elb_SpilloverCount | SpilloverCount | Count | AVERAGE | Total number count of requests that were rejected due to the queue being full. |
aws_elb_EstimatedALBConsumedLCUs | Estimated ALB Consumed LCUs | Count | Average | The estimated number of load balancer capacity units (LCU) used by an Application Load Balancer. You pay for Number of LCUs that you use per hour |
aws_elb_EstimatedALBActiveConnectionCount | Estimated ALB Active Connection Count | Count | Average | The estimated number of concurrent TCP connections active from clients to Load balancer and from the load balancer to targets. |
aws_elb_EstimatedALBNewConnectionCount | Estimated ALB New Connection Count | Count | Average | The estimated number of new TCP connections established from clients to Load balancer and from the load balancer to targets. |
aws_elb_EstimatedProcessedBytes | Estimated Processed Bytes | Bytes | Average | The estimated number of bytes processed by an Application Load Balancer. |
cloud.instance.state | Status/State | n/a | n/a | Status/State |
Application metrics
OpsRamp Metric | Metric Display Name | Unit | Aggregation Type | Description |
---|---|---|---|---|
cloud.instance.state | Status/State | n/a | n/a | Status/State |
aws_applicationelb_ActiveConnectionCount | ActiveConnectionCount(Application) | Count | AVERAGE | Total number of concurrent TCP connections active from clients to Load balancer and from the load balancer to targets. |
aws_applicationelb_ClientTLSNegotiationErrorCount | ClientTLSNegotiationErrorCount(Application) | Count | AVERAGE | Number of TLS connections initiated by the client that did not establish a session with Load balancer. Possible causes include a mismatch of ciphers or protocols. |
aws_applicationelb_HealthyHostCount | HealthyHostCount(Application) | Count | AVERAGE | Number of targets that are considered healthy. |
aws_applicationelb_HTTPCode_ELB_4XX_Count | HTTPCode_ELB_4XX_Count(Application) | Count | AVERAGE | 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. |
aws_applicationelb_HTTPCode_ELB_5XX_Count | HTTPCode_ELB_5XX_Count(Application) | Count | AVERAGE | 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. |
aws_applicationelb_HTTPCode_Target_2XX_Count | HTTPCode_Target_2XX_Count(Application) | Count | AVERAGE | Number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. |
aws_applicationelb_HTTPCode_Target_3XX_Count | HTTPCode_Target_3XX_Count(Application) | Count | AVERAGE | Number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. |
aws_applicationelb_HTTPCode_Target_4XX_Count | HTTPCode_Target_4XX_Count(Application) | Count | AVERAGE | Number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. |
aws_applicationelb_HTTPCode_Target_5XX_Count | HTTPCode_Target_5XX_Count(Application) | Count | AVERAGE | Number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. |
aws_applicationelb_NewConnectionCount | NewConnectionCount(Application) | Count | AVERAGE | Total number of new TCP connections established from clients to Load balancer and from the load balancer to targets. |
aws_applicationelb_RejectedConnectionCount | RejectedConnectionCount(Application) | Count | AVERAGE | Number of connections that were rejected because Load balancer could not establish a connection with a healthy target in order to route the request. |
aws_applicationelb_ProcessedBytes | ProcessedBytes(Application) | Count | AVERAGE | Total number of bytes processed by the load balancer. |
aws_applicationelb_RequestCount | RequestCount(Application) | Count | AVERAGE | Number of requests received by the load balancer. |
aws_applicationelb_TargetConnectionErrorCount | TargetConnectionErrorCount(Application) | Count | AVERAGE | TNumber of connections that were not successfully established betweenthe load balancer and target. |
aws_applicationelb_TargetResponseTime | TargetResponseTime(Application) | Count | AVERAGE | 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. |
aws_applicationelb_TargetTLSNegotiationErrorCount | TargetTLSNegotiationErrorCount(Application) | Count | AVERAGE | 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. |
aws_applicationelb_UnHealthyHostCount | UnHealthyHostCount(Application) | Count | AVERAGE | Number of targets that are considered unhealthy. |
aws_applicationelb_HTTP_Fixed_Response_Count | HTTP Fixed Response Count | Sum | Count | Number of fixed-response actions that were successful. |
aws_applicationelb_HTTP_Redirect_Count | HTTP Redirect Count | Sum | Count | Number of redirect actions that were successful. |
aws_applicationelb_HTTP_Redirect_Url_Limit_Exceeded_Count | HTTP Redirect Url Limit Exceeded Count | Sum | Count | Number of redirect actions that couldn't be completed because the URL in the response location header is larger than 8K. |
aws_applicationelb_HTTPCode_ELB_3XX_Count | HTTPCode ELB 3XX Count | Sum | Count | Number of HTTP 3XX redirection codes that originate from the load balancer. |
aws_applicationelb_HTTPCode_ELB_500_Count | HTTPCode ELB 500 Count | Sum | Count | Number of HTTP 500 error codes that originate from the load balancer. |
aws_applicationelb_HTTPCode_ELB_502_Count | HTTPCode ELB 502 Count | Sum | Count | Number of HTTP 502 error codes that originate from the load balancer. |
aws_applicationelb_HTTPCode_ELB_503_Count | HTTPCode ELB 503 Count | Sum | Count | Number of HTTP 503 error codes that originate from the load balancer. |
aws_applicationelb_HTTPCode_ELB_504_Count | HTTPCode ELB 504 Count | Sum | Count | Number of HTTP 504 error codes that originate from the load balancer. |
aws_applicationelb_IPv6RequestCount | IPv6 Request Count | Sum | Count | Number of IPv6 requests received by the load balancer. |
aws_applicationelb_IPv6ProcessedBytes | IPv6 Processed Bytes | Sum | Bytes | Total number of bytes processed by the load balancer over IPv6. This count is included in ProcessedBytes. |
aws_applicationelb_RuleEvaluations | Rule Evaluations | Sum | Count | Number of rules processed by the load balancer given a request rate averaged over an hour. |
aws_applicationelb_ELBAuthError | ELB Auth Error | Sum | Count | Number of user authentications that could not be completed because an authenticate action was misconfigured, Load balancer couldn't establish a connection with the IdP, or Load balancer couldn't complete the authentication flow due to an internal error. To get the error reason codes, check the error_reason field of the access log. |
aws_applicationelb_ELBAuthFailure | ELB Auth Failure | Sum | Count | Number of user authentications that could not be completed because the IdP denied access to the user or an authorization code was used more than once. To get the error reason codes, check the error_reason field of the access log. |
aws_applicationelb_ELBAuthLatency | ELB Auth Latency | Sum | Count | Time elapsed, in milliseconds, to query the IdP for the ID token and user info. If one or more of these operations fail, this is the time to failure. |
aws_applicationelb_ELBAuthRefreshTokenSuccess | ELB Auth Refresh Token Success | Sum | Count | Number of times Load balancer successfully refreshed user claims using a refresh token provided by the IdP. |
aws_applicationelb_ELBAuthSuccess | ELB Auth Success | Sum | Count | Number of authenticate actions that were successful. This metric is incremented at the end of the authentication workflow, after Load balancer has retrieved the user claims from the IdP. |
aws_applicationelb_ELBAuthUserClaimsSizeExceeded | ELB Auth User Claims Size Exceeded | Sum | Count | Number of times that a configured IdP returned user claims that exceeded 11K bytes in size. |
Network metrics
OpsRamp Metric | Metric Display Name | Unit | Aggregation Type | Description |
---|---|---|---|---|
aws_networkelb_ActiveFlowCount | Active flow count(Network) | Count | Average | Total number of concurrent TCP flows (or connections) from clients to targets. This metric includes connections in the SYN_SENT and ESTABLISHED states. TCP connections are not terminated at the load balancer, so a client opening a TCP connection to a target counts as a single flow. |
aws_networkelb_ConsumedLCUs | ConsumedLBCapacityUnits(Network) | Count | Average | Number of load balancer capacity units (LCU) used by your load balancer. You pay for Number of LCUs that you use per hour. |
aws_networkelb_NewFlowCount | New flow count(Network) | Count | Sum | Total number of new TCP flows (or connections) established from clients to targets in the time period. |
aws_networkelb_TCP_Client_Reset_Count | Client reset count(Network) | Count | Sum | Total number of reset (RST) packets sent from a client to a target. These resets are generated by the client and forwarded by the load balancer. |
aws_networkelb_TCP_ELB_Reset_Count | Load balancer reset count(Network) | Count | Sum | Total number of reset (RST) packets generated by the load balancer. |
aws_networkelb_TCP_Target_Reset_Count | Target reset count(Network) | Count | Sum | Total number of reset (RST) packets sent from a target to a client. These resets are generated by the target and forwarded by the load balancer. |
aws_networkelb_ProcessedBytes | Processed Bytes(Network) | Bytes | Sum | Total number of bytes processed by the load balancer, including TCP/IP headers. |
aws_networkelb_ActiveFlowCount_TCP | Active Flow Count TCP | Count | Average | Total number of concurrent TCP flows (or connections) from clients to targets. This metric includes only connections in the ESTABLISHED state. TCP connections are not terminated at Load balancer, so a client opening a TCP connection to a target counts as a single flow. |
aws_networkelb_ActiveFlowCount_TLS | Active Flow Count TLS | Count | Average | Total number of concurrent TLS flows (or connections) from clients to targets. This metric includes only connections in the ESTABLISHED state. |
aws_networkelb_ActiveFlowCount_UDP | Active Flow Count UDP | Count | Average | Total number of concurrent UDP flows (or connections) from clients to targets. |
aws_networkelb_ConsumedLCUs_TCP | Consumed LCUs TCP | Count | Average | Number of load balancer capacity units (LCU) used by the load balancer for TCP. Pay for number of LCUs used per hour. |
aws_networkelb_ConsumedLCUs_TLS | Consumed LCUs TLS | Count | Average | Number of load balancer capacity units (LCU) used by your load balancer for TLS. Pay for number of LCUs used per hour. |
aws_networkelb_ConsumedLCUs_UDP | Consumed LCUs UDP | Count | Average | Number of load balancer capacity units (LCU) used by your load balancer for UDP. Pay for number of LCUs used per hour. |
aws_networkelb_NewFlowCount_TCP | New Flow Count TCP | Count | Average | Total number of new TCP flows (or connections) established from clients to targets in the time period. |
aws_networkelb_NewFlowCount_TLS | New Flow Count TLS | Count | Average | Total number of new TLS flows (or connections) established from clients to targets in the time period. |
aws_networkelb_NewFlowCount_UDP | New Flow Count UDP | Count | Average | Total number of new UDP flows (or connections) established from clients to targets in the time period. |
aws_networkelb_ProcessedBytes_TCP | Processed Bytes TCP | Bytes | Average | Total number of bytes processed by TCP listeners. |
aws_networkelb_ProcessedBytes_TLS | Processed Bytes TLS | Bytes | Average | Total number of bytes processed by TLS listeners. |
aws_networkelb_ProcessedBytes_UDP | Processed Bytes UDP | Bytes | Average | Total number of bytes processed by UDP listeners. |
Event support
CloudTrail event support
- Supported (CreateLoadBalancer, DeleteLoadBalancer)
- Configurable in OpsRamp AWS Integration Discovery Profile.
CloudWatch alarm support
- Supported
- Configurable in OpsRamp AWS Integration Discovery Profile.