diff --git a/README.md b/README.md index f93a571..e1a8238 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ - -# terraform-aws-ec2-instance [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-aws-ec2-instance.svg)](https://github.com/cloudposse/terraform-aws-ec2-instance/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) +# terraform-aws-ec2-instance +Latest ReleaseSlack Community - - [logo]: https://cloudposse.com/logo-300x69.svg - [docs]: https://cpco.io/docs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=docs - [website]: https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=website - [github]: https://cpco.io/github?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=github - [jobs]: https://cpco.io/jobs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=jobs - [hire]: https://cpco.io/hire?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=hire - [slack]: https://cpco.io/slack?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=slack - [twitter]: https://cpco.io/twitter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=twitter - [office_hours]: https://cloudposse.com/office-hours?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=office_hours - [newsletter]: https://cpco.io/newsletter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=newsletter - [email]: https://cpco.io/email?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=email - [commercial_support]: https://cpco.io/commercial-support?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=commercial_support - [we_love_open_source]: https://cpco.io/we-love-open-source?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=we_love_open_source - [terraform_modules]: https://cpco.io/terraform-modules?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=terraform_modules - [readme_header_img]: https://cloudposse.com/readme/header/img - [readme_header_link]: https://cloudposse.com/readme/header/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=readme_header_link - [readme_footer_img]: https://cloudposse.com/readme/footer/img - [readme_footer_link]: https://cloudposse.com/readme/footer/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=readme_footer_link - [readme_commercial_support_img]: https://cloudposse.com/readme/commercial-support/img - [readme_commercial_support_link]: https://cloudposse.com/readme/commercial-support/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/terraform-aws-ec2-instance&utm_content=readme_commercial_support_link - [beacon]: https://ga-beacon.cloudposse.com/UA-76589703-4/cloudposse/terraform-aws-ec2-instance?pixel&cs=github&cm=readme&an=terraform-aws-ec2-instance - + + +README footer + +Beacon diff --git a/cloudwatch-alarm.tf b/cloudwatch-alarm.tf index bc93df5..331002d 100644 --- a/cloudwatch-alarm.tf +++ b/cloudwatch-alarm.tf @@ -20,6 +20,7 @@ resource "aws_cloudwatch_metric_alarm" "default" { statistic = var.statistic_level threshold = var.metric_threshold depends_on = [null_resource.check_alarm_action] + treat_missing_data = var.metric_treat_missing_data dimensions = { InstanceId = one(aws_instance.default[*].id) diff --git a/docs/terraform.md b/docs/terraform.md index 3c0a628..ea5b853 100644 --- a/docs/terraform.md +++ b/docs/terraform.md @@ -104,6 +104,7 @@ | [metric\_name](#input\_metric\_name) | The name for the alarm's associated metric. Allowed values can be found in https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ec2-metricscollected.html | `string` | `"StatusCheckFailed_Instance"` | no | | [metric\_namespace](#input\_metric\_namespace) | The namespace for the alarm's associated metric. Allowed values can be found in https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-namespaces.html | `string` | `"AWS/EC2"` | no | | [metric\_threshold](#input\_metric\_threshold) | The value against which the specified statistic is compared | `number` | `1` | no | +| [metric\_treat\_missing\_data](#input\_metric\_treat\_missing\_data) | Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. | `string` | `"missing"` | no | | [monitoring](#input\_monitoring) | Launched EC2 instance will have detailed monitoring enabled | `bool` | `true` | no | | [name](#input\_name) | ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'.
This is the only ID element not also included as a `tag`.
The "name" tag is set to the full `id` string. There is no tag with the value of the `name` input. | `string` | `null` | no | | [namespace](#input\_namespace) | ID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp', to help ensure generated IDs are globally unique | `string` | `null` | no | diff --git a/examples/complete/fixtures.us-east-2.tfvars b/examples/complete/fixtures.us-east-2.tfvars index 5fb4c26..0e78013 100644 --- a/examples/complete/fixtures.us-east-2.tfvars +++ b/examples/complete/fixtures.us-east-2.tfvars @@ -55,3 +55,5 @@ security_group_rules = [ ] ssh_public_key_path = "/secrets" + +metric_treat_missing_data = "notBreaching" \ No newline at end of file diff --git a/examples/complete/main.tf b/examples/complete/main.tf index 5b2baaa..da5f77a 100644 --- a/examples/complete/main.tf +++ b/examples/complete/main.tf @@ -85,6 +85,7 @@ module "ec2_instance" { security_group_rules = var.security_group_rules instance_profile = aws_iam_instance_profile.test.name tenancy = var.tenancy + metric_treat_missing_data = var.metric_treat_missing_data depends_on = [aws_iam_instance_profile.test] diff --git a/examples/complete/variables.tf b/examples/complete/variables.tf index 128364a..826c58b 100644 --- a/examples/complete/variables.tf +++ b/examples/complete/variables.tf @@ -46,3 +46,13 @@ variable "tenancy" { error_message = "Tenancy field can only be one of default, dedicated, host" } } + +variable "metric_treat_missing_data" { + type = string + description = "Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`." + default = "missing" + validation { + condition = contains(["missing", "ignore", "breaching", "notBreaching"], var.metric_treat_missing_data) + error_message = "The value of metric_treat_missing_data must be one of the following: \"missing\", \"ignore\", \"breaching\", and \"notBreaching\"." + } +} \ No newline at end of file diff --git a/variables.tf b/variables.tf index bfc02a6..494cbec 100644 --- a/variables.tf +++ b/variables.tf @@ -279,6 +279,16 @@ variable "metric_threshold" { default = 1 } +variable "metric_treat_missing_data" { + type = string + description = "Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`." + default = "missing" + validation { + condition = contains(["missing", "ignore", "breaching", "notBreaching"], var.metric_treat_missing_data) + error_message = "The value of metric_treat_missing_data must be one of the following: \"missing\", \"ignore\", \"breaching\", and \"notBreaching\"." + } +} + variable "disable_alarm_action" { type = bool default = false