How to Create an AWS Cloudwatch Composite Alarm (Step by Step)

Composite Alarms are a useful feature to reduce noise in your monitoring system. Learn how to create one in this step by step tutorial.

Composite Alarms allow us to create an alarm that will fire whenever underlying alarms fire. They are very useful in reducing the number of alarms that may fire in an application. They can also add as a single identifier of health across an entire system. The key though is to only trigger a notification on the top level aggregate alarm, or else you’re just going to get bombarded with alarm notifications.

For example, we can create a composite alarm that combines all the metrics of an entire service into one composite alarm. If the state of this alarm is OK, we can assume the system is in a healthy state. We’ll configure it to only send notifications if the aggregate alarm fires.

In this walkthrough, I’m going to show you how to create a composite alarm that will combine two separate alarms:

  1. Lambda Error Alarm that fires when errors are 5 or more in a 5 minute window
  2. Lambda Latency Alarm that fires when average latency exceeds 100ms in a 5 minute window.

If you don’t know how to create a Cloudwatch Alarm, check out my other tutorial video here.

This should give you an example to work off of to create more complex alarms in your application.

So lets get started…


The only pre-requisite for this walkthrough is that you have two or more alarms already created and available in your cloudwatch account. I’ve gone ahead and created the two alarms listed above as a starting step for this walkthrough. My Cloudwatch alarm page looks like the following:

Starting state – two alarms ready to be captured under one aggregate alarm.

Creating Our Cloudwatch Composite Alarm

To create our composite alarm, navigate to the Alarms section of the AWS console. After finding your alarms in the dropdown list (tip: you can type in the search box to filter by name), select the checkboxes beside each of the alarms you’d like to include. Afterwards, select Create Composite Alarm in the top right part of your screen, as seen below.

Selecting our alarms to serve as the underlying agents for our alarm.

In the next screen, we need to set our Conditions for the alarm. This is basic AND/OR logic. In our case, we want to fire our composite alarm if EITHER of the underlying alarms are breached. Therefore, we use the basic OR conditions as seen below.

An OR condition for a composite alarm. Using this configuration, our composite alarm will fire if EITHER of the underlying alarms are breached. You can also use AND conditions, and instead of ALARM state, depend on OK state.

Note that there’s a bunch of great examples of more complex alarms being configured on the aws documentation.

Go ahead and click on Next to proceed to the Actions step.

In the Actions step, this is our normal actions page when we’re creating any old Cloudwatch alarm. Go ahead and create a new or select an existing SNS topic to configure your notification mechanism and click Next.

On the following screen, simply give your alarm a name and click Next to see the confirmation page.

Naming our composite alarm

After clicking through all the confirmation pages, you’ll see your brand new composite alarm as seen below.

Our freshly minted composite alarm.

After deliberately making my Lambda function error out a few times, you can see that my LambdaErrorsAlarm is currently in Alarm, and so is our new Composite Alarm as seen below.

Lambda Error Alarm causes our composite alarm to also fire.

And that’s it! You’re now prepared to go ahead and create some more sophisticated alarms using this cool new feature. I hope you enjoyed the tutorial and let me know if you have comments or questions down below!

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts