diff --git a/tf/cloudwatch.tf b/tf/cloudwatch.tf index 6523b6a..6124e0a 100644 --- a/tf/cloudwatch.tf +++ b/tf/cloudwatch.tf @@ -1,3 +1,23 @@ +resource "aws_cloudwatch_metric_alarm" "server_cpu" { + count = local.ami_available ? 1 : 0 + + alarm_name = "riju-server-cpu-high" + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = "5" + metric_name = "CPUUtilization" + namespace = "AWS/EC2" + period = "60" + statistic = "Maximum" + threshold = "80" + alarm_description = "CPU usage on Riju server is above 80%" + ok_actions = [aws_sns_topic.riju.arn] + alarm_actions = [aws_sns_topic.riju.arn] + insufficient_data_actions = [aws_sns_topic.riju.arn] + dimensions = { + AutoScalingGroupName = aws_autoscaling_group.server[count.index].name + } +} + resource "aws_cloudwatch_metric_alarm" "server_memory" { count = local.ami_available ? 1 : 0 @@ -59,3 +79,86 @@ resource "aws_cloudwatch_metric_alarm" "server_root_volume_disk_space" { path = "/" } } + +resource "aws_cloudwatch_dashboard" "riju" { + count = local.ami_available ? 1 : 0 + + dashboard_name = "Riju" + dashboard_body = <