|
1 |
| - |
2 |
| -// CloudWatch Alarms |
3 |
| -resource "aws_cloudwatch_metric_alarm" "high_cpu" { |
4 |
| - count = "${var.enable_scaling_policies}" |
5 |
| - alarm_name = "${title("ec2-asg-${var.name}-high-cpu-utilization")}" |
6 |
| - comparison_operator = "GreaterThanOrEqualToThreshold" |
7 |
| - evaluation_periods = "${var.scaling_policy_high_cpu_evaluation_periods}" |
8 |
| - metric_name = "CPUUtilization" |
9 |
| - namespace = "AWS/EC2" |
10 |
| - period = "${var.scaling_policy_high_cpu_period}" |
11 |
| - statistic = "Average" |
12 |
| - threshold = "${var.scaling_policy_high_cpu_threshold}" |
13 |
| - alarm_description = "This metric monitor ec2 high cpu utilization" |
14 |
| - alarm_actions = ["${aws_autoscaling_policy.cpu_scaling_out.arn}"] |
15 |
| - dimensions { |
16 |
| - AutoScalingGroupName = "${aws_autoscaling_group.this.name}" |
17 |
| - } |
18 |
| -} |
19 |
| - |
20 |
| -resource "aws_cloudwatch_metric_alarm" "low_cpu" { |
21 |
| - count = "${var.enable_scaling_policies}" |
22 |
| - alarm_name = "${title("ec2-asg-${var.name}-low-cpu-utilization")}" |
23 |
| - comparison_operator = "LessThanThreshold" |
24 |
| - evaluation_periods = "${var.scaling_policy_low_cpu_evaluation_periods}" |
25 |
| - metric_name = "CPUUtilization" |
26 |
| - namespace = "AWS/EC2" |
27 |
| - period = "${var.scaling_policy_low_cpu_period}" |
28 |
| - statistic = "Average" |
29 |
| - threshold = "${var.scaling_policy_low_cpu_threshold}" |
30 |
| - alarm_description = "This metric monitor ec2 low cpu utilization" |
31 |
| - alarm_actions = ["${aws_autoscaling_policy.cpu_scaling_in.arn}"] |
32 |
| - dimensions { |
33 |
| - AutoScalingGroupName = "${aws_autoscaling_group.this.name}" |
34 |
| - } |
35 |
| -} |
36 |
| - |
37 |
| -// Auto Scaling Policy |
38 |
| -resource "aws_autoscaling_policy" "cpu_scaling_out" { |
39 |
| - count = "${var.enable_scaling_policies}" |
40 |
| - name = "cpu-scaling-out" |
41 |
| - scaling_adjustment = "${length(var.vpc_zone_identifier)}" |
42 |
| - adjustment_type = "ChangeInCapacity" |
43 |
| - cooldown = "${var.scaling_policy_scaling_out_cooldown}" |
44 |
| - autoscaling_group_name = "${aws_autoscaling_group.this.name}" |
45 |
| -} |
46 |
| - |
47 |
| -resource "aws_autoscaling_policy" "cpu_scaling_in" { |
48 |
| - count = "${var.enable_scaling_policies}" |
49 |
| - name = "cpu-scaling-in" |
50 |
| - scaling_adjustment = -1 |
51 |
| - adjustment_type = "ChangeInCapacity" |
52 |
| - cooldown = "${var.scaling_policy_scaling_in_cooldown}" |
53 |
| - autoscaling_group_name = "${aws_autoscaling_group.this.name}" |
54 |
| -} |
| 1 | +// CloudWatch Alarms |
| 2 | +resource "aws_cloudwatch_metric_alarm" "high_cpu" { |
| 3 | + count = "${var.enable_scaling_policies}" |
| 4 | + alarm_name = "${title("ec2-asg-${var.name}-high-cpu-utilization")}" |
| 5 | + comparison_operator = "GreaterThanOrEqualToThreshold" |
| 6 | + evaluation_periods = "${var.scaling_policy_high_cpu_evaluation_periods}" |
| 7 | + metric_name = "CPUUtilization" |
| 8 | + namespace = "AWS/EC2" |
| 9 | + period = "${var.scaling_policy_high_cpu_period}" |
| 10 | + statistic = "Average" |
| 11 | + threshold = "${var.scaling_policy_high_cpu_threshold}" |
| 12 | + alarm_description = "This metric monitor ec2 high cpu utilization" |
| 13 | + alarm_actions = ["${aws_autoscaling_policy.cpu_scaling_out.arn}"] |
| 14 | + |
| 15 | + dimensions { |
| 16 | + AutoScalingGroupName = "${aws_autoscaling_group.this.name}" |
| 17 | + } |
| 18 | +} |
| 19 | + |
| 20 | +resource "aws_cloudwatch_metric_alarm" "low_cpu" { |
| 21 | + count = "${var.enable_scaling_policies}" |
| 22 | + alarm_name = "${title("ec2-asg-${var.name}-low-cpu-utilization")}" |
| 23 | + comparison_operator = "LessThanThreshold" |
| 24 | + evaluation_periods = "${var.scaling_policy_low_cpu_evaluation_periods}" |
| 25 | + metric_name = "CPUUtilization" |
| 26 | + namespace = "AWS/EC2" |
| 27 | + period = "${var.scaling_policy_low_cpu_period}" |
| 28 | + statistic = "Average" |
| 29 | + threshold = "${var.scaling_policy_low_cpu_threshold}" |
| 30 | + alarm_description = "This metric monitor ec2 low cpu utilization" |
| 31 | + alarm_actions = ["${aws_autoscaling_policy.cpu_scaling_in.arn}"] |
| 32 | + |
| 33 | + dimensions { |
| 34 | + AutoScalingGroupName = "${aws_autoscaling_group.this.name}" |
| 35 | + } |
| 36 | +} |
| 37 | + |
| 38 | +// Auto Scaling Policy |
| 39 | +resource "aws_autoscaling_policy" "cpu_scaling_out" { |
| 40 | + count = "${var.enable_scaling_policies}" |
| 41 | + name = "cpu-scaling-out" |
| 42 | + scaling_adjustment = "${length(var.vpc_zone_identifier)}" |
| 43 | + adjustment_type = "ChangeInCapacity" |
| 44 | + cooldown = "${var.scaling_policy_scaling_out_cooldown}" |
| 45 | + autoscaling_group_name = "${aws_autoscaling_group.this.name}" |
| 46 | +} |
| 47 | + |
| 48 | +resource "aws_autoscaling_policy" "cpu_scaling_in" { |
| 49 | + count = "${var.enable_scaling_policies}" |
| 50 | + name = "cpu-scaling-in" |
| 51 | + scaling_adjustment = -1 |
| 52 | + adjustment_type = "ChangeInCapacity" |
| 53 | + cooldown = "${var.scaling_policy_scaling_in_cooldown}" |
| 54 | + autoscaling_group_name = "${aws_autoscaling_group.this.name}" |
| 55 | +} |
0 commit comments