From e2ce23c0f514a32ca5a07a2a0f0b09ca82a650a5 Mon Sep 17 00:00:00 2001 From: Laurent Piroelle Date: Mon, 27 Aug 2018 16:31:41 +0200 Subject: [PATCH] MON-162 Add `enabled` variable for new Azure monitors --- cloud/azure/cosmosdb/inputs.tf | 30 +++++++ cloud/azure/cosmosdb/monitors-cosmosdb.tf | 10 ++- cloud/azure/datalakestore/inputs.tf | 6 ++ .../datalakestore/monitors-datalakestore.tf | 2 + cloud/azure/inputs.tf | 78 +++++++++++++++++++ cloud/azure/keyvault/inputs.tf | 18 +++++ cloud/azure/keyvault/monitors-keyvault.tf | 6 ++ cloud/azure/monitors.tf | 8 ++ cloud/azure/servicebus/inputs.tf | 24 ++++++ .../azure/servicebus/monitors-service-bus.tf | 8 ++ 10 files changed, 189 insertions(+), 1 deletion(-) diff --git a/cloud/azure/cosmosdb/inputs.tf b/cloud/azure/cosmosdb/inputs.tf index 19f0939..891f2cc 100644 --- a/cloud/azure/cosmosdb/inputs.tf +++ b/cloud/azure/cosmosdb/inputs.tf @@ -28,6 +28,12 @@ variable "new_host_delay" { } # Azure CosmosDB specific variables +variable "status_enabled" { + description = "Flag to enable Cosmos DB status monitor" + type = "string" + default = "true" +} + variable "status_silenced" { description = "Groups to mute for Cosmos DB status monitor" type = "map" @@ -64,6 +70,12 @@ variable "cosmos_db_4xx_requests_message" { default = "" } +variable "cosmos_db_4xx_requests_enabled" { + description = "Flag to enable Cosmos DB 4xx requests monitor" + type = "string" + default = "true" +} + variable "cosmos_db_4xx_requests_silenced" { description = "Groups to mute for Cosmos DB 4xx requests monitor" type = "map" @@ -104,6 +116,12 @@ variable "cosmos_db_5xx_requests_message" { default = "" } +variable "cosmos_db_5xx_requests_enabled" { + description = "Flag to enable Cosmos DB 5xx requests monitor" + type = "string" + default = "true" +} + variable "cosmos_db_5xx_requests_silenced" { description = "Groups to mute for Cosmos DB 5xx requests monitor" type = "map" @@ -144,6 +162,12 @@ variable "cosmos_db_no_request_message" { default = "" } +variable "cosmos_db_no_request_enabled" { + description = "Flag to enable Cosmos DB no request monitor" + type = "string" + default = "true" +} + variable "cosmos_db_no_request_silenced" { description = "Groups to mute for Cosmos DB no request monitor" type = "map" @@ -174,6 +198,12 @@ variable "cosmos_db_ru_utilization_message" { default = "" } +variable "cosmos_db_ru_utilization_enabled" { + description = "Flag to enable Cosmos DB collection RU utilization monitor" + type = "string" + default = "true" +} + variable "cosmos_db_ru_utilization_silenced" { description = "Groups to mute for Cosmos DB collection RU utilization monitor" type = "map" diff --git a/cloud/azure/cosmosdb/monitors-cosmosdb.tf b/cloud/azure/cosmosdb/monitors-cosmosdb.tf index 4b1e23b..25213b9 100644 --- a/cloud/azure/cosmosdb/monitors-cosmosdb.tf +++ b/cloud/azure/cosmosdb/monitors-cosmosdb.tf @@ -1,4 +1,6 @@ resource "datadog_monitor" "cosmos_db_status" { + count = "${var.status_enabled ? 1 : 0}" + name = "[${var.environment}] Cosmos DB is down" message = "${coalesce(var.status_message, var.message)}" @@ -31,6 +33,8 @@ resource "datadog_monitor" "cosmos_db_status" { } resource "datadog_monitor" "cosmos_db_4xx_requests" { + count = "${var.cosmos_db_4xx_requests_enabled ? 1 : 0}" + name = "[${var.environment}] Cosmos DB 4xx requests rate is high {{#is_alert}}{{comparator}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{comparator}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.cosmos_db_4xx_requests_message, var.message)}" @@ -88,6 +92,8 @@ resource "datadog_monitor" "cosmos_db_4xx_requests" { } resource "datadog_monitor" "cosmos_db_5xx_requests" { + count = "${var.cosmos_db_5xx_requests_enabled ? 1 : 0}" + name = "[${var.environment}] Cosmos DB 5xx requests rate is high {{#is_alert}}{{comparator}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{comparator}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.cosmos_db_5xx_requests_message, var.message)}" @@ -129,6 +135,8 @@ resource "datadog_monitor" "cosmos_db_5xx_requests" { } resource "datadog_monitor" "cosmos_db_success_no_data" { + count = "${var.cosmos_db_no_request_enabled ? 1 : 0}" + name = "[${var.environment}] Cosmos DB has no request" message = "${coalesce(var.cosmos_db_no_request_message, var.message)}" @@ -157,7 +165,7 @@ resource "datadog_monitor" "cosmos_db_success_no_data" { } resource "datadog_monitor" "cosmos_db_ru_utilization" { - count = "${length(var.cosmos_db_ru_utilization_collections)}" + count = "${var.cosmos_db_ru_utilization_enabled ? length(var.cosmos_db_ru_utilization_collections) : 0}" name = "[${var.environment}] Cosmos DB collection ${element(keys(var.cosmos_db_ru_utilization_collections),count.index)} RU utilization is high {{#is_alert}}{{comparator}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{comparator}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.cosmos_db_ru_utilization_message, var.message)}" diff --git a/cloud/azure/datalakestore/inputs.tf b/cloud/azure/datalakestore/inputs.tf index 319056a..7a0183c 100644 --- a/cloud/azure/datalakestore/inputs.tf +++ b/cloud/azure/datalakestore/inputs.tf @@ -28,6 +28,12 @@ variable "new_host_delay" { } # Azure Datalake Store specific variables +variable "status_enabled" { + description = "Flag to enable Datalake Store status monitor" + type = "string" + default = "true" +} + variable "status_silenced" { description = "Groups to mute for Datalake Store status monitor" type = "map" diff --git a/cloud/azure/datalakestore/monitors-datalakestore.tf b/cloud/azure/datalakestore/monitors-datalakestore.tf index b7c41b1..db5f78f 100644 --- a/cloud/azure/datalakestore/monitors-datalakestore.tf +++ b/cloud/azure/datalakestore/monitors-datalakestore.tf @@ -1,4 +1,6 @@ resource "datadog_monitor" "datalakestore_status" { + count = "${var.status_enabled ? 1 : 0}" + name = "[${var.environment}] Datalake Store is down" message = "${coalesce(var.status_message, var.message)}" diff --git a/cloud/azure/inputs.tf b/cloud/azure/inputs.tf index 969a51f..10a89d1 100644 --- a/cloud/azure/inputs.tf +++ b/cloud/azure/inputs.tf @@ -907,6 +907,12 @@ variable "redis_server_load_rate_threshold_warning" { } # Azure Service Bus specific variables +variable "servicebus_status_enabled" { + description = "Flag to enable Service Bus status monitor" + type = "string" + default = "true" +} + variable "servicebus_status_silenced" { description = "Groups to mute for Service Bus status monitor" type = "map" @@ -930,6 +936,12 @@ variable "servicebus_status_timeframe" { default = "last_5m" } +variable "servicebus_no_active_connections_enabled" { + description = "Flag to enable Service Bus status monitor" + type = "string" + default = "true" +} + variable "servicebus_no_active_connections_silenced" { description = "Groups to mute for Service Bus status monitor" type = "map" @@ -960,6 +972,12 @@ variable "servicebus_server_errors_message" { default = "" } +variable "servicebus_server_errors_enabled" { + description = "Flag to enable Service Bus server errors monitor" + type = "string" + default = "true" +} + variable "servicebus_server_errors_silenced" { description = "Groups to mute for Service Bus server errors monitor" type = "map" @@ -988,6 +1006,12 @@ variable "servicebus_user_errors_message" { default = "" } +variable "servicebus_user_errors_enabled" { + description = "Flag to enable Service Bus user errors monitor" + type = "string" + default = "true" +} + variable "servicebus_user_errors_silenced" { description = "Groups to mute for Service Bus user errors monitor" type = "map" @@ -1599,6 +1623,12 @@ variable "streamanalytics_runtime_errors_threshold_critical" { } # Azure CosmosDB specific variables +variable "cosmos_db_status_enabled" { + description = "Flag to enable Cosmos DB status monitor" + type = "string" + default = "true" +} + variable "cosmos_db_status_silenced" { description = "Groups to mute for Cosmos DB status monitor" type = "map" @@ -1635,6 +1665,12 @@ variable "cosmos_db_4xx_requests_message" { default = "" } +variable "cosmos_db_4xx_requests_enabled" { + description = "Flag to enable Cosmos DB 4xx requests monitor" + type = "string" + default = "true" +} + variable "cosmos_db_4xx_requests_silenced" { description = "Groups to mute for Cosmos DB 4xx requests monitor" type = "map" @@ -1675,6 +1711,12 @@ variable "cosmos_db_5xx_requests_message" { default = "" } +variable "cosmos_db_5xx_requests_enabled" { + description = "Flag to enable Cosmos DB 5xx requests monitor" + type = "string" + default = "true" +} + variable "cosmos_db_5xx_requests_silenced" { description = "Groups to mute for Cosmos DB 5xx requests monitor" type = "map" @@ -1715,6 +1757,12 @@ variable "cosmos_db_no_request_message" { default = "" } +variable "cosmos_db_no_request_enabled" { + description = "Flag to enable Cosmos DB no request monitor" + type = "string" + default = "true" +} + variable "cosmos_db_no_request_silenced" { description = "Groups to mute for Cosmos DB no request monitor" type = "map" @@ -1745,6 +1793,12 @@ variable "cosmos_db_ru_utilization_message" { default = "" } +variable "cosmos_db_ru_utilization_enabled" { + description = "Flag to enable Cosmos DB collection RU utilization monitor" + type = "string" + default = "true" +} + variable "cosmos_db_ru_utilization_silenced" { description = "Groups to mute for Cosmos DB collection RU utilization monitor" type = "map" @@ -1785,6 +1839,12 @@ variable "cosmos_db_ru_utilization_collections" { } # Azure Datalake Store specific variables +variable "datalakestore_status_enabled" { + description = "Flag to enable Datalake Store status monitor" + type = "string" + default = "true" +} + variable "datalakestore_status_silenced" { description = "Groups to mute for Datalake Store status monitor" type = "map" @@ -1814,6 +1874,12 @@ variable "datalakestore_status_extra_tags" { default = [] } +variable "keyvault_status_enabled" { + description = "Flag to enable Key Vault status monitor" + type = "string" + default = "true" +} + variable "keyvault_status_silenced" { description = "Groups to mute for Key Vault status monitor" type = "map" @@ -1843,6 +1909,12 @@ variable "keyvault_status_extra_tags" { default = [] } +variable "keyvault_api_result_enabled" { + description = "Flag to enable Key Vault API result monitor" + type = "string" + default = "true" +} + variable "keyvault_api_result_silenced" { description = "Groups to mute for Key Vault API result monitor" type = "map" @@ -1882,6 +1954,12 @@ variable "keyvault_api_result_extra_tags" { default = [] } +variable "keyvault_api_latency_enabled" { + description = "Flag to enable Key Vault API latency monitor" + type = "string" + default = "true" +} + variable "keyvault_api_latency_silenced" { description = "Groups to mute for Key Vault API latency monitor" type = "map" diff --git a/cloud/azure/keyvault/inputs.tf b/cloud/azure/keyvault/inputs.tf index 1e31cec..fa03318 100644 --- a/cloud/azure/keyvault/inputs.tf +++ b/cloud/azure/keyvault/inputs.tf @@ -28,6 +28,12 @@ variable "new_host_delay" { } # Azure Key Vault specific variables +variable "status_enabled" { + description = "Flag to enable Key Vault status monitor" + type = "string" + default = "true" +} + variable "status_silenced" { description = "Groups to mute for Key Vault status monitor" type = "map" @@ -57,6 +63,12 @@ variable "status_extra_tags" { default = [] } +variable "api_result_enabled" { + description = "Flag to enable Key Vault API result monitor" + type = "string" + default = "true" +} + variable "api_result_silenced" { description = "Groups to mute for Key Vault API result monitor" type = "map" @@ -96,6 +108,12 @@ variable "api_result_extra_tags" { default = [] } +variable "api_latency_enabled" { + description = "Flag to enable Key Vault API latency monitor" + type = "string" + default = "true" +} + variable "api_latency_silenced" { description = "Groups to mute for Key Vault API latency monitor" type = "map" diff --git a/cloud/azure/keyvault/monitors-keyvault.tf b/cloud/azure/keyvault/monitors-keyvault.tf index 9f5703d..4cf7d33 100644 --- a/cloud/azure/keyvault/monitors-keyvault.tf +++ b/cloud/azure/keyvault/monitors-keyvault.tf @@ -1,4 +1,6 @@ resource "datadog_monitor" "keyvault_status" { + count = "${var.status_enabled ? 1 : 0}" + name = "[${var.environment}] Key Vault is down" message = "${coalesce(var.status_message, var.message)}" @@ -26,6 +28,8 @@ resource "datadog_monitor" "keyvault_status" { } resource "datadog_monitor" "keyvault_api_result" { + count = "${var.api_result_enabled ? 1 : 0}" + name = "[${var.environment}] Key Vault API result rate is low {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.status_message, var.message)}" @@ -59,6 +63,8 @@ resource "datadog_monitor" "keyvault_api_result" { } resource "datadog_monitor" "keyvault_api_latency" { + count = "${var.api_latency_enabled ? 1 : 0}" + name = "[${var.environment}] Key Vault API latency is high {{#is_alert}}{{{comparator}}} {{threshold}}ms ({{value}}ms){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}ms ({{value}}ms){{/is_warning}}" message = "${coalesce(var.status_message, var.message)}" diff --git a/cloud/azure/monitors.tf b/cloud/azure/monitors.tf index a495dc8..b5559de 100644 --- a/cloud/azure/monitors.tf +++ b/cloud/azure/monitors.tf @@ -398,12 +398,14 @@ module "cosmosdb" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" + status_enabled = "${var.cosmos_db_status_enabled}" status_message = "${var.cosmos_db_status_message}" status_silenced = "${var.cosmos_db_status_silenced}" status_extra_tags = "${var.cosmos_db_status_extra_tags}" status_time_aggregator = "${var.cosmos_db_status_time_aggregator}" status_timeframe = "${var.cosmos_db_status_timeframe}" + cosmos_db_4xx_requests_enabled = "${var.cosmos_db_4xx_requests_enabled}" cosmos_db_4xx_request_rate_threshold_critical = "${var.cosmos_db_4xx_request_rate_threshold_critical}" cosmos_db_4xx_request_rate_threshold_warning = "${var.cosmos_db_4xx_request_rate_threshold_warning}" cosmos_db_4xx_requests_message = "${var.cosmos_db_4xx_requests_message}" @@ -412,6 +414,7 @@ module "cosmosdb" { cosmos_db_4xx_request_time_aggregator = "${var.cosmos_db_4xx_request_time_aggregator}" cosmos_db_4xx_request_timeframe = "${var.cosmos_db_4xx_request_timeframe}" + cosmos_db_5xx_requests_enabled = "${var.cosmos_db_5xx_requests_enabled}" cosmos_db_5xx_request_rate_threshold_critical = "${var.cosmos_db_5xx_request_rate_threshold_critical}" cosmos_db_5xx_request_rate_threshold_warning = "${var.cosmos_db_5xx_request_rate_threshold_warning}" cosmos_db_5xx_requests_message = "${var.cosmos_db_5xx_requests_message}" @@ -420,12 +423,14 @@ module "cosmosdb" { cosmos_db_5xx_request_time_aggregator = "${var.cosmos_db_5xx_request_time_aggregator}" cosmos_db_5xx_request_timeframe = "${var.cosmos_db_5xx_request_timeframe}" + cosmos_db_no_request_enabled = "${var.cosmos_db_no_request_enabled}" cosmos_db_no_request_message = "${var.cosmos_db_no_request_message}" cosmos_db_no_request_silenced = "${var.cosmos_db_no_request_silenced}" cosmos_db_no_request_extra_tags = "${var.cosmos_db_no_request_extra_tags}" cosmos_db_no_request_time_aggregator = "${var.cosmos_db_no_request_time_aggregator}" cosmos_db_no_request_timeframe = "${var.cosmos_db_no_request_timeframe}" + cosmos_db_ru_utilization_enabled = "${var.cosmos_db_ru_utilization_enabled}" cosmos_db_ru_utilization_rate_threshold_critical = "${var.cosmos_db_ru_utilization_rate_threshold_critical}" cosmos_db_ru_utilization_rate_threshold_warning = "${var.cosmos_db_ru_utilization_rate_threshold_warning}" cosmos_db_ru_utilization_message = "${var.cosmos_db_ru_utilization_message}" @@ -447,6 +452,7 @@ module "datalakestore" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" + status_enabled = "${var.datalakestore_status_enabled}" status_silenced = "${var.datalakestore_status_silenced}" status_message = "${var.datalakestore_status_message}" status_timeframe = "${var.datalakestore_status_timeframe}" @@ -465,6 +471,7 @@ module "keyvault" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" + status_enabled = "${var.keyvault_status_enabled}" status_silenced = "${var.keyvault_status_silenced}" status_message = "${var.keyvault_status_message}" status_timeframe = "${var.keyvault_status_timeframe}" @@ -480,6 +487,7 @@ module "keyvault" { api_result_threshold_warning = "${var.keyvault_api_result_threshold_warning}" api_result_extra_tags = "${var.keyvault_api_result_extra_tags}" + api_latency_enabled = "${var.keyvault_api_latency_enabled}" api_latency_silenced = "${var.keyvault_api_latency_silenced}" api_latency_message = "${var.keyvault_api_latency_message}" api_latency_timeframe = "${var.keyvault_api_latency_timeframe}" diff --git a/cloud/azure/servicebus/inputs.tf b/cloud/azure/servicebus/inputs.tf index 8d6a454..eccabf5 100644 --- a/cloud/azure/servicebus/inputs.tf +++ b/cloud/azure/servicebus/inputs.tf @@ -30,6 +30,12 @@ variable "filter_tags_custom" { } # Azure Service Bus specific variables +variable "status_enabled" { + description = "Flag to enable Service Bus status monitor" + type = "string" + default = "true" +} + variable "status_silenced" { description = "Groups to mute for Service Bus status monitor" type = "map" @@ -59,6 +65,12 @@ variable "status_timeframe" { default = "last_5m" } +variable "no_active_connections_enabled" { + description = "Flag to enable Service Bus status monitor" + type = "string" + default = "true" +} + variable "no_active_connections_silenced" { description = "Groups to mute for Service Bus status monitor" type = "map" @@ -89,6 +101,12 @@ variable "server_errors_message" { default = "" } +variable "server_errors_enabled" { + description = "Flag to enable Service Bus server errors monitor" + type = "string" + default = "true" +} + variable "server_errors_silenced" { description = "Groups to mute for Service Bus server errors monitor" type = "map" @@ -117,6 +135,12 @@ variable "user_errors_message" { default = "" } +variable "user_errors_enabled" { + description = "Flag to enable Service Bus user errors monitor" + type = "string" + default = "true" +} + variable "user_errors_silenced" { description = "Groups to mute for Service Bus user errors monitor" type = "map" diff --git a/cloud/azure/servicebus/monitors-service-bus.tf b/cloud/azure/servicebus/monitors-service-bus.tf index 0a17b93..2e953d0 100644 --- a/cloud/azure/servicebus/monitors-service-bus.tf +++ b/cloud/azure/servicebus/monitors-service-bus.tf @@ -1,4 +1,6 @@ resource "datadog_monitor" "servicebus_status" { + count = "${var.status_enabled ? 1 : 0}" + name = "[${var.environment}] Service Bus is down" message = "${coalesce(var.status_message, var.message)}" @@ -26,6 +28,8 @@ EOF } resource "datadog_monitor" "service_bus_no_active_connections" { + count = "${var.no_active_connections_enabled ? 1 : 0}" + name = "[${var.environment}] Service Bus has no active connection" message = "${coalesce(var.no_active_connections_message, var.message)}" @@ -53,6 +57,8 @@ resource "datadog_monitor" "service_bus_no_active_connections" { } resource "datadog_monitor" "service_bus_user_errors" { + count = "${var.user_errors_enabled ? 1 : 0}" + name = "[${var.environment}] Service Bus user errors rate is high {{#is_alert}}{{comparator}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{comparator}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.user_errors_message, var.message)}" @@ -87,6 +93,8 @@ resource "datadog_monitor" "service_bus_user_errors" { } resource "datadog_monitor" "service_bus_server_errors" { + count = "${var.server_errors_enabled ? 1 : 0}" + name = "[${var.environment}] Service Bus server errors rate is high {{#is_alert}}{{comparator}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{comparator}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.server_errors_message, var.message)}"