Monitoring Amazon resources with CloudWatch
Nassos Katsaounis, of Server Density.
Published on the 6th September, 2016.
There are some very good reasons for moving your stack to the cloud—I bet you knew that already.
RightScale’s survey shows that, almost ten years after its launch, AWS is the prevalent choice for cloud applications. But what gets us monitoring buffs excited is that AWS comes equipped with its very own monitoring tool, CloudWatch, which happens to play well with Server Density!
Let’s see what CloudWatch can do in a little more detail.
Monitoring Amazon with CloudWatch
CloudWatch is an Amazon service that monitors your computing resources, applications, request handling, databases, and pretty much anything AWS related.
Elastic Compute Cloud (EC2) is AWS’s way of providing resizable computing capacity. With EC2, you can create server instances (AMIs – Amazon Machine Images), alter configuration of your servers, and add/remove instances, all within minutes. CloudWatch pulls metrics for CPU utilization, data transfer and disk usage activity from Amazon EC2 instances, and helps you monitor your cloud servers just as you would with your local ones (find out more).
Elastic Load Balancing (ELB) is a service that manages incoming cloud application traffic. ELB ensures that traffic is distributed optimally across multiple EC2 instances. Elastic Load Balancing sends data to CloudWatch about your load balancers and your back-end instances. CloudWatch consolidates and publishes this data as meaningful metrics that you can monitor and respond to.
For instance, you could assign a rule so that a notification is sent when a certain metric rises above or falls below a threshold. ELB metrics are available for viewing from both the CloudWatch console and the EC2 Management Console. What’s more, with Server Density you can get those metrics right in your Server Density Dashboard by using our ELB plugin, described below. This Amazon knowledgebase article has all the details and a complete list of ELB metrics.
Amazon offers relational database services on the cloud through its Relational Database Service (RDS). RDS is an AWS service that allows setup, operation, and, most importantly, easy scaling of relational databases in the cloud. RDS sends all kinds of database instance metrics to CloudWatch every minute. This page includes a complete list of RDS metrics.
CloudWatch provides rich Dashboards in order for you to view and present performance information.
For a complete list of services that CloudWatch monitors click here.
CloudWatch and Server Density
Server Density has offered CloudWatch support from as early as 2010. Our agent is compatible with CloudWatch, thanks to two plugins developed for monitoring Amazon RDS and ELB. At this stage, those plugins are available for Server Density agents installed on Linux servers. Click here for a complete list of supported Linux OSs.
AWS ELB Server Density Plugin
Our ELB plugin allows you to monitor AWS ELB instances. It relies on Python Boto to query AWS CloudWatch. It retrieves the sum of the different CloudWatch ELB at 1 minute intervals. The plugin allows gathering metrics from multiple ELB instances using a simple setting in configuration—although monitoring too many instances at once might cause issues with that 1 minute interval.
AWS RDS Server Density plugin
Our RDS plugin allows monitoring of AWS RDS instances. Based on the Percona Monitoring Tools, it relies on Python Boto to query AWS CloudWatch. It retrieves a 2 minute average every minute and posts it to Server Density. You can also collect data from multiple endpoints (by separating the endpoints with a comma).
See this page in GitHub for more information and setup instructions.
AWS provides a wide range of utilities that help you: i) deploy your familiar databases and applications to the cloud, ii) set up an effective request handling plan with ELB, and iii) monitor activity and performance with CloudWatch.
Using Server Density you can do all your Amazon monitoring from one place, using our RDS and ELB plugins.
So, what is your take on CloudWatch, and how do you use it?