Monitoring AWS ELB

The AWS ELB sensor is automatically deployed and installed after you install the Instana agent.

Learn about the other supported AWS services with AWS documentation.

There are three types of load balancers and metrics that are retrieved are also based on them.

They are:

  • Classic Load Balancer
  • Application Load Balancer
  • Network Load Balancer.

Sensor (Data Collection)

Tracked Configuration

ELB Instance Details

  • Name
  • Type
  • ARN
  • Status
  • DNS name
  • Hosted Zone
  • Scheme
  • Creation Time
  • VPC
  • IP address Type
  • AWS Grouping Zone

Metrics

Load balancer metrics are collected as total values, but also per availability zones they are in.

Classic Load Balancer

Total metrics

Name Description
Rejected Connections The number of connections that were rejected because the load balancer reached its maximum number of connections.
Elb Status Code 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.
Elb Status Code 5xx Count The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes that are generated by the targets.

Per zone metrics

Name Description
Backend Connection Errors 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 that are related to health checks.
Response Time (Latency) HTTP listener: The total time elapsed, in seconds, from the time, the load balancer sent the request to a registered instance until the instance started to send the response headers.
TCP listener: The total time elapsed, in seconds, for the load balancer to successfully establish a connection to a registered instance.
Requests count The number of requests that are completed or connections that are made during the interval.
Requests with Status Code 2xx, 3xx, 4xx, 5xx HTTP listener: The number of HTTP response codes generated by registered instances. This count does not include any response codes that are generated by the load balancer.
Spillover Count The total number of requests that were rejected because the surge queue is full.
Surge Queue Length The total number of requests (HTTP listener) or connections (TCP listener) that are pending routing to a healthy instance.

Application Load Balancer

Total metrics

Name Description
Active Connections The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets.
New Connections The total number of new TCP connections that are established from clients to the load balancer and from the load balancer to targets.
Rejected Connections The number of connections that were rejected because the load balancer reached its maximum number of connections.
Processed Bytes The total number of bytes processed by the load balancer over IPv4 and IPv6.
Elb Status Code 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.
Elb Status Code 5xx Count The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes that are generated by the targets.

Per zone metrics

Name Description
Requests count The number of requests that are processed over IPv4 and IPv6.
Target Response Time 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.
Target Connection Error Count The number of connections that were not successfully established between the load balancer and target. This metric does not apply if the target is a Lambda function.
Target TLS Negotiation Error Count 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. This metric does not apply if the target is a Lambda function.
Client TLS Negotiation Error Count 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.

Network Load Balancer

Total metrics

Name Description
New Flow Count The total number of new flows (or connections) established from clients to targets in the time period.
Processed Bytes The total number of bytes processed by the load balancer over IPv4 and IPv6.
Client RST The total number of reset (RST) packets that are sent from a client to a target. These resets are generated by the client and forwarded by the load balancer.
Elb RST The total number of reset (RST) packets generated by the load balancer.
Target RST The total number of reset (RST) packets that are sent from a target to a client. These resets are generated by the target and forwarded by the load balancer.

Required Permissions

  • cloudwatch:GetMetricData
  • elasticloadbalancing:DescribeLoadBalancers
  • elasticloadbalancing:DescribeTags

Configuration

Metrics for ELB are pulled every 60 seconds, which can be changed through agent configuration in <agent_install_dir>/etc/instana/configuration.yml:

com.instana.plugin.aws.elb:
  cloudwatch_period: 60

To disable monitoring of ELB instances use the following configuration:

com.instana.plugin.aws.elb:
  enabled: false

Proxy configuration

To configure the specific AWS Sensor to use proxy configuration, add the following agent configuration settings:

com.instana.plugin.aws.elb:
  proxy_host: 'example.com' # proxy host name or ip address
  proxy_port: 3128 # proxy port
  proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
  proxy_username: 'username' # OPTIONAL: proxy username
  proxy_password: 'password' # OPTIONAL: proxy password

Monitoring multiple AWS accounts

Refer to the Monitoring multiple AWS accounts documentation to set up monitoring of multiple AWS accounts with one AWS agent in the same region.

AWS named profiles approach

To override which profiles are used to monitor Elastic Load Balancer, use the following configuration:

com.instana.plugin.aws.elb:
  profile_names:
    - 'profile2'
    - 'profile3'

Defining profiles on service level overrides the global AWS profiles configuration.

AWS STS approach

To override which IAM Roles should be used to monitor Elastic Load Balancer, use the following configuration:

com.instana.plugin.aws.elb:
  role_arns:
    - 'arn:aws:iam::<account_1_id>:role/<role_1_name>'
    - 'arn:aws:iam::<account_2_id>:role/<role_2_name>'

Defining IAM roles on service level overrides the global AWS IAM roles configuration.

Filtering

Multiple tags can be defined, separated by a comma. Tags should be provided as a key-value pair separated by: In order to make configuration easier, it is possible to define which tags you want to include in discovery or exclude from discovery. If defining tag in both lists (include and exclude), exclude list has higher priority. If there is no need for filtering services, the configuration should not be defined. It’s not mandatory to define all values to enable filtering.

Users are able to specify how often sensors poll the AWS tagged resources that use the tagged-services-poll-rate configuration property (default 300 seconds).

Tags are only available with the AWS Agent.

To define how often sensors poll the tagged resources use following configuration:

com.instana.plugin.aws:
  tagged-services-poll-rate: 60 #default 300

To include services by tags into discovery use following configuration:

com.instana.plugin.aws.elb:
  include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)

To exclude services by tags from discovery use following configuration:

com.instana.plugin.aws.elb:
  exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

AWS services without tags are monitored by default but can be excluded by setting the include_untagged field to false:

com.instana.plugin.aws.elb:
  include_untagged: false # True value by default

Instana Agent Tags

Note that tags are only available with the AWS Agent. More details on using tags are described here.