This module creates an alarm that goes off if a specified metric drops below a specified threshold over a specified
time period. This is most useful for detecting if a scheduled job failed. For example, if you have a CRON job that runs
once per night, you could have the CRON job set a metric to the value "1" after each successful run and then use this
module to trigger an alarm if the metric drops below the value "1" over a 24 hour period. This module works especially
well with ec2-snapper, which you can run in a CRON job to automatically
backup EC2 Instances and write CloudWatch metrics.
The basic idea is to use the module resource in your templates and to specify:
The name of your scheduled job
The namespace in CloudWatch for your metrics
The name of the metric that is incremented whenever the scheduled job runs
How often that metric should be updated
The ARN of an SNS topic to notify whenever the alarm goes into OK state, which indicates the scheduled job is
working, or INSUFFICIENT_DATA state, which indicates the metric is not being written, and therefore the scheduled
job is probably failing.
Example:
module"scheduled_job_alarm" {
source = "git::git@github.com:gruntwork-io/terraform-aws-monitoring.git//modules/alarms/scheduled-job-alarm?ref=v1.0.8"
name = "my-scheduled-job-foo"
namespace = "MyScheduledJobs"
metric_name = "ScheduledJobFoo"
alarm_sns_topic_arns = "${aws_sns_topic.cloudwatch_alarms.arn}"# We expect the job to run once per day, which is 86,400 seconds. However, the job itself may take some time to run,# so we add two hours (7200 seconds) of buffer room and expect the metric to be updated once every 93,600 seconds.
period = 93600
}
# Create an SNS topic that will be notified whenever this alarm is in OK or INSUFFICIENT_DATA state. You can subscribe# to notifications from this SNS topic by email or text message.resource"aws_sns_topic""cloudwatch_alarms" {
name = "my-scheduled-job-cloudwatch-alarms"
}
See vars.tf for documentation on all the parameters you can set in this module.
How do I get notifications from these alarms?
One of the parameters you pass to this module is a list of SNS topic ARNs to notify when
the website goes down. Here is how to configure an SNS topic:
Create an SNS topic using the Terraform aws_sns_topic resource.
Pass the topic's ARN to this module (e.g. alarm_sns_topic_arns = "${aws_sns_topic.my_topic.arn}")
Find your topic in the list and click the checkbox next to it.
Click the "Actions" button and select "Subscribe to Topic".
Choose "Email" or "SMS Message" as the protocol, enter your email or phone number, and click "Create Subscription".
AWS will email or message you to confirm the subscription. Be sure to confirm it, or you won't receive any
notifications, and the alarm will report its status as INSUFFICIENT_DATA!
Questions? Ask away.
We're here to talk about our services, answer any questions, give advice, or just to chat.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"8be955b87216836d2a73c4ba6e70348f68ac6035"}]},{"name":".gitignore","path":".gitignore","sha":"f269ad202cb96c5ed31e7d2bdd7b2f9b829f0687"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"23068872ca60d7f40ae10c05ea8e5915d04056dc"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"c19c648a9fdcb79b477d2b38566355ad09c9aef5"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"f4e3d9bd4717a044ed31ad847a300eee74371a78"},{"name":"README.md","path":"README.md","sha":"dd5e0d56c9b348649967b53591eaf003a91ffccb"},{"name":"_docs","children":[{"name":"cloudwatch-icon.png","path":"_docs/cloudwatch-icon.png","sha":"47443df949488ef42c8460a3ff23d0acab695e59"}]},{"name":"examples","children":[{"name":"alb-alarms","children":[{"name":"README.md","path":"examples/alb-alarms/README.md","sha":"5e39e3c8a77d82fe1f356c4afd7896fab0a44f5a"},{"name":"main.tf","path":"examples/alb-alarms/main.tf","sha":"db624a6a76aa6b543ff87e1dae7c410c3e576cfa"},{"name":"outputs.tf","path":"examples/alb-alarms/outputs.tf","sha":"6fa5c1b548602ee8912c973ad05e3aec40cd32b0"},{"name":"vars.tf","path":"examples/alb-alarms/vars.tf","sha":"6f9edf33c508701e9bae1d7c8304295952e482b7"}]},{"name":"alb-target-group-alarms","children":[{"name":"README.md","path":"examples/alb-target-group-alarms/README.md","sha":"d7e0b7bd3103af1d90f931e17ab8a89df1437a95"},{"name":"main.tf","path":"examples/alb-target-group-alarms/main.tf","sha":"a0eead055232b38ccce1ecfec39aea647c345ef3"},{"name":"outputs.tf","path":"examples/alb-target-group-alarms/outputs.tf","sha":"c43657ddd3a1c40eb354c5192c4ecd3ebb26cf47"},{"name":"vars.tf","path":"examples/alb-target-group-alarms/vars.tf","sha":"7410e57ed960de8fbfdfa64a841d3752966d5326"}]},{"name":"asg-alarms","children":[{"name":"README.md","path":"examples/asg-alarms/README.md","sha":"752750d9634a831f8b9d4b5b2738daa1d6165b15"},{"name":"main.tf","path":"examples/asg-alarms/main.tf","sha":"21faa2e22dbb377e5714db5f3ebb083e770c39ef"},{"name":"outputs.tf","path":"examples/asg-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/asg-alarms/vars.tf","sha":"c57fd6487ae4fa0687e580536f6a9884d3acec82"}]},{"name":"cloudwatch-agent","children":[{"name":"README.md","path":"examples/cloudwatch-agent/README.md","sha":"4f972ee428556d0af51fdb38ce913a58407ec3fb"},{"name":"main.tf","path":"examples/cloudwatch-agent/main.tf","sha":"d16e45b606a7f9755a31ce6be50b7f11cf7f14ea"},{"name":"outputs.tf","path":"examples/cloudwatch-agent/outputs.tf","sha":"665dd2b857c42bfb167e606d964de352de1a6ac4"},{"name":"packer","children":[{"name":"build.json","path":"examples/cloudwatch-agent/packer/build.json","sha":"ece6812997d2e462197ef7a338f903d48422ec8e"}]},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/cloudwatch-agent/user-data/user-data.sh","sha":"953387d2b3ec71cf966a817ef53e08280ddbef29"}]},{"name":"vars.tf","path":"examples/cloudwatch-agent/vars.tf","sha":"75a8150cb55f06b214d4ddc2e7be9aa75153be98"}]},{"name":"cloudwatch-dashboard","children":[{"name":"README.md","path":"examples/cloudwatch-dashboard/README.md","sha":"724f1f42530a4245a4e4a732e6d0b8ddbb0b738f"},{"name":"main.tf","path":"examples/cloudwatch-dashboard/main.tf","sha":"2aace1fc046a2cf1326466c3f283faa70521bdba"},{"name":"outputs.tf","path":"examples/cloudwatch-dashboard/outputs.tf","sha":"44bdb681166336894d50e51dc64cfead255cff4f"},{"name":"vars.tf","path":"examples/cloudwatch-dashboard/vars.tf","sha":"d2fb5fd788e607085e024180bd2a68bf0678d58d"}]},{"name":"cloudwatch-logs-metric-filters","children":[{"name":"README.md","path":"examples/cloudwatch-logs-metric-filters/README.md","sha":"dc5990c581c53ea6c11454e06a2f1c3267167c3c"},{"name":"main.tf","path":"examples/cloudwatch-logs-metric-filters/main.tf","sha":"6aba11aa3f5a60c630f19b981c8eabdb653cf6de"},{"name":"outputs.tf","path":"examples/cloudwatch-logs-metric-filters/outputs.tf","sha":"28d515dc5364afbc215ccdffbb03e3f3cd66a0ba"},{"name":"vars.tf","path":"examples/cloudwatch-logs-metric-filters/vars.tf","sha":"d2c45abbba41a4952ad87749ec207505d68c1f2c"}]},{"name":"cloudwatch-to-slack","children":[{"name":"README.md","path":"examples/cloudwatch-to-slack/README.md","sha":"2ec9ead93a7c8b5fbe92690cb5cd1d4d05fc04f6"},{"name":"main.tf","path":"examples/cloudwatch-to-slack/main.tf","sha":"efaed391543ffb70b97429ccf674c53a3e69410c"},{"name":"vars.tf","path":"examples/cloudwatch-to-slack/vars.tf","sha":"1131023eb393490226e25749520fc68db20083c0"}]},{"name":"ec2-alarms","children":[{"name":"README.md","path":"examples/ec2-alarms/README.md","sha":"674f1dc82e51834e553fb575ad6e6b5d271c5941"},{"name":"main.tf","path":"examples/ec2-alarms/main.tf","sha":"40c614bb1a4c8aa9b72dedb1a032fd678afa0d1c"},{"name":"outputs.tf","path":"examples/ec2-alarms/outputs.tf","sha":"db64d3c79fc4c66c49f0a86fb1bac85eacc9418f"},{"name":"vars.tf","path":"examples/ec2-alarms/vars.tf","sha":"5d5c5907ba090ffaefd2707e343c633f9cb0db90"}]},{"name":"ecs-alarms","children":[{"name":"README.md","path":"examples/ecs-alarms/README.md","sha":"e8abe3b1b1ab6e0d0f1cc75a39d04cc6700ff199"},{"name":"main.tf","path":"examples/ecs-alarms/main.tf","sha":"e0b688a0869d40f10c4ee4e5bc38f660401de81e"},{"name":"outputs.tf","path":"examples/ecs-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/ecs-alarms/user-data/user-data.sh","sha":"af6a43c618ff5f89ae997b9906a18db2bc5611ab"}]},{"name":"vars.tf","path":"examples/ecs-alarms/vars.tf","sha":"87837d0f736c9eec2e0fd0024a1039c13eeb6df7"}]},{"name":"elasticache-alarms","children":[{"name":"README.md","path":"examples/elasticache-alarms/README.md","sha":"0c7f899ef7976e18805da18f6c62e680cef9c910"},{"name":"main.tf","path":"examples/elasticache-alarms/main.tf","sha":"d9b6cd003822f5d6929da4678845927e1ae8491b"},{"name":"outputs.tf","path":"examples/elasticache-alarms/outputs.tf","sha":"e6095a5c0089e1236e7507fbe8a59faf44c5c219"},{"name":"vars.tf","path":"examples/elasticache-alarms/vars.tf","sha":"bfa00fd8c445df907a3b49b8ac3735ac549039d0"}]},{"name":"elasticsearch-alarms","children":[{"name":"README.md","path":"examples/elasticsearch-alarms/README.md","sha":"8e1c6e3e00ae3873750dcee959c5d81961a83d94"},{"name":"main.tf","path":"examples/elasticsearch-alarms/main.tf","sha":"d551565a8bcd08690bb4721d332e2f59d86dac07"},{"name":"outputs.tf","path":"examples/elasticsearch-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/elasticsearch-alarms/vars.tf","sha":"7e021ff0df92bfb433e9b6ea0d13e2b66f965de5"}]},{"name":"elb-alarms","children":[{"name":"README.md","path":"examples/elb-alarms/README.md","sha":"efd1f59ca0bc2020c28755277ab462a5f9c665b8"},{"name":"main.tf","path":"examples/elb-alarms/main.tf","sha":"713a9d22a5835c6dd3e1f6715b185253086c4b9b"},{"name":"outputs.tf","path":"examples/elb-alarms/outputs.tf","sha":"b98ff4cfcc70054d0f87a65883fa17e305c8189c"},{"name":"vars.tf","path":"examples/elb-alarms/vars.tf","sha":"bd33dc9c7bb27fac2eebd0b0042e7434137c798d"}]},{"name":"lambda-alarms","children":[{"name":"README.md","path":"examples/lambda-alarms/README.md","sha":"23196e276e2ecaf8dd7489d310795173abbc15b6"},{"name":"main.tf","path":"examples/lambda-alarms/main.tf","sha":"bb89df2a32a236694c90a16810f2a94273890e10"},{"name":"outputs.tf","path":"examples/lambda-alarms/outputs.tf","sha":"e4f232637f1955a8099f7ae6f2b5bd4b6c13c14e"},{"name":"python","children":[{"name":"Dockerfile","path":"examples/lambda-alarms/python/Dockerfile","sha":"e01798399fc9c72f54f05fd68f181bd1c0cf0f33"},{"name":"build.sh","path":"examples/lambda-alarms/python/build.sh","sha":"bf53f2bdde463e8bd2f1a4f93009ecb1c6c0c206"},{"name":"requirements.txt","path":"examples/lambda-alarms/python/requirements.txt","sha":"9d84d3588526c729a27bc7f6d5bfdccee0bb9de8"},{"name":"src","children":[{"name":"__init.py__","path":"examples/lambda-alarms/python/src/__init.py__","sha":"1b58820b01935d58928ad905427bd838c5e80123"},{"name":"index.py","path":"examples/lambda-alarms/python/src/index.py","sha":"d0233c21dc7572caead57e7e60c8d75a13312ea0"},{"name":"test_harness.py","path":"examples/lambda-alarms/python/src/test_harness.py","sha":"73edf34edf789e6f57b0d8288cedb22ec9d37bc3"}]}]},{"name":"variables.tf","path":"examples/lambda-alarms/variables.tf","sha":"39aa228faafdbc00a4ffa7e799979d97f17d0ddc"}]},{"name":"load-balancer-access-logs","children":[{"name":"alb","children":[{"name":"README.md","path":"examples/load-balancer-access-logs/alb/README.md","sha":"5668d030166e04b230be5dd200be6ddf936ddb4c"},{"name":"main.tf","path":"examples/load-balancer-access-logs/alb/main.tf","sha":"33f22838bb0060ef148e52806cedd33274f2a264"},{"name":"outputs.tf","path":"examples/load-balancer-access-logs/alb/outputs.tf","sha":"3d68d5999618b1ce3a7913397ac9aca618205322"},{"name":"vars.tf","path":"examples/load-balancer-access-logs/alb/vars.tf","sha":"15760ff76bcec102533ac1436614d75e57c2bac5"}]},{"name":"elb","children":[{"name":"README.md","path":"examples/load-balancer-access-logs/elb/README.md","sha":"e576cce3c910b6cb04678304585fb7bc5d96d0e5"},{"name":"main.tf","path":"examples/load-balancer-access-logs/elb/main.tf","sha":"e7c7e766f5bd2b76ec783443e853083557b95125"},{"name":"outputs.tf","path":"examples/load-balancer-access-logs/elb/outputs.tf","sha":"aac64206ee3f7b0067f35112081d62566ce9522d"},{"name":"vars.tf","path":"examples/load-balancer-access-logs/elb/vars.tf","sha":"15760ff76bcec102533ac1436614d75e57c2bac5"}]},{"name":"nlb","children":[{"name":"README.md","path":"examples/load-balancer-access-logs/nlb/README.md","sha":"e075d96b9d8168b204a9cc96c906fdea9eb85381"},{"name":"main.tf","path":"examples/load-balancer-access-logs/nlb/main.tf","sha":"4c83fd4e0159d3ee418d695852df883e861516c7"},{"name":"outputs.tf","path":"examples/load-balancer-access-logs/nlb/outputs.tf","sha":"f2b50bd9ccf6afdca03c2f691ef44f6a75dc0722"},{"name":"vars.tf","path":"examples/load-balancer-access-logs/nlb/vars.tf","sha":"15760ff76bcec102533ac1436614d75e57c2bac5"}]}]},{"name":"rds-alarms","children":[{"name":"README.md","path":"examples/rds-alarms/README.md","sha":"0b6cccd63afba417e1fc02d190c7ff2f38932f7c"},{"name":"main.tf","path":"examples/rds-alarms/main.tf","sha":"23273cd1cbe20183cb3b10d9e0677d01f27e0a37"},{"name":"outputs.tf","path":"examples/rds-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/rds-alarms/vars.tf","sha":"4cae919361eadf1554ba818c6080316d2290d120"}]},{"name":"route53-health-check-alarms","children":[{"name":"README.md","path":"examples/route53-health-check-alarms/README.md","sha":"54175046fb87337b9e4ebc787fbb96d2bd18e2c1"},{"name":"main.tf","path":"examples/route53-health-check-alarms/main.tf","sha":"047512022ce4c4185c70009b189cd406280b8247"},{"name":"outputs.tf","path":"examples/route53-health-check-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/route53-health-check-alarms/vars.tf","sha":"c8de0aca1b1773e29e5177d7acd0dc97fc1c29c7"}]},{"name":"scheduled-job-alarms","children":[{"name":"README.md","path":"examples/scheduled-job-alarms/README.md","sha":"95818d05404e2f8e68e399de3fff3d4d029d3602"},{"name":"main.tf","path":"examples/scheduled-job-alarms/main.tf","sha":"08660ce0d7eed169d6fc0867c651242db40203c8"},{"name":"outputs.tf","path":"examples/scheduled-job-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/scheduled-job-alarms/vars.tf","sha":"1d06c7678f23c5cf624b172f96d4d0bc6277e85f"}]},{"name":"sqs-alarms","children":[{"name":"README.md","path":"examples/sqs-alarms/README.md","sha":"49a9fee10f7fe5f4756923672345b2ef22a561d4"},{"name":"main.tf","path":"examples/sqs-alarms/main.tf","sha":"b34194dba2064410b31bba973587cbb03e83ba4a"},{"name":"outputs.tf","path":"examples/sqs-alarms/outputs.tf","sha":"8259844bf891d7dd7a2745df89804b356df84a59"},{"name":"vars.tf","path":"examples/sqs-alarms/vars.tf","sha":"32a3fece3af25aed02386cfc74e073b1704389a1"}]},{"name":"syslog","children":[{"name":"README.md","path":"examples/syslog/README.md","sha":"5fa2747b5fade6ab04d6438bb8e5105a75101a8e"},{"name":"syslog-example.json","path":"examples/syslog/syslog-example.json","sha":"9fc742fbde923393a6da8239f8adba29f0b39979"}]}]},{"name":"modules","children":[{"name":"agents","children":[{"name":"cloudwatch-agent","children":[{"name":"README.adoc","path":"modules/agents/cloudwatch-agent/README.adoc","sha":"b0dfffccc159dd84f76116f44f9158888573abfa"},{"name":"core-concepts.md","path":"modules/agents/cloudwatch-agent/core-concepts.md","sha":"526a628a81bddcc345fbe87c47551e18e0fab60a"},{"name":"install-scripts","children":[{"name":"config.json","path":"modules/agents/cloudwatch-agent/install-scripts/config.json","sha":"ae58c3821cbae98a23b37d28afe698d18385b796"},{"name":"install-cloudwatch-agent.sh","path":"modules/agents/cloudwatch-agent/install-scripts/install-cloudwatch-agent.sh","sha":"f5dc21ca40c3bd54ea9e09e0ea0b80e1cef01e45"}]},{"name":"install.sh","path":"modules/agents/cloudwatch-agent/install.sh","sha":"36b4b752f1ffa8b6f856c74835faf9ca262167ca"},{"name":"user-data-scripts","children":[{"name":"configure-cloudwatch-agent.sh","path":"modules/agents/cloudwatch-agent/user-data-scripts/configure-cloudwatch-agent.sh","sha":"684b164c10fbc66e0701f24f7131c0d69384caa0"},{"name":"restart-cloudwatch-agent.sh","path":"modules/agents/cloudwatch-agent/user-data-scripts/restart-cloudwatch-agent.sh","sha":"60cdb0fb221adc4dee57236daf9fe9461b4304ef"}]}]}]},{"name":"alarms","children":[{"name":"README.md","path":"modules/alarms/README.md","sha":"6469aa38d6deea5fd9c41b46efe3fc7934c47c86"},{"name":"alb-alarms","children":[{"name":"README.md","path":"modules/alarms/alb-alarms/README.md","sha":"3366f88f77937832802b48686e766ddf849bfab5"},{"name":"main.tf","path":"modules/alarms/alb-alarms/main.tf","sha":"daba3512f1753b0ffed5feca223574c5b814b6a1"},{"name":"vars.tf","path":"modules/alarms/alb-alarms/vars.tf","sha":"1db323d250385d148b705782565b2ae27ba32f53"}]},{"name":"alb-target-group-alarms","children":[{"name":"README.md","path":"modules/alarms/alb-target-group-alarms/README.md","sha":"9f74b6be1ce9d7d9d00dafd80f26047f6d517963"},{"name":"main.tf","path":"modules/alarms/alb-target-group-alarms/main.tf","sha":"a84b9775635b8756f43df045b1e044430b0675f2"},{"name":"vars.tf","path":"modules/alarms/alb-target-group-alarms/vars.tf","sha":"f324d60c8fe0b3d7a6a613c139e53bc2e49f62ed"}]},{"name":"asg-cpu-alarms","children":[{"name":"README.md","path":"modules/alarms/asg-cpu-alarms/README.md","sha":"5d8930a69b56e7e68de60460bc9ac086d78c3fdb"},{"name":"main.tf","path":"modules/alarms/asg-cpu-alarms/main.tf","sha":"0baf1afa33b1fffd1868ccead0710bd77cf57d0d"},{"name":"vars.tf","path":"modules/alarms/asg-cpu-alarms/vars.tf","sha":"2ca49506dbdc352461b9df3960d4d349eb32daae"}]},{"name":"asg-disk-alarms","children":[{"name":"README.MD","path":"modules/alarms/asg-disk-alarms/README.MD","sha":"a70e4bb2774d2f34ab304c594bbf5af1274f42fd"},{"name":"main.tf","path":"modules/alarms/asg-disk-alarms/main.tf","sha":"c292379fe437f8f3927592b06ee2e1007cae4741"},{"name":"vars.tf","path":"modules/alarms/asg-disk-alarms/vars.tf","sha":"922cbf82330e3ec24125f5fc1418e9243af59d18"}]},{"name":"asg-memory-alarms","children":[{"name":"README.md","path":"modules/alarms/asg-memory-alarms/README.md","sha":"5cee9559d7c409187099138db7480322b18aef1a"},{"name":"main.tf","path":"modules/alarms/asg-memory-alarms/main.tf","sha":"10ce385270e75ba411840f5b76d19f512f4abd58"},{"name":"vars.tf","path":"modules/alarms/asg-memory-alarms/vars.tf","sha":"0ddf92f6b55744e1dd0ef6478b6cf5f6c7c65d44"}]},{"name":"ec2-cpu-alarms","children":[{"name":"README.md","path":"modules/alarms/ec2-cpu-alarms/README.md","sha":"f5a086f005bf67ac936a00cbabc892c91c06b4b8"},{"name":"main.tf","path":"modules/alarms/ec2-cpu-alarms/main.tf","sha":"82196701aae980eb39d8b48bdea68d34be186d5c"},{"name":"vars.tf","path":"modules/alarms/ec2-cpu-alarms/vars.tf","sha":"bf14685ee75e36f098dd8c3229992c17b2b94a55"}]},{"name":"ec2-disk-alarms","children":[{"name":"README.MD","path":"modules/alarms/ec2-disk-alarms/README.MD","sha":"d06565ca47c749fe7033994d1fcd5779be0930c8"},{"name":"main.tf","path":"modules/alarms/ec2-disk-alarms/main.tf","sha":"50885fa2fe93a6034908518d06c106576bd5f8a2"},{"name":"vars.tf","path":"modules/alarms/ec2-disk-alarms/vars.tf","sha":"d95aab850ba19d92cba3b3b5d7c6c6cbe8596a6d"}]},{"name":"ec2-memory-alarms","children":[{"name":"README.md","path":"modules/alarms/ec2-memory-alarms/README.md","sha":"7b33625f7536545b2b71d978df3ecaa3b17d358c"},{"name":"main.tf","path":"modules/alarms/ec2-memory-alarms/main.tf","sha":"0792404611ba53eb05bbd15890a48c7b6d19ea10"},{"name":"vars.tf","path":"modules/alarms/ec2-memory-alarms/vars.tf","sha":"7f643412cb91ee3f2bb021a3b5a7c491d8b0f644"}]},{"name":"ecs-cluster-alarms","children":[{"name":"README.md","path":"modules/alarms/ecs-cluster-alarms/README.md","sha":"4bbc7f714a6ac55589d649eda6883e3002bc3746"},{"name":"main.tf","path":"modules/alarms/ecs-cluster-alarms/main.tf","sha":"cdb25630a9f89816ba6fcde8c6448a969eb8475d"},{"name":"vars.tf","path":"modules/alarms/ecs-cluster-alarms/vars.tf","sha":"e2e8a5a85352ea226453d10611a78b68d1b1dd51"}]},{"name":"ecs-service-alarms","children":[{"name":"README.md","path":"modules/alarms/ecs-service-alarms/README.md","sha":"d54663b23f2deb5ff48fe4493eab3b6b98685bfb"},{"name":"main.tf","path":"modules/alarms/ecs-service-alarms/main.tf","sha":"44b913f566a83319adec5991c4d592be0c68fde1"},{"name":"vars.tf","path":"modules/alarms/ecs-service-alarms/vars.tf","sha":"a9e1faeadd8d92c26eb031e9a5e94f927b32224e"}]},{"name":"ecs-service-with-alb-alarms","children":[{"name":"README.md","path":"modules/alarms/ecs-service-with-alb-alarms/README.md","sha":"004b0c91f75c6fbb1cb2e3a1388a1418c963f533"}]},{"name":"elasticache-memcached-alarms","children":[{"name":"README.md","path":"modules/alarms/elasticache-memcached-alarms/README.md","sha":"bd5fd399c37e09a450dcb8bf878f3b57eb6ea09e"},{"name":"main.tf","path":"modules/alarms/elasticache-memcached-alarms/main.tf","sha":"d9c160fb1d18d7a49601e27d894d2850d2b2b9a7"},{"name":"vars.tf","path":"modules/alarms/elasticache-memcached-alarms/vars.tf","sha":"34417dec83856e6a5ad8518b2697c771017a90cd"}]},{"name":"elasticache-redis-alarms","children":[{"name":"README.md","path":"modules/alarms/elasticache-redis-alarms/README.md","sha":"becd381d6b4441e61cacbdd0a55c32b3caec2c02"},{"name":"main.tf","path":"modules/alarms/elasticache-redis-alarms/main.tf","sha":"c97f09810b3d5490be06c82e5a3808d4e1a546d3"},{"name":"vars.tf","path":"modules/alarms/elasticache-redis-alarms/vars.tf","sha":"6499eda96bb24c48826f067ffa89c1ef3295a5ff"}]},{"name":"elasticsearch-alarms","children":[{"name":"README.md","path":"modules/alarms/elasticsearch-alarms/README.md","sha":"0cdc80ff90c0bf44ae5d2feaed06f35fa71a49f4"},{"name":"main.tf","path":"modules/alarms/elasticsearch-alarms/main.tf","sha":"a63fb011b5a16ebfa53a9fa093cd2131df6825c3"},{"name":"vars.tf","path":"modules/alarms/elasticsearch-alarms/vars.tf","sha":"77a61a8bc455c5eb0128351ee20ffb5beabd6d5b"}]},{"name":"elb-alarms","children":[{"name":"README.md","path":"modules/alarms/elb-alarms/README.md","sha":"71a5fed07bfae58b6ac4f8e61699ad774a040987"},{"name":"main.tf","path":"modules/alarms/elb-alarms/main.tf","sha":"12d2836703d70486a293219c2ed1056d9ac9acff"},{"name":"vars.tf","path":"modules/alarms/elb-alarms/vars.tf","sha":"3d40906f596c78373113f19e5598d2ea87ff377d"}]},{"name":"lambda-alarms","children":[{"name":"README.md","path":"modules/alarms/lambda-alarms/README.md","sha":"df42d0dbd3daf18ee1a6075628dc28a255fb095a"},{"name":"main.tf","path":"modules/alarms/lambda-alarms/main.tf","sha":"5fb9b677730aed488487010f7fcd94dc0a8bd0df"},{"name":"outputs.tf","path":"modules/alarms/lambda-alarms/outputs.tf","sha":"8fc87125e9b1bde80d2e002df29773084b5ce5a0"},{"name":"variables.tf","path":"modules/alarms/lambda-alarms/variables.tf","sha":"af90444af969cb91f656a856889837e5f2e5de3b"}]},{"name":"rds-alarms","children":[{"name":"README.md","path":"modules/alarms/rds-alarms/README.md","sha":"b9e3381e5ec91ab1bed5329b779ca1e3898fabce"},{"name":"main.tf","path":"modules/alarms/rds-alarms/main.tf","sha":"1d337e64ec651f5eaf2d2ce212d629d281ac3d8e"},{"name":"vars.tf","path":"modules/alarms/rds-alarms/vars.tf","sha":"850fa3d9810f58ef07f54db3559b837c7a102b0d"}]},{"name":"route53-health-check-alarms","children":[{"name":"README.md","path":"modules/alarms/route53-health-check-alarms/README.md","sha":"2268b9b10edb85e52252d50e76f6181d43c97128"},{"name":"main.tf","path":"modules/alarms/route53-health-check-alarms/main.tf","sha":"0aecb3de2d7df513d9a1950043d3a93059632560"},{"name":"vars.tf","path":"modules/alarms/route53-health-check-alarms/vars.tf","sha":"1e736dfafc6091e1a3639c8fbc1f7a0f36ae21cc"}]},{"name":"scheduled-job-alarm","children":[{"name":"README.md","path":"modules/alarms/scheduled-job-alarm/README.md","sha":"78d3f48ed815b5076e689ccab8ded288f6e30227","toggled":true},{"name":"main.tf","path":"modules/alarms/scheduled-job-alarm/main.tf","sha":"51e34de0763ef11e24dc5a9ef0176c40154a3e33"},{"name":"vars.tf","path":"modules/alarms/scheduled-job-alarm/vars.tf","sha":"01e59a715397619e2420611cfb3c1ac15f739e8e"}],"toggled":true},{"name":"sns-to-slack","children":[{"name":"README.md","path":"modules/alarms/sns-to-slack/README.md","sha":"c9f3857fce41812bca03faa096d2e5c071c9ad55"},{"name":"lambda","children":[{"name":"alerts.py","path":"modules/alarms/sns-to-slack/lambda/alerts.py","sha":"09faffbfd4cb9068b8e0af0b56f1880dc1cee7a0"},{"name":"test-data","children":[{"name":"ec2-high-cpu-utilization-alert.json","path":"modules/alarms/sns-to-slack/lambda/test-data/ec2-high-cpu-utilization-alert.json","sha":"4efc79f1f6d77f0f715b86c0b86e9d95fd89d4a8"},{"name":"ec2-high-cpu-utilization-ok.json","path":"modules/alarms/sns-to-slack/lambda/test-data/ec2-high-cpu-utilization-ok.json","sha":"007ed86f4f4e2f23c5bac8b121de044ddb9b1753"}]},{"name":"test.py","path":"modules/alarms/sns-to-slack/lambda/test.py","sha":"e20f6a28fcfb81c578b52c18aa5430056e77f43c"}]},{"name":"main.tf","path":"modules/alarms/sns-to-slack/main.tf","sha":"bc8f93182ece057ad93b733b22b43f36053ef194"},{"name":"vars.tf","path":"modules/alarms/sns-to-slack/vars.tf","sha":"caa317ef44d6005761e6ddaf37298d6409ce2ecf"}]},{"name":"sqs-alarms","children":[{"name":"README.md","path":"modules/alarms/sqs-alarms/README.md","sha":"076c1e0546accdd50fd0f7a07435b84cfb0c21da"},{"name":"main.tf","path":"modules/alarms/sqs-alarms/main.tf","sha":"6e3261251f4839b818db6fab660e66e3c9c4f915"},{"name":"vars.tf","path":"modules/alarms/sqs-alarms/vars.tf","sha":"71b83be572ecfefbd55f8beace00a84351776bab"}]}],"toggled":true},{"name":"logs","children":[{"name":"README.md","path":"modules/logs/README.md","sha":"5a4e697af404e0a51645d68b1a872c60834e9f99"},{"name":"_deprecated","children":[{"name":"cloudwatch-log-aggregation-scripts","children":[{"name":"README.md","path":"modules/logs/_deprecated/cloudwatch-log-aggregation-scripts/README.md","sha":"41fce9dfddc6537ad2e950e3e05675aeb2352798"}]},{"name":"elb-access-logs","children":[{"name":"README.md","path":"modules/logs/_deprecated/elb-access-logs/README.md","sha":"3cb659a6a9a53f33a1ce0c59aa99d1cbcdb4e8df"}]}]},{"name":"cloudwatch-log-aggregation-iam-policy","children":[{"name":"README.md","path":"modules/logs/cloudwatch-log-aggregation-iam-policy/README.md","sha":"7c9b7c45e2590d25f2f56cc23222a3ba0db7ab67"},{"name":"main.tf","path":"modules/logs/cloudwatch-log-aggregation-iam-policy/main.tf","sha":"6222f4e0fdcf0385243581af56ecaf73bfde0446"},{"name":"outputs.tf","path":"modules/logs/cloudwatch-log-aggregation-iam-policy/outputs.tf","sha":"bd206e7139b681664671a31b09bf30533bc9ad48"},{"name":"vars.tf","path":"modules/logs/cloudwatch-log-aggregation-iam-policy/vars.tf","sha":"250152e6bfeb02a16bed4151ffc7156636db1bd9"}]},{"name":"cloudwatch-logs-metric-filters","children":[{"name":"README.md","path":"modules/logs/cloudwatch-logs-metric-filters/README.md","sha":"d8281b100291617ce01ed98eb313ba851a15b14d"},{"name":"main.tf","path":"modules/logs/cloudwatch-logs-metric-filters/main.tf","sha":"324199f9b5b70a2330ba0840f5c568d6965296ce"},{"name":"outputs.tf","path":"modules/logs/cloudwatch-logs-metric-filters/outputs.tf","sha":"dec3f496d05244a3728103e172be6a90476577c4"},{"name":"vars.tf","path":"modules/logs/cloudwatch-logs-metric-filters/vars.tf","sha":"6c7e2696e1aa6f958125a369e4be95dffd0e44e7"}]},{"name":"load-balancer-access-logs","children":[{"name":"README.md","path":"modules/logs/load-balancer-access-logs/README.md","sha":"6556919790743845bd789f6e49c679949b0f8981"},{"name":"_docs","children":[{"name":"Upgrade Guide.md","path":"modules/logs/load-balancer-access-logs/_docs/Upgrade Guide.md","sha":"c073730734b5e6359d6c9e547af6a4dc606f5575"}]},{"name":"main.tf","path":"modules/logs/load-balancer-access-logs/main.tf","sha":"b1442fd9d07bd76787bd77b74f3d05b53f770148"},{"name":"outputs.tf","path":"modules/logs/load-balancer-access-logs/outputs.tf","sha":"29c12b94d4b5ba9b4f90fa87dee0f028dce8048b"},{"name":"vars.tf","path":"modules/logs/load-balancer-access-logs/vars.tf","sha":"3c3b05995dc305dba4451502beec9c24f7b2bdd9"}]},{"name":"syslog","children":[{"name":"README.md","path":"modules/logs/syslog/README.md","sha":"e206cf910a893ea255dbbe76796f1ad872421608"},{"name":"install-scripts","children":[{"name":"configure-syslog","path":"modules/logs/syslog/install-scripts/configure-syslog","sha":"9bd9359ccb0b5f306f7c0df6f19ae07c34e94fc5"},{"name":"logrotate-config-amazon-linux","path":"modules/logs/syslog/install-scripts/logrotate-config-amazon-linux","sha":"1c3fedb3f165c7fcc89ce951f2ec28805c7373dc"},{"name":"logrotate-config-redhat","path":"modules/logs/syslog/install-scripts/logrotate-config-redhat","sha":"6aaf5e4f496d3742afccb9366ae5a0788d8716d3"},{"name":"logrotate-config-ubuntu","path":"modules/logs/syslog/install-scripts/logrotate-config-ubuntu","sha":"ea4603d761a8566a682bd194b8b0701198b34d59"}]},{"name":"install.sh","path":"modules/logs/syslog/install.sh","sha":"5995cf33d1b93a1d3397758f2de383386b9de94e"}]}]},{"name":"metrics","children":[{"name":"README.md","path":"modules/metrics/README.md","sha":"b1ac52c86288a6876aaa4fe7a971dd9bf7fb17ff"},{"name":"_deprecated","children":[{"name":"cloudwatch-memory-disk-metrics-scripts","children":[{"name":"README.md","path":"modules/metrics/_deprecated/cloudwatch-memory-disk-metrics-scripts/README.md","sha":"07bbc782adef777491067ce1e083e4bebf87897f"}]}]},{"name":"cloudwatch-custom-metrics-iam-policy","children":[{"name":"README.md","path":"modules/metrics/cloudwatch-custom-metrics-iam-policy/README.md","sha":"604c4e6ffcd1fb1486680112eb0ff28c061f4baa"},{"name":"main.tf","path":"modules/metrics/cloudwatch-custom-metrics-iam-policy/main.tf","sha":"44a7598c14043739c0806ded82beaa9577f6a41b"},{"name":"outputs.tf","path":"modules/metrics/cloudwatch-custom-metrics-iam-policy/outputs.tf","sha":"a4333e31573fa21ec9b638794ab0e83b8b5adcff"},{"name":"vars.tf","path":"modules/metrics/cloudwatch-custom-metrics-iam-policy/vars.tf","sha":"187d43c4156f9e630ce0ff4d5111ea1e9f934a9f"}]},{"name":"cloudwatch-dashboard-metric-widget","children":[{"name":"README.md","path":"modules/metrics/cloudwatch-dashboard-metric-widget/README.md","sha":"1e74fa76f69a158a8e001e3c1d1f92903cf2946d"},{"name":"main.tf","path":"modules/metrics/cloudwatch-dashboard-metric-widget/main.tf","sha":"78c03a3befcf700ebc80b03b6fb980e9a767c99a"},{"name":"outputs.tf","path":"modules/metrics/cloudwatch-dashboard-metric-widget/outputs.tf","sha":"b051fe38ab1908024978d27db681c88a5cac53ed"},{"name":"vars.tf","path":"modules/metrics/cloudwatch-dashboard-metric-widget/vars.tf","sha":"89519c38ffad943ba4926a150f1983dae74a6747"}]},{"name":"cloudwatch-dashboard-text-widget","children":[{"name":"README.md","path":"modules/metrics/cloudwatch-dashboard-text-widget/README.md","sha":"cd180e72c4ac373898ff2c74d8e56744baa71367"},{"name":"main.tf","path":"modules/metrics/cloudwatch-dashboard-text-widget/main.tf","sha":"79079549ba0b13b4ffdd526cc933a4957920bad1"},{"name":"outputs.tf","path":"modules/metrics/cloudwatch-dashboard-text-widget/outputs.tf","sha":"b051fe38ab1908024978d27db681c88a5cac53ed"},{"name":"vars.tf","path":"modules/metrics/cloudwatch-dashboard-text-widget/vars.tf","sha":"610e30a2d694634e7f4f343120e3fc0924ab1973"}]},{"name":"cloudwatch-dashboard","children":[{"name":"README.md","path":"modules/metrics/cloudwatch-dashboard/README.md","sha":"e3cde88d2636c386213f4fd0a19c9cd0e3b7b259"},{"name":"main.tf","path":"modules/metrics/cloudwatch-dashboard/main.tf","sha":"37729bc05100c3bd0ad4a865eed8b88864166c82"},{"name":"outputs.tf","path":"modules/metrics/cloudwatch-dashboard/outputs.tf","sha":"d99f4b61c9c195a40e12fc541a047d1b5ee3162d"},{"name":"vars.tf","path":"modules/metrics/cloudwatch-dashboard/vars.tf","sha":"fca792d317ef3a17c940106d8945fb2836fd76e9"}]}]}],"toggled":true},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"031cdc06d155eff31f9c5648a1c92ee5fb816ea0"},{"name":"alb_alarms_test.go","path":"test/alb_alarms_test.go","sha":"6b689fa00939234e519e98c2cfb809b682174ea3"},{"name":"asg_alarms_test.go","path":"test/asg_alarms_test.go","sha":"6a3a9d88f1ccf79884c78deb7ab5e8c22f41c6ec"},{"name":"cloudwatch_agent_test.go","path":"test/cloudwatch_agent_test.go","sha":"8453261dcde1dd26ac2f39d760e9a81e9b6ad5e2"},{"name":"cloudwatch_dashboard_test.go","path":"test/cloudwatch_dashboard_test.go","sha":"1e3a5a7c5d7b21644fa367ca4756fdab56286b9a"},{"name":"cloudwatch_logs_metric_filters_test.go","path":"test/cloudwatch_logs_metric_filters_test.go","sha":"42b5ac8a1dac8d3fc77ee7b7d5e280cfe4ffbefa"},{"name":"cloudwatch_to_slack_test.go","path":"test/cloudwatch_to_slack_test.go","sha":"f728ae4dca53a399ce2672baa2d6903852501582"},{"name":"ec2_alarms_test.go","path":"test/ec2_alarms_test.go","sha":"661ca6652bf89a50c2388c4679cde66b66d12917"},{"name":"ecs_alarms_test.go","path":"test/ecs_alarms_test.go","sha":"8fec30cf6e2df45e1c0332cbeecd17d19a71dd4a"},{"name":"elasticache_alarms_test.go","path":"test/elasticache_alarms_test.go","sha":"518d4bd81578e8856f4144d873fb80511bcedb58"},{"name":"elasticsearch_alarms_test.go","path":"test/elasticsearch_alarms_test.go","sha":"100ceb71c8fce494545c8316f027c34c03c7cbf8"},{"name":"elb_alarms_test.go","path":"test/elb_alarms_test.go","sha":"44e98f73e1f7dd7c32ead7ae7ec3398e6e8c8dbb"},{"name":"go.mod","path":"test/go.mod","sha":"71abd7923cedef9d75d3fb622b619c540898caf3"},{"name":"go.sum","path":"test/go.sum","sha":"26a9de4c5e22e7f032c7f64869adb0853aa920e9"},{"name":"lambda_alarms_test.go","path":"test/lambda_alarms_test.go","sha":"83d02ac9547b2b76924b618346cc07fa551aecea"},{"name":"lb_access_logs_test.go","path":"test/lb_access_logs_test.go","sha":"9670981f234777fd710a0e286f4c706e35f5fa84"},{"name":"rds_alarms_test.go","path":"test/rds_alarms_test.go","sha":"7618bdb06a6db4eacfa57d2aa0bb371655cfef94"},{"name":"route53_health_check_alarms_test.go","path":"test/route53_health_check_alarms_test.go","sha":"4686d0e7e1c304f0bb9485a67d311d2af474881a"},{"name":"scheduled_job_alarms_test.go","path":"test/scheduled_job_alarms_test.go","sha":"9609b20f55b6d1ae62c071daec0452e08f93b8c1"},{"name":"sqs_alarms_test.go","path":"test/sqs_alarms_test.go","sha":"1ab67d372dca438cd5e4fc5816d89d297ba0013d"},{"name":"syslog_test.go","path":"test/syslog_test.go","sha":"a33fb7401534a10567b842b74f029f4e56280833"},{"name":"test_helpers.go","path":"test/test_helpers.go","sha":"7e2620cd81349a85aca1f1a7a58b10ee711962fa"},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"74c928d0cbc2914e5cd708277bd857cb2375b660"}]}]}]},"detailsContent":"<h1 class=\"preview__body--title\" id=\"sheduled-job-alarm-module\">Sheduled Job Alarm Module</h1><div class=\"preview__body--border\"></div><p>This module creates an alarm that goes off if a specified metric drops below a specified threshold over a specified\ntime period. This is most useful for detecting if a scheduled job failed. For example, if you have a CRON job that runs\nonce per night, you could have the CRON job set a metric to the value "1" after each successful run and then use this\nmodule to trigger an alarm if the metric drops below the value "1" over a 24 hour period. This module works especially\nwell with <a href=\"https://github.com/josh-padnick/ec2-snapper\" class=\"preview__body--description--blue\" target=\"_blank\">ec2-snapper</a>, which you can run in a CRON job to automatically\nbackup EC2 Instances and write CloudWatch metrics.</p>\n<h2 class=\"preview__body--subtitle\" id=\"example\">Example</h2>\n<p>Check out the <a href=\"/repos/v0.29.1/terraform-aws-monitoring/examples/scheduled-job-alarms\" class=\"preview__body--description--blue\">examples/scheduled-job-alarms example</a>.</p>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-you-use-this-module\">How do you use this module?</h2>\n<p>The basic idea is to use the <code>module</code> resource in your templates and to specify:</p>\n<ol>\n<li>The name of your scheduled job</li>\n<li>The namespace in CloudWatch for your metrics</li>\n<li>The name of the metric that is incremented whenever the scheduled job runs</li>\n<li>How often that metric should be updated</li>\n<li>The ARN of an SNS topic to notify whenever the alarm goes into <code>OK</code> state, which indicates the scheduled job is\nworking, or <code>INSUFFICIENT_DATA</code> state, which indicates the metric is not being written, and therefore the scheduled\njob is probably failing.</li>\n</ol>\n<p>Example:</p>\n<pre><span class=\"hljs-keyword\">module</span> <span class=\"hljs-string\">\"scheduled_job_alarm\"</span> {\n source = <span class=\"hljs-string\">\"git::git@github.com:gruntwork-io/terraform-aws-monitoring.git//modules/alarms/scheduled-job-alarm?ref=v1.0.8\"</span>\n\n name = <span class=\"hljs-string\">\"my-scheduled-job-foo\"</span>\n namespace = <span class=\"hljs-string\">\"MyScheduledJobs\"</span>\n metric_name = <span class=\"hljs-string\">\"ScheduledJobFoo\"</span>\n alarm_sns_topic_arns = <span class=\"hljs-string\">\"<span class=\"hljs-variable\">${aws_sns_topic.cloudwatch_alarms.arn}</span>\"</span>\n\n <span class=\"hljs-comment\"># We expect the job to run once per day, which is 86,400 seconds. However, the job itself may take some time to run,</span>\n <span class=\"hljs-comment\"># so we add two hours (7200 seconds) of buffer room and expect the metric to be updated once every 93,600 seconds.</span>\n period = <span class=\"hljs-number\">93600</span>\n}\n\n<span class=\"hljs-comment\"># Create an SNS topic that will be notified whenever this alarm is in OK or INSUFFICIENT_DATA state. You can subscribe</span>\n<span class=\"hljs-comment\"># to notifications from this SNS topic by email or text message.</span>\n<span class=\"hljs-keyword\">resource</span> <span class=\"hljs-string\">\"aws_sns_topic\"</span> <span class=\"hljs-string\">\"cloudwatch_alarms\"</span> {\n name = <span class=\"hljs-string\">\"my-scheduled-job-cloudwatch-alarms\"</span>\n}\n</pre>\n<p>See <a href=\"/repos/v0.29.1/terraform-aws-monitoring/modules/alarms/scheduled-job-alarm/vars.tf\" class=\"preview__body--description--blue\">vars.tf</a> for documentation on all the parameters you can set in this module.</p>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-i-get-notifications-from-these-alarms\">How do I get notifications from these alarms?</h2>\n<p>One of the parameters you pass to this module is a list of <a href=\"https://aws.amazon.com/sns/\" class=\"preview__body--description--blue\" target=\"_blank\">SNS</a> topic ARNs to notify when\nthe website goes down. Here is how to configure an SNS topic:</p>\n<ol>\n<li>Create an SNS topic using the Terraform <a href=\"https://www.terraform.io/docs/providers/aws/r/sns_topic.html\" class=\"preview__body--description--blue\" target=\"_blank\">aws_sns_topic</a> resource.</li>\n<li>Pass the topic's ARN to this module (e.g. <code>alarm_sns_topic_arns = "${aws_sns_topic.my_topic.arn}"</code>)</li>\n<li>Login to the <a href=\"https://console.aws.amazon.com/sns/v2/home\" class=\"preview__body--description--blue\" target=\"_blank\">SNS console</a>.</li>\n<li>Click the "Topics" link in the menu on the left.</li>\n<li>Find your topic in the list and click the checkbox next to it.</li>\n<li>Click the "Actions" button and select "Subscribe to Topic".</li>\n<li>Choose "Email" or "SMS Message" as the protocol, enter your email or phone number, and click "Create Subscription".</li>\n<li>AWS will email or message you to confirm the subscription. Be sure to confirm it, or you won't receive any\nnotifications, and the alarm will report its status as <code>INSUFFICIENT_DATA</code>!</li>\n</ol>\n","repoName":"terraform-aws-monitoring","repoRef":"v0.30.3","serviceDescriptor":{"serviceName":"CloudWatch","serviceRepoName":"terraform-aws-monitoring","serviceRepoOrg":"gruntwork-io","cloudProviders":["aws"],"description":"Send all metrics to CloudWatch, including those not visible to the EC2 hypervisor. Create dashboards and alerts as code.","imageUrl":"cloudwatch.png","licenseType":"subscriber","technologies":["Terraform","Bash"],"compliance":[],"tags":[""]},"serviceCategoryName":"Monitoring & alerting","fileName":"README.md","filePath":"/modules/alarms/scheduled-job-alarm","title":"Repo Browser: CloudWatch","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}