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.
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.
And here is the same 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 |
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.