--- /dev/null
+resource "aws_cloudwatch_metric_alarm" "unconsumed" {
+ alarm_name = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}-unconsumed"
+ alarm_description = "Alert when queue has aging messages."
+ metric_name = "ApproximateAgeOfOldestMessage"
+ comparison_operator = "GreaterThanOrEqualToThreshold"
+ evaluation_periods = 10
+ period = 60
+ namespace = "AWS/SQS"
+ statistic = "Maximum"
+ threshold = 1800
+ dimensions {
+ QueueName = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}"
+ }
+ alarm_actions = ["${aws_sns_topic.management-alerts.arn}"]
+}
+
+resource "aws_cloudwatch_metric_alarm" "failures-present" {
+ alarm_name = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}-failed-present"
+ alarm_description = "Alert when a message has failed."
+ metric_name = "ApproximateNumberOfMessagesVisible"
+ comparison_operator = "GreaterThanOrEqualToThreshold"
+ evaluation_periods = 2
+ period = 60
+ namespace = "AWS/SQS"
+ statistic = "Sum"
+ threshold = 1
+ dimensions {
+ QueueName = "${length(var.sqs_events_name) > 0 ? var.sqs_events_name : var.management_service_name}${length(var.sqs_events_name) > 0 ? "" : "-events"}-failed"
+ }
+ alarm_actions = ["${aws_sns_topic.management-alerts.arn}"]
+}