Different types of synthetic canaries in AWS

In the 1700s, canaries were used to alert miners when toxic gases reached dangerous levels in coal mines.

Taking this analogy forward into the Digital Era, we can see how it corresponds to the definition of ‘Canary Deployment’ –

Coal – The application

Coal Miners – Development team (Sometimes DevOps)

Birds – Beta requests or users who wouldn’t be real consumers

Toxic gases – Issues not detected in the non-prod environments

Coal mines – Application Infrastructure

Alert – Actions that are taken when a canary fails

Why are canaries substantial? – Primarily for 2 reasons –

A) In a growth business where the majority of the time we are trying to stand out from the rest of the offerings, the basic requirement is the digital high availability and experience of the application

B) Lifestyle business where businesses are trying to retain customers and a nonavailability of the digital offering will create leads to the competitors

In both cases, the goal is to have a digital system that is designed to work without any issues. And building systems without issues is really a critical complex problem. One way to make this work is by building synthetic canaries that would tell us if there are any issues upfront before opening up to the end customers. And this is not a one-time process, depending on the business needs, these canaries would run frequently to understand and monitor the state of the system.

Another study states that nearly 10 to 30 percent of revenue is spent on marketing, depending on the current state of the organization to attract new customers to the system, and it is very essential to have the system available and work as built without any issues to really make the marketing spend worth it.

What are synthetic canaries?

A method to monitor the backend infra, REST API, and websites (Most commonly used places in synthetic canaries) by simulating the users and pre-orchestrating the path through the application.

Why use synthetic monitoring?

  1. Opportunity to fix the defects before the end customer notices
  2. Maintain high-level SLAs
  3. Very less time to arrive at a resolution
  4. Managing the third-party content
  5. Alerting at the early stages of the deployment

What is the current offering in AWS?

AWS provides out-of-the-box solutions and also provides a way to bring your own scripts to support synthetic canaries.

AWS CloudWatch – Application Monitoring – Synthetic Canary

What is the pricing involved in using the canaries?

100 canary runs per month are free.

In the paid tier, pricing varies from $0.0012 to $0.0028 per canary run depending on the region. Apart from the direct canary pricing depending on how the synthetics are set, there may be additional charges incurred on the below services –

  1. Lambda
  2. S3
  3. CloudWatch Logs
  4. SNS
  5. VPC
  6. X-Ray

How to clean up the canary, if no longer needed? – Not all the resources get auto-deleted when the canary is deleted. Care should be taken to delete the resources associated with the canary when no longer needed to avoid cloud charges.

Things to note while deleting the canary
Things to take care of while deleting the canary

Share your learning on monitoring your application with synthetic canaries.

Happy learning!

2 thoughts on “Different types of synthetic canaries in AWS

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.