variable "autoscaling_group" { description = "The auto scaling group that should be monitored." } variable "sms_number" { description = "The number in which to send SMS text messages for Alerts, in format +14126552983" } resource "aws_sns_topic" "send_text" { name = "sendText" } resource "aws_sns_topic_subscription" "text_send_text_target" { topic_arn = "${aws_sns_topic.send_text.arn}" protocol = "sms" endpoint = "${var.sms_number}" } resource "aws_cloudwatch_metric_alarm" "alarm_minutes" { alarm_name = "terraform-idle_cpu_5_mins" comparison_operator = "LessThanOrEqualToThreshold" evaluation_periods = "5" metric_name = "CPUUtilization" namespace = "AWS/EC2" period = "60" statistic = "Average" threshold = "2" dimensions { AutoScalingGroupName = "${var.autoscaling_group}" } alarm_description = "This metric monitors ec2 cpu utilization every minute for 5 minutes" alarm_actions = ["${aws_sns_topic.send_text.arn}"] } resource "aws_cloudwatch_metric_alarm" "alarm_hours" { alarm_name = "terraform-idle_cpu_5_hours" comparison_operator = "LessThanOrEqualToThreshold" evaluation_periods = "5" metric_name = "CPUUtilization" namespace = "AWS/EC2" period = "3600" statistic = "Average" threshold = "2" dimensions { AutoScalingGroupName = "${var.autoscaling_group}" } alarm_description = "This metric monitors ec2 cpu utilization every hour for 5 hours" alarm_actions = ["${aws_sns_topic.send_text.arn}"] }