< Back

Monitoring: Application Load Balancer (ALB)

An 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. Then it selects a target from the target group for the rule action. You can configure listener rules to route requests to different target groups based on the content of the application traffic. Routing is performed independently for each target group, even when a target is registered with multiple target groups.

Why should you monitor Application Load Balancer?

It is crucial to keep a close eye on an Application Load Balancer to stay on top of any issues that may arise. This includes receiving notifications about server errors that fall under the 5XX status codes as soon as possible. Monitoring the number of available targets and any potential networking issues affecting the load balancer’s performance and error rate is also important.

Monitoring: Application Load Balancer

How does monitoring Application Load Balancer work?

Without further ado, marbot monitors Application Load Balancer. Here is what a notification delivered to a Microsoft Teams channel looks like.

Application Load Balancer alert in Microsoft Teams

And here is the same alert in Slack.

Application Load Balancer alert in Slack

How do you set up monitoring of Application Load Balancer?

marbot works with Slack and Microsoft Teams. Please select your platform and follow the Getting Started guide.

Which metrics does marbot monitor in detail?

marbot creates CloudWatch alarms to monitor the following metrics of all ALBs automatically.

Metric Description
(HTTPCode_ELB_5XX_Count + HTTPCode_Target_5XX_Count) / RequestCount Get alerted if an ALB error rate is too high.
RejectedConnectionCount Get alerted if an overloaded ALB rejects connections.
TargetConnectionErrorCount Get alerted if an ALB can not connect to its targets.

How to fine-tune the monitoring of Application Load Balancer?

It is possible to fine-tune the CloudWatch alarms created by marbot by adding tags to your ALB.

Tags are read every six hours. Therefore, it can take up to six hours before the CloudWatch alarm is adjusted.

tag key default value allowed values
marbot on on,off
marbot:alb-5xx-count off static,anomaly_detection,off
marbot:alb-5xx-count:threshold 0 >= 0
marbot:alb-5xx-count:period 60 <= 86400 and multiple of 60
marbot:alb-5xx-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:alb-5xx-rate on static,off
marbot:alb-5xx-rate:threshold 5 0-100
marbot:alb-5xx-rate:period 300 <= 86400 and multiple of 60
marbot:alb-5xx-rate:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:alb-rejected-connection-count static static,off
marbot:alb-rejected-connection-count:threshold 0 >= 0
marbot:alb-rejected-connection-count:period 60 <= 86400 and multiple of 60
marbot:alb-rejected-connection-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:target-5xx-count off static,anomaly_detection,off
marbot:target-5xx-count:threshold 0 >= 0
marbot:target-5xx-count:period 60 <= 86400 and multiple of 60
marbot:target-5xx-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:target-connection-error-count static static,off
marbot:target-connection-error-count:threshold 0 >= 0
marbot:target-connection-error-count:period 60 <= 86400 and multiple of 60
marbot:target-connection-error-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400

You can also add tags to your default target group.

tag key default value allowed values
marbot:target-5xx-count off static,anomaly_detection,off
marbot:target-5xx-count:threshold 0 >= 0
marbot:target-5xx-count:period 60 <= 86400 and multiple of 60
marbot:target-5xx-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:target-connection-error-count static static,off
marbot:target-connection-error-count:threshold 0 >= 0
marbot:target-connection-error-count:period 60 <= 86400 and multiple of 60
marbot:target-connection-error-count:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400

More help needed? Or want to share feedback?

If you experience any issues, let us know.

E-mail icon
E-Mail
marbot teaser

Chatbot for AWS Monitoring

Configure monitoring for Amazon Web Services: CloudWatch, EC2, RDS, EB, Lambda, and more. Receive and manage alerts via Slack. Solve incidents as a team.

Slack
Add to Slack
Microsoft Teams
Add to Teams