-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
50 lines (45 loc) · 4.01 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
resource "aws_cloudwatch_metric_alarm" "jenkins" {
count = length(var.instance_alarms)
alarm_name = format("%s_%s", var.instance_tag_name_jenkins, lookup(element(var.instance_alarms, count.index), "metric_name"))
comparison_operator = lookup(element(var.instance_alarms, count.index), "comparison_operator")
evaluation_periods = lookup(element(var.instance_alarms, count.index), "evaluation_periods")
metric_name = lookup(element(var.instance_alarms, count.index), "metric_name")
namespace = lookup(element(var.instance_alarms, count.index), "namespace")
period = lookup(element(var.instance_alarms, count.index), "period")
statistic = lookup(element(var.instance_alarms, count.index), "statistic")
threshold = lookup(element(var.instance_alarms, count.index), "threshold")
alarm_description = lookup(element(var.instance_alarms, count.index), "alarm_description")
alarm_actions = [data.aws_sns_topic.this.arn]
insufficient_data_actions = []
dimensions = contains(keys(element(var.instance_alarms, count.index)), "dimensions") ? merge(lookup(element(var.instance_alarms, count.index), "dimensions"), {InstanceId = data.aws_instances.jenkins.ids[0]}) : {InstanceId = data.aws_instances.jenkins.ids[0]}
}
resource "aws_cloudwatch_metric_alarm" "dev" {
count = length(var.instance_alarms)
alarm_name = format("%s_%s", var.instance_tag_name_dev, lookup(element(var.instance_alarms, count.index), "metric_name"))
comparison_operator = lookup(element(var.instance_alarms, count.index), "comparison_operator")
evaluation_periods = lookup(element(var.instance_alarms, count.index), "evaluation_periods")
metric_name = lookup(element(var.instance_alarms, count.index), "metric_name")
namespace = lookup(element(var.instance_alarms, count.index), "namespace")
period = lookup(element(var.instance_alarms, count.index), "period")
statistic = lookup(element(var.instance_alarms, count.index), "statistic")
threshold = lookup(element(var.instance_alarms, count.index), "threshold")
alarm_description = lookup(element(var.instance_alarms, count.index), "alarm_description")
alarm_actions = [data.aws_sns_topic.this.arn]
insufficient_data_actions = []
dimensions = contains(keys(element(var.instance_alarms, count.index)), "dimensions") ? merge(lookup(element(var.instance_alarms, count.index), "dimensions"), {InstanceId = data.aws_instances.dev.ids[0]}) : {InstanceId = data.aws_instances.dev.ids[0]}
}
resource "aws_cloudwatch_metric_alarm" "prod" {
count = length(var.instance_alarms)
alarm_name = format("%s_%s", var.instance_tag_name_prod, lookup(element(var.instance_alarms, count.index), "metric_name"))
comparison_operator = lookup(element(var.instance_alarms, count.index), "comparison_operator")
evaluation_periods = lookup(element(var.instance_alarms, count.index), "evaluation_periods")
metric_name = lookup(element(var.instance_alarms, count.index), "metric_name")
namespace = lookup(element(var.instance_alarms, count.index), "namespace")
period = lookup(element(var.instance_alarms, count.index), "period")
statistic = lookup(element(var.instance_alarms, count.index), "statistic")
threshold = lookup(element(var.instance_alarms, count.index), "threshold")
alarm_description = lookup(element(var.instance_alarms, count.index), "alarm_description")
alarm_actions = [data.aws_sns_topic.this.arn]
insufficient_data_actions = []
dimensions = contains(keys(element(var.instance_alarms, count.index)), "dimensions") ? merge(lookup(element(var.instance_alarms, count.index), "dimensions"), {InstanceId = data.aws_instances.prod.ids[0]}) : {InstanceId = data.aws_instances.prod.ids[0]}
}