From 3c24284384b197ce1d2f791f569891bf2510b31d Mon Sep 17 00:00:00 2001 From: Alexandre Gaillet Date: Mon, 11 Jun 2018 13:57:34 +0200 Subject: [PATCH] MON-32 - module elasticache updated with variables in memcached --- cloud/aws/elasticache/memcached/README.md | 26 +++- cloud/aws/elasticache/memcached/inputs.tf | 135 ++++++++++++++++++ .../memcached/monitors-memcached.tf | 31 +++- cloud/aws/elasticache/redis/README.md | 2 +- 4 files changed, 191 insertions(+), 3 deletions(-) diff --git a/cloud/aws/elasticache/memcached/README.md b/cloud/aws/elasticache/memcached/README.md index 20266e9..75360b0 100644 --- a/cloud/aws/elasticache/memcached/README.md +++ b/cloud/aws/elasticache/memcached/README.md @@ -5,7 +5,7 @@ How to use this module ---------------------- ``` -module "datadog-monitors-aws-elasticcache-redis" { +module "datadog-monitors-aws-elasticache-redis" { source = "git::ssh://git@bitbucket.org/morea/terraform.feature.datadog.git//cloud/aws/elasticache/memcached?ref={revision}" message = "${module.datadog-message-alerting.alerting-message}" @@ -36,14 +36,38 @@ Inputs | delay | Delay in seconds for the metric evaluation | string | `900` | no | | elasticache_size | Size of the Elasticache instance | string | - | yes | | environment | Infrastructure Environment | string | - | yes | +| eviction_message | Custom message for Elasticache eviction monitor | string | `` | no | +| eviction_silenced | Groups to mute for Elasticache eviction monitor | map | `` | no | +| eviction_time_aggregator | Monitor aggregator for Elasticache eviction [available values: min, max or avg] | string | `min` | no | +| eviction_timeframe | Monitor timeframe for Elasticache eviction [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no | | filter_tags_custom | Tags used for custom filtering when filter_tags_use_defaults is false | string | `*` | no | | filter_tags_use_defaults | Use default filter tags convention | string | `true` | no | +| free_memory_condition_timeframe | Monitor condition timeframe for Elasticache free memory [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_15m` | no | +| free_memory_message | Custom message for Elasticache free memory monitor | string | `` | no | +| free_memory_silenced | Groups to mute for Elasticache free memory monitor | map | `` | no | +| free_memory_threshold_critical | Elasticache free memory critical threshold in percentage | string | `-70` | no | +| free_memory_threshold_warning | Elasticache free memory warning threshold in percentage | string | `-50` | no | +| free_memory_timeframe | Monitor timeframe for Elasticache free memory [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_15m` | no | | get_hits_message | Custom message for Elasticache memcached get hits monitor | string | `` | no | | get_hits_silenced | Groups to mute for Elasticache memcached get hits monitor | map | `` | no | | get_hits_threshold_critical | Elasticache memcached get hits critical threshold in percentage | string | `10` | no | | get_hits_threshold_warning | Elasticache memcached get hits warning threshold in percentage | string | `20` | no | | get_hits_timeframe | Monitor timeframe for Elasticache memcached get hits [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_15m` | no | +| max_connection_message | Custom message for Elasticache max connection monitor | string | `` | no | +| max_connection_silenced | Groups to mute for Elasticache max connection monitor | map | `` | no | +| max_connection_time_aggregator | Monitor aggregator for Elasticache max connection [available values: min, max or avg] | string | `max` | no | +| max_connection_timeframe | Monitor timeframe for Elasticache max connection [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no | | message | Message sent when an alert is triggered | string | - | yes | +| no_connection_message | Custom message for Elasticache no connection monitor | string | `` | no | +| no_connection_silenced | Groups to mute for Elasticache no connection monitor | map | `` | no | +| no_connection_time_aggregator | Monitor aggregator for Elasticache no connection [available values: min, max or avg] | string | `min` | no | +| no_connection_timeframe | Monitor timeframe for Elasticache no connection [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no | +| swap_message | Custom message for Elasticache swap monitor | string | `` | no | +| swap_silenced | Groups to mute for Elasticache swap monitor | map | `` | no | +| swap_threshold_critical | Elasticache swap critical threshold in percentage | string | `50000000` | no | +| swap_threshold_warning | Elasticache swap warning threshold in percentage | string | `0` | no | +| swap_time_aggregator | Monitor aggregator for Elasticache memcached swap [available values: min, max or avg] | string | `min` | no | +| swap_timeframe | Monitor timeframe for Elasticache swap [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no | Related documentation --------------------- diff --git a/cloud/aws/elasticache/memcached/inputs.tf b/cloud/aws/elasticache/memcached/inputs.tf index 6bb4ff4..acdce22 100644 --- a/cloud/aws/elasticache/memcached/inputs.tf +++ b/cloud/aws/elasticache/memcached/inputs.tf @@ -90,3 +90,138 @@ variable "cpu_high_threshold_critical" { description = "Elasticache memcached cpu high critical threshold in percentage" default = 90 } + +# Elasticache specific +variable "eviction_silenced" { + description = "Groups to mute for Elasticache eviction monitor" + type = "map" + default = {} +} + +variable "eviction_message" { + description = "Custom message for Elasticache eviction monitor" + type = "string" + default = "" +} + +variable "eviction_time_aggregator" { + description = "Monitor aggregator for Elasticache eviction [available values: min, max or avg]" + type = "string" + default = "min" +} + +variable "eviction_timeframe" { + description = "Monitor timeframe for Elasticache eviction [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_5m" +} + +variable "max_connection_silenced" { + description = "Groups to mute for Elasticache max connection monitor" + type = "map" + default = {} +} + +variable "max_connection_message" { + description = "Custom message for Elasticache max connection monitor" + type = "string" + default = "" +} + +variable "max_connection_time_aggregator" { + description = "Monitor aggregator for Elasticache max connection [available values: min, max or avg]" + type = "string" + default = "max" +} + +variable "max_connection_timeframe" { + description = "Monitor timeframe for Elasticache max connection [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_5m" +} + +variable "no_connection_silenced" { + description = "Groups to mute for Elasticache no connection monitor" + type = "map" + default = {} +} + +variable "no_connection_message" { + description = "Custom message for Elasticache no connection monitor" + type = "string" + default = "" +} + +variable "no_connection_time_aggregator" { + description = "Monitor aggregator for Elasticache no connection [available values: min, max or avg]" + type = "string" + default = "min" +} + +variable "no_connection_timeframe" { + description = "Monitor timeframe for Elasticache no connection [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_5m" +} + +variable "swap_silenced" { + description = "Groups to mute for Elasticache swap monitor" + type = "map" + default = {} +} + +variable "swap_message" { + description = "Custom message for Elasticache swap monitor" + type = "string" + default = "" +} + +variable "swap_time_aggregator" { + description = "Monitor aggregator for Elasticache memcached swap [available values: min, max or avg]" + type = "string" + default = "min" +} + +variable "swap_timeframe" { + description = "Monitor timeframe for Elasticache swap [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_5m" +} + +variable "swap_threshold_warning" { + description = "Elasticache swap warning threshold in percentage" + default = 0 +} + +variable "swap_threshold_critical" { + description = "Elasticache swap critical threshold in percentage" + default = 50000000 +} + +variable "free_memory_silenced" { + description = "Groups to mute for Elasticache free memory monitor" + type = "map" + default = {} +} + +variable "free_memory_message" { + description = "Custom message for Elasticache free memory monitor" + type = "string" + default = "" +} + +variable "free_memory_condition_timeframe" { + description = "Monitor condition timeframe for Elasticache free memory [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_15m" +} + +variable "free_memory_timeframe" { + description = "Monitor timeframe for Elasticache free memory [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`]" + default = "last_15m" +} + +variable "free_memory_threshold_warning" { + description = "Elasticache free memory warning threshold in percentage" + default = -50 +} + +variable "free_memory_threshold_critical" { + description = "Elasticache free memory critical threshold in percentage" + default = -70 +} diff --git a/cloud/aws/elasticache/memcached/monitors-memcached.tf b/cloud/aws/elasticache/memcached/monitors-memcached.tf index 1a95797..ea8a1c8 100644 --- a/cloud/aws/elasticache/memcached/monitors-memcached.tf +++ b/cloud/aws/elasticache/memcached/monitors-memcached.tf @@ -6,13 +6,42 @@ data "template_file" "filter" { } } -module "datadog-monitors-aws-elasticcache-common" { +module "datadog-monitors-aws-elasticache-common" { source = "../common" message = "${var.message}" environment = "${var.environment}" filter_tags = "${data.template_file.filter.rendered}" resource = "memcached" + + eviction_message = "${var.eviction_message}" + eviction_silenced = "${var.eviction_silenced}" + eviction_time_aggregator = "${var.eviction_time_aggregator}" + eviction_timeframe = "${var.eviction_timeframe}" + + free_memory_condition_timeframe = "${var.free_memory_condition_timeframe}" + free_memory_timeframe = "${var.free_memory_timeframe}" + free_memory_message = "${var.free_memory_message}" + free_memory_silenced = "${var.free_memory_silenced}" + free_memory_threshold_critical = "${var.free_memory_threshold_critical}" + free_memory_threshold_warning = "${var.free_memory_threshold_warning}" + + max_connection_message = "${var.max_connection_message}" + max_connection_silenced = "${var.max_connection_silenced}" + max_connection_time_aggregator = "${var.max_connection_time_aggregator}" + max_connection_timeframe = "${var.max_connection_timeframe}" + + no_connection_message = "${var.no_connection_message}" + no_connection_silenced = "${var.no_connection_silenced}" + no_connection_time_aggregator = "${var.no_connection_time_aggregator}" + no_connection_timeframe = "${var.no_connection_timeframe}" + + swap_message = "${var.swap_message}" + swap_silenced = "${var.swap_silenced}" + swap_threshold_critical = "${var.swap_threshold_critical}" + swap_threshold_warning = "${var.swap_threshold_warning}" + swap_time_aggregator = "${var.swap_time_aggregator}" + swap_timeframe = "${var.swap_timeframe}" } resource "datadog_monitor" "memcached_get_hits" { diff --git a/cloud/aws/elasticache/redis/README.md b/cloud/aws/elasticache/redis/README.md index 2be14a9..e643fea 100644 --- a/cloud/aws/elasticache/redis/README.md +++ b/cloud/aws/elasticache/redis/README.md @@ -5,7 +5,7 @@ How to use this module ---------------------- ``` -module "datadog-monitors-aws-elasticcache-redis" { +module "datadog-monitors-aws-elasticache-redis" { source = "git::ssh://git@bitbucket.org/morea/terraform.feature.datadog.git//cloud/aws/elasticache/redis?ref={revision}" message = "${module.datadog-message-alerting.alerting-message}"