< Back

Monitoring: Amazon EC2

Amazon Elastic Compute Cloud (EC2) is a web service provided by Amazon Web Services (AWS) that allows users to rent virtual machines, called instances, on which they can run their own applications. EC2 provides a scalable, secure, and flexible infrastructure for deploying a wide range of computing workloads, including web and mobile applications, large-scale data processing, and high-performance computing.

EC2 also provides a range of management and monitoring tools, such as Amazon CloudWatch and AWS Auto Scaling, which allow users to monitor their instances and automatically adjust capacity to maintain performance and reduce costs.

Why should you monitor an EC2 instance?

Monitoring an EC2 instance is important for several reasons, including:

  1. Performance optimization: Monitoring an EC2 instance allows you to identify performance bottlenecks and optimize the performance of your application. You can monitor key metrics such as CPU utilization, memory usage, network traffic, and disk I/O to ensure your application is running smoothly and responding to user requests quickly.
  2. Availability: Monitoring an EC2 instance ensures that your application is available and responsive to user requests. You can monitor metrics such as HTTP response codes and error rates to quickly identify any issues and take action to resolve them before they impact your users.
  3. Cost optimization: Monitoring an EC2 instance can help you optimize your costs by identifying idle resources that can be shut down, and by identifying underutilized resources that can be downsized or removed. This can help you reduce your overall infrastructure costs and maximize the value of your resources.

In summary, monitoring an EC2 instance is critical to ensuring the performance, availability, and cost efficiency of your application.

Monitoring: Amazon EC2

How does monitoring Amazon EC2 work?

Without further ado, marbot monitors all EC2 instances in your AWS accounts. The following figure shows an alert deliverd to a Microsoft Teams channel.

Amazon EC2 alert in Micoft Teams

And here is the same alert in Slack.

AWS Certificate Manager (ACM) in Slack

How to setup monitoring of Amazon EC2?

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

Which EC2 metrics and events does marbot monitor in detail?

marbot creates CloudWatch alarms to monitor the following metrics of all running EC2 instances automatically.

Metric Description
CPUUtilization Get notified in case the EC2 instance is under high load for significant periods.
CPUCreditBalance Get notified in case a burtable EC2 instance is running out of CPU credits which results in significant performance drop.
EBSIOBalance% Get notified in case the the instance is running out of burst credits for EBS.
EBSByteBalance% Get notified in case the the instance is running out of burst credits for EBS.
StatusCheckFailed Get notified in case the virtual machine fails.
NetworkIn + NetworkOut Get notified in case the instance is under high network load for significant periods.

How to fine tune monitoring of EC2 instances?

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

tag key default value allowed values
marbot on on off
marbot:cpu-utilization static static anomaly_detection static_anomaly_detection off
marbot:cpu-utilization:threshold 80 0-100
marbot:cpu-utilization:period 3600 <= 86400 and multiple of 60
marbot:cpu-utilization:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:cpu-credit-balance static static anomaly_detection off
marbot:cpu-credit-balance:threshold 20 >= 0
marbot:cpu-credit-balance:period 600 <= 86400 and multiple of 60
marbot:cpu-credit-balance:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:ebs-io-credit-balance static static anomaly_detection off
marbot:ebs-io-credit-balance:threshold 20 0-100
marbot:ebs-io-credit-balance:period 600 <= 86400 and multiple of 60
marbot:ebs-io-credit-balance:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:ebs-throughput-credit-balance static static anomaly_detection off
marbot:ebs-throughput-credit-balance:threshold 20 0-100
marbot:ebs-throughput-credit-balance:period 600 <= 86400 and multiple of 60
marbot:ebs-throughput-credit-balance:evaluation-periods 1 >= 1 and $period*$evaluation-periods <= 86400
marbot:network-utilization static static anomaly_detection static_anomaly_detection off
marbot:network-utilization:threshold 80 0-100
marbot:network-utilization:period 3600 <= 86400 and multiple of 60
marbot:network-utilization: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
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.

Add to Slack
Microsoft Teams
Add to Teams