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.

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 MetricMetric Display NameUnitAggregation TypeDescription
aws_elb_HealthyHostCountHealthyHostCountCountAVERAGENumber 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_UnHealthyHostCountUnHealthyHostCountCountAVERAGENumber 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_RequestCountRequestCountCountAVERAGENumber count of completed requests that were received and routed to the back-end instances.
aws_elb_LatencyLatencysecsAVERAGEMeasures the time elapsed in seconds after the request leaves Load balancer until the response is received.
aws_elb_HTTPCode_ELB_4XXHTTPCode_ELB_4XXCountAVERAGENumber 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_5XXHTTPCode_ELB_5XXCountAVERAGENumber 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_2XXHTTPCode_Backend_2XXCountAVERAGENumber 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_3XXHTTPCode_Backend_3XXCountAVERAGENumber 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_4XXHTTPCode_Backend_4XXCountAVERAGENumber 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_5XXHTTPCode_Backend_5XXCountAVERAGENumber 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_BackendConnectionErrorsBackendConnectionErrorsCountAVERAGENumber 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_SurgeQueueLengthSurgeQueueLengthCountAVERAGETotal number count of requests that are pending submission to a registered instance.
aws_elb_SpilloverCountSpilloverCountCountAVERAGETotal number count of requests that were rejected due to the queue being full.
aws_elb_EstimatedALBConsumedLCUsEstimated ALB Consumed LCUsCountAverageThe 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_EstimatedALBActiveConnectionCountEstimated ALB Active Connection CountCountAverageThe estimated number of concurrent TCP connections active from clients to Load balancer and from the load balancer to targets.
aws_elb_EstimatedALBNewConnectionCountEstimated ALB New Connection CountCountAverageThe estimated number of new TCP connections established from clients to Load balancer and from the load balancer to targets.
aws_elb_EstimatedProcessedBytesEstimated Processed BytesBytesAverageThe estimated number of bytes processed by an Application Load Balancer.
cloud.instance.stateStatus/Staten/an/aStatus/State

Application metrics

OpsRamp MetricMetric Display NameUnitAggregation TypeDescription
cloud.instance.stateStatus/Staten/an/aStatus/State
aws_applicationelb_ActiveConnectionCountActiveConnectionCount(Application)CountAVERAGETotal number of concurrent TCP connections active from clients to Load balancer and from the load balancer to targets.
aws_applicationelb_ClientTLSNegotiationErrorCountClientTLSNegotiationErrorCount(Application)CountAVERAGENumber 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_HealthyHostCountHealthyHostCount(Application)CountAVERAGENumber of targets that are considered healthy.
aws_applicationelb_HTTPCode_ELB_4XX_CountHTTPCode_ELB_4XX_Count(Application)CountAVERAGENumber 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_CountHTTPCode_ELB_5XX_Count(Application)CountAVERAGENumber 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_CountHTTPCode_Target_2XX_Count(Application)CountAVERAGENumber 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_CountHTTPCode_Target_3XX_Count(Application)CountAVERAGENumber 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_CountHTTPCode_Target_4XX_Count(Application)CountAVERAGENumber 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_CountHTTPCode_Target_5XX_Count(Application)CountAVERAGENumber of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer.
aws_applicationelb_NewConnectionCountNewConnectionCount(Application)CountAVERAGETotal number of new TCP connections established from clients to Load balancer and from the load balancer to targets.
aws_applicationelb_RejectedConnectionCountRejectedConnectionCount(Application)CountAVERAGENumber 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_ProcessedBytesProcessedBytes(Application)CountAVERAGETotal number of bytes processed by the load balancer.
aws_applicationelb_RequestCountRequestCount(Application)CountAVERAGENumber of requests received by the load balancer.
aws_applicationelb_TargetConnectionErrorCountTargetConnectionErrorCount(Application)CountAVERAGETNumber of connections that were not successfully established betweenthe load balancer and target.
aws_applicationelb_TargetResponseTimeTargetResponseTime(Application)CountAVERAGEThe 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_TargetTLSNegotiationErrorCountTargetTLSNegotiationErrorCount(Application)CountAVERAGENumber 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_UnHealthyHostCountUnHealthyHostCount(Application)CountAVERAGENumber of targets that are considered unhealthy.
aws_applicationelb_HTTP_Fixed_Response_CountHTTP Fixed Response CountSumCountNumber of fixed-response actions that were successful.
aws_applicationelb_HTTP_Redirect_CountHTTP Redirect CountSumCountNumber of redirect actions that were successful.
aws_applicationelb_HTTP_Redirect_Url_Limit_Exceeded_CountHTTP Redirect Url Limit Exceeded CountSumCountNumber 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_CountHTTPCode ELB 3XX CountSumCountNumber of HTTP 3XX redirection codes that originate from the load balancer.
aws_applicationelb_HTTPCode_ELB_500_CountHTTPCode ELB 500 CountSumCountNumber of HTTP 500 error codes that originate from the load balancer.
aws_applicationelb_HTTPCode_ELB_502_CountHTTPCode ELB 502 CountSumCountNumber of HTTP 502 error codes that originate from the load balancer.
aws_applicationelb_HTTPCode_ELB_503_CountHTTPCode ELB 503 CountSumCountNumber of HTTP 503 error codes that originate from the load balancer.
aws_applicationelb_HTTPCode_ELB_504_CountHTTPCode ELB 504 CountSumCountNumber of HTTP 504 error codes that originate from the load balancer.
aws_applicationelb_IPv6RequestCountIPv6 Request CountSumCountNumber of IPv6 requests received by the load balancer.
aws_applicationelb_IPv6ProcessedBytesIPv6 Processed BytesSumBytesTotal number of bytes processed by the load balancer over IPv6. This count is included in ProcessedBytes.
aws_applicationelb_RuleEvaluationsRule EvaluationsSumCountNumber of rules processed by the load balancer given a request rate averaged over an hour.
aws_applicationelb_ELBAuthErrorELB Auth ErrorSumCountNumber 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_ELBAuthFailureELB Auth FailureSumCountNumber 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_ELBAuthLatencyELB Auth LatencySumCountTime 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_ELBAuthRefreshTokenSuccessELB Auth Refresh Token SuccessSumCountNumber of times Load balancer successfully refreshed user claims using a refresh token provided by the IdP.
aws_applicationelb_ELBAuthSuccessELB Auth SuccessSumCountNumber 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_ELBAuthUserClaimsSizeExceededELB Auth User Claims Size ExceededSumCountNumber of times that a configured IdP returned user claims that exceeded 11K bytes in size.

Network metrics

OpsRamp MetricMetric Display NameUnitAggregation TypeDescription
aws_networkelb_ActiveFlowCountActive flow count(Network)CountAverageTotal 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_ConsumedLCUsConsumedLBCapacityUnits(Network)CountAverageNumber of load balancer capacity units (LCU) used by your load balancer. You pay for Number of LCUs that you use per hour.
aws_networkelb_NewFlowCountNew flow count(Network)CountSumTotal number of new TCP flows (or connections) established from clients to targets in the time period.
aws_networkelb_TCP_Client_Reset_CountClient reset count(Network)CountSumTotal 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_CountLoad balancer reset count(Network)CountSumTotal number of reset (RST) packets generated by the load balancer.
aws_networkelb_TCP_Target_Reset_CountTarget reset count(Network)CountSumTotal 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_ProcessedBytesProcessed Bytes(Network)BytesSumTotal number of bytes processed by the load balancer, including TCP/IP headers.
aws_networkelb_ActiveFlowCount_TCPActive Flow Count TCPCountAverageTotal 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_TLSActive Flow Count TLSCountAverageTotal number of concurrent TLS flows (or connections) from clients to targets. This metric includes only connections in the ESTABLISHED state.
aws_networkelb_ActiveFlowCount_UDPActive Flow Count UDPCountAverageTotal number of concurrent UDP flows (or connections) from clients to targets.
aws_networkelb_ConsumedLCUs_TCPConsumed LCUs TCPCountAverageNumber of load balancer capacity units (LCU) used by the load balancer for TCP. Pay for number of LCUs used per hour.
aws_networkelb_ConsumedLCUs_TLSConsumed LCUs TLSCountAverageNumber of load balancer capacity units (LCU) used by your load balancer for TLS. Pay for number of LCUs used per hour.
aws_networkelb_ConsumedLCUs_UDPConsumed LCUs UDPCountAverageNumber of load balancer capacity units (LCU) used by your load balancer for UDP. Pay for number of LCUs used per hour.
aws_networkelb_NewFlowCount_TCPNew Flow Count TCPCountAverageTotal number of new TCP flows (or connections) established from clients to targets in the time period.
aws_networkelb_NewFlowCount_TLSNew Flow Count TLSCountAverageTotal number of new TLS flows (or connections) established from clients to targets in the time period.
aws_networkelb_NewFlowCount_UDPNew Flow Count UDPCountAverageTotal number of new UDP flows (or connections) established from clients to targets in the time period.
aws_networkelb_ProcessedBytes_TCPProcessed Bytes TCPBytesAverageTotal number of bytes processed by TCP listeners.
aws_networkelb_ProcessedBytes_TLSProcessed Bytes TLSBytesAverageTotal number of bytes processed by TLS listeners.
aws_networkelb_ProcessedBytes_UDPProcessed Bytes UDPBytesAverageTotal 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.

External reference