CloudWatch capabilities for EBS monitoring

CloudWatch EBS Monitoring

In our previous blog post we introduced CloudWatch envimation, CloudWatch Dashboard automation service, that allows you to generate dashboards for your EC2 instances easily.

EBS volumes are a vital part of almost any infrastructure running on EC2 instances. Luckily, CloudWatch provides a number of metrics for EBS volumes. Since EBS volumes are a separate entity in AWS, when you create EC2 instance monitoring dashboards, the EBS metrics are not included by default. Furthermore, all the metrics are labelled with their respective Volume IDs. That, unfortunately, does not tell you:

  • To which instance it is connected
  • Which device name it has on the respective instance

To provide our customers with a better overview of their system, we included the EBS volume monitoring in the ec2 dashboards request. Each EBS metric is labelled with the respective instance name, as well as the device name it has.

In this blog post, we’ll show the end-result dashboard looks like if you have multiple instances with EBS volumes in your infrastructure.

Our product is available on AWS Marketplace, and as a first step, you would need to subscribe to it. After finishing the registration on our developer portal and setting up the trusted role in your account, you would gain access to the token you can use to authenticate towards our endpoints.

Using the provided token, you can now make requests to our endpoints and get access to your CloudWatch-based EC2 and EBS monitoring.

Launch the Example

For this example, we’ll create launch two EC2 instances, both having EBS volumes as root volumes.

The template uses latest Amazon Linux AMI with EBS volume as root volume. The user data script simulates some I/O so that we can see graphs in the generated CloudWatch Dashboard.

Make the Request

$ curl -X POST --header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'x-api-key: <YOUR_KEY>' \
-d '{"accountId": "<YOUR_ACCOUNT_ID>", "region": "eu-central-1", "nameFilter": "^CloudWatchEBS.*"}' \
'https://api.envimation.com/dashboards'

Don’t forget to use your key, which you have received after registration, and replace your account id. The result dashboard looks somewhat like this:

CloudWatchEBSDashboard

You can see now EBS widgets next to your EC2-related widgets. The endpoint will take care of plotting all available metrics for the types of EBS volumes attached to your.

Cleanup

Don’t forget to remove the CloudFormation template used in this example in order not to have additional costs.

Note on Additional Metrics

CloudWatch includes some additional metrics for different EBS types. For example VolumeConsumedReadWriteOps and VolumeThroughputPercentage are available only for Provisioned IOPS SSD volumes. Using our endpoint, you can get an overview which metrics are available for your configuration and which of them are relevant for you.