diff --git a/lib/terraforming/resource/cloud_watch_alarm.rb b/lib/terraforming/resource/cloud_watch_alarm.rb index ec2d293a..b3a92af1 100644 --- a/lib/terraforming/resource/cloud_watch_alarm.rb +++ b/lib/terraforming/resource/cloud_watch_alarm.rb @@ -47,6 +47,7 @@ def alarm_attributes(alarm) "period" => alarm.period.to_s, "statistic" => alarm.statistic, "threshold" => alarm.threshold.to_s, + "treat_missing_data" => alarm.treat_missing_data, "unit" => sanitize(alarm.unit) } add_checksummed_attributes(attributes, alarm) diff --git a/lib/terraforming/template/tf/cloud_watch_alarm.erb b/lib/terraforming/template/tf/cloud_watch_alarm.erb index 4a859934..9ea08a66 100644 --- a/lib/terraforming/template/tf/cloud_watch_alarm.erb +++ b/lib/terraforming/template/tf/cloud_watch_alarm.erb @@ -8,6 +8,7 @@ resource "aws_cloudwatch_metric_alarm" "<%= normalize_module_name(alarm.alarm_na period = "<%= alarm.period %>" statistic = "<%= alarm.statistic %>" threshold = "<%= alarm.threshold %>" + treat_missing_data = "<%= alarm.treat_missing_data %>" alarm_description = "<%= alarm.alarm_description %>" <%- unless alarm.ok_actions.empty? -%> ok_actions = <%= alarm.ok_actions %> @@ -19,7 +20,7 @@ resource "aws_cloudwatch_metric_alarm" "<%= normalize_module_name(alarm.alarm_na actions_enabled = <%= alarm.actions_enabled %> <%- end -%> <%- unless alarm.dimensions.empty? -%> - dimensions { + dimensions = { <% alarm.dimensions.each do |dimension| -%> <%= dimension.name %> = "<%= dimension.value %>" <% end -%> diff --git a/spec/lib/terraforming/resource/cloud_watch_alarm_spec.rb b/spec/lib/terraforming/resource/cloud_watch_alarm_spec.rb index b2eb6dd1..fb71ac0a 100644 --- a/spec/lib/terraforming/resource/cloud_watch_alarm_spec.rb +++ b/spec/lib/terraforming/resource/cloud_watch_alarm_spec.rb @@ -22,6 +22,7 @@ module Resource ok_actions: [], period: 300, statistic: "Average", + treat_missing_data: "missing", threshold: 10000.0 }, { @@ -37,6 +38,7 @@ module Resource ok_actions: [], period: 120, statistic: "Average", + treat_missing_data: "notBreaching", threshold: 80.0 } ] @@ -58,9 +60,10 @@ module Resource period = "300" statistic = "Average" threshold = "10000.0" + treat_missing_data = "missing" alarm_description = "" alarm_actions = ["arn:aws:sns:region:account:lambda-alerts"] - dimensions { + dimensions = { FunctionName = "beep-beep" } } @@ -74,6 +77,7 @@ module Resource period = "120" statistic = "Average" threshold = "80.0" + treat_missing_data = "notBreaching" alarm_description = "This metric monitors ec2 cpu utilization" actions_enabled = false } @@ -102,6 +106,7 @@ module Resource "period" => "300", "statistic" => "Average", "threshold" => "10000.0", + "treat_missing_data" => "missing", "unit" => "", "insufficient_data_actions.#" => "0", "alarm_actions.#" => "1", @@ -128,6 +133,7 @@ module Resource "period" => "120", "statistic" => "Average", "threshold" => "80.0", + "treat_missing_data" => "notBreaching", "unit" => "", "insufficient_data_actions.#" => "0", "alarm_actions.#" => "0",