resource "aws_cloudwatch_metric_alarm" "alarm_high" {
  alarm_name = "${var.environment}-${var.service_name}/AlarmHigh"

  namespace   = "${var.environment}-${var.service_name}"
  metric_name = "AverageNumberOfMessagesPerTask"
  dimensions = {
    "QueueNameRegex" = var.sqs_queue_name_regex
    "ClusterName"    = var.ecs_cluster_name
    "ServiceName"    = var.ecs_service_name
  }
  statistic = "Average"
  period    = 60

  alarm_description         = "This alarm is triggered by the average number of messages in SQS per ECS task."
  comparison_operator       = "GreaterThanOrEqualToThreshold"
  threshold                 = 200
  evaluation_periods        = 2
  datapoints_to_alarm       = 2
  insufficient_data_actions = []
}

resource "aws_cloudwatch_metric_alarm" "alarm_low" {
  alarm_name = "${var.environment}-${var.service_name}/AlarmLow"

  namespace   = "${var.environment}-${var.service_name}"
  metric_name = "AverageNumberOfMessagesPerTask"
  dimensions = {
    "QueueNameRegex" = var.sqs_queue_name_regex
    "ClusterName"    = var.ecs_cluster_name
    "ServiceName"    = var.ecs_service_name
  }
  statistic = "Average"
  period    = 60

  alarm_description         = "This alarm is triggered by the average number of messages in SQS per ECS task."
  comparison_operator       = "LessThanOrEqualToThreshold"
  threshold                 = 100
  evaluation_periods        = 2
  datapoints_to_alarm       = 2
  insufficient_data_actions = []
}
