AWS Cloud Operations & Migrations Blog

Group Amazon CloudWatch Synthetics canaries for an aggregated view across regions

Customers frequently use CloudWatch canaries to monitor their applications that enables them to identify issues pro-actively and resolve them before they reach their end users. In today’s world with the cloud making it much simpler to expand globally and provision infrastructure across different parts of the world, customers tend to localize their infrastructure to the region that their customers reside in. What that means is that customers might have a single website but behind the scenes they might have servers spanning across the world intended to serve customers closer in proximity. Example: an application running in the US to serve their users residing in the US, a replica of that application running in Europe to serve their Europe based customers and so on.

Previously, for such cases, customers would create multiple canaries in different regions to monitor the infrastructure. With this management of canaries is a problem as the administrators would have to jump from one region to the other in the console and there was no way to aggregate and view all the canaries for a single application.

The groups feature of CloudWatch canaries enables a customer to do the following:

  • Create a group and add up to 10 canaries.
  • A group is a global resource, so is agnostic to what region the canary was created in. You can add canaries from different regions to a group.
  • Canary groups are available in all regions therefore you can access them in any region regardless of where they were created.
  • Creating a group gives you access to aggregated monitoring which enables you to view the consolidated metrics across all your canaries in the group from a single pane of glass.

The blog is intended to demonstrate how to group canaries and the advantages of doing that.

Pre-requisites

  1. Have access to an AWS account.
  2. We assume that you are aware of what canaries are and already have multiple canaries that can be grouped.

How to group Canaries:

  1. Navigate to the Amazon CloudWatch Management Console and click on “Create Group”.
The canaries page in CloudWatch with the Create group button on the right

Figure 1. Create a group for canaries

  1. Provide the group a name and use the search bar to search your canary by name. If you have multiple canaries with the same name in different regions then it will list all the canaries. You can pick the appropriate one. You also have the option of adding tags to the group if needed.
On the page, you can configure the group by providing the group name and searching and selecting the canaries you want to add to the group.

Figure 2: Create group page on the console

  1. Once the group is created, you can click on the group name to dive deeper.
Expands the canary group to list all the canaries under the group and view their status

Figure 3: Canary group details

Here you can view the performance of all your canaries collectively.

As you can see, creating a group automatically plots metrics like duration, success percent, errors etc for all your canaries on a single graph. This helps you monitor all the canaries in the group from a single view. Go here to understand what these metrics mean.

Displays metrics like duration, failed runs, errors, faults across the canaries

Figure 4: Metrics displayed across canaries

  1. You also have the option to add all or some of these metrics to a CloudWatch dashboard.

Things to Consider

There is no extra cost to create groups for canaries.

Conclusion

From the blog, we demonstrated how grouping canaries can simplify monitoring applications that are spread out gobally.

Go here to learn more about groups:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Groups.html

 

About the authors:

Sid Joshi

Sid is a is a Solutions Architect with Amazon Web Services. He works with AWS customers to provide guidance on cloud adoption, migration and strategy. He is passionate about technology and enjoys building and experimenting in the Networking and Observability space.

Igor Ljubicic

Igor Ljubicic is a Software Development Engineer working at AWS on CloudWatch Synthetics team. He is passionate about web technologies, performance insight and cloud monitoring. In his free time he loves spend time with his family and enjoys taking long walks his dog.