From 582d884a6eef0dcf9b118486e693b793c8d29504 Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Tue, 23 Apr 2019 20:34:17 +0200 Subject: [PATCH] MON-236 add optional name prefix feature --- caas/kubernetes/ark/README.md | 1 + caas/kubernetes/ark/inputs.tf | 5 +++ caas/kubernetes/ark/monitors-ark.tf | 2 +- caas/kubernetes/cluster/README.md | 1 + caas/kubernetes/cluster/inputs.tf | 5 +++ .../cluster/monitors-k8s-cluster.tf | 2 +- caas/kubernetes/ingress/vts/README.md | 1 + caas/kubernetes/ingress/vts/inputs.tf | 5 +++ .../ingress/vts/monitors-ingress.tf | 4 +- caas/kubernetes/node/README.md | 1 + caas/kubernetes/node/inputs.tf | 5 +++ caas/kubernetes/node/monitors-k8s-node.tf | 16 +++---- caas/kubernetes/pod/README.md | 1 + caas/kubernetes/pod/inputs.tf | 5 +++ caas/kubernetes/pod/monitors-k8s-pod.tf | 6 +-- caas/kubernetes/workload/README.md | 1 + caas/kubernetes/workload/inputs.tf | 5 +++ .../workload/monitors-k8s-workload.tf | 10 ++--- cloud/aws/alb/README.md | 1 + cloud/aws/alb/inputs.tf | 5 +++ cloud/aws/alb/monitors-alb.tf | 12 ++--- cloud/aws/apigateway/README.md | 1 + cloud/aws/apigateway/inputs.tf | 5 +++ cloud/aws/apigateway/monitors-api.tf | 6 +-- cloud/aws/elasticache/common/README.md | 1 + cloud/aws/elasticache/common/inputs.tf | 5 +++ .../common/monitors-elasticache.tf | 12 ++--- cloud/aws/elasticache/memcached/README.md | 1 + cloud/aws/elasticache/memcached/inputs.tf | 5 +++ .../memcached/monitors-memcached.tf | 4 +- cloud/aws/elasticache/redis/README.md | 1 + cloud/aws/elasticache/redis/inputs.tf | 5 +++ cloud/aws/elasticache/redis/monitors-redis.tf | 8 ++-- cloud/aws/elasticsearch/README.md | 1 + cloud/aws/elasticsearch/inputs.tf | 5 +++ .../elasticsearch/monitors-elasticsearch.tf | 6 +-- cloud/aws/elb/README.md | 1 + cloud/aws/elb/inputs.tf | 5 +++ cloud/aws/elb/monitors-elb.tf | 12 ++--- cloud/aws/kinesis-firehose/README.md | 1 + cloud/aws/kinesis-firehose/inputs.tf | 5 +++ .../monitors-kinesis-firehose.tf | 2 +- cloud/aws/rds/aurora/mysql/README.md | 1 + cloud/aws/rds/aurora/mysql/inputs.tf | 5 +++ .../aurora/mysql/monitors-rds-aurora-mysql.tf | 2 +- cloud/aws/rds/aurora/postgresql/README.md | 1 + cloud/aws/rds/aurora/postgresql/inputs.tf | 5 +++ .../monitors-rds-aurora-postgresql.tf | 2 +- cloud/aws/rds/common/README.md | 1 + cloud/aws/rds/common/inputs.tf | 5 +++ cloud/aws/rds/common/monitors-rds-common.tf | 6 +-- cloud/aws/vpn/README.md | 1 + cloud/aws/vpn/inputs.tf | 5 +++ cloud/aws/vpn/monitors-vpn.tf | 2 +- cloud/azure/apimanagement/README.md | 1 + cloud/azure/apimanagement/inputs.tf | 5 +++ .../monitors-azure-apimanagement.tf | 10 ++--- cloud/azure/app-services/README.md | 1 + cloud/azure/app-services/inputs.tf | 5 +++ .../app-services/monitors-app_services.tf | 10 ++--- cloud/azure/azure-search/README.md | 1 + cloud/azure/azure-search/inputs.tf | 5 +++ .../azure-search/monitors-azure-search.tf | 4 +- cloud/azure/cosmosdb/README.md | 1 + cloud/azure/cosmosdb/inputs.tf | 5 +++ cloud/azure/cosmosdb/monitors-cosmosdb.tf | 8 ++-- cloud/azure/datalakestore/README.md | 1 + cloud/azure/datalakestore/inputs.tf | 5 +++ .../datalakestore/monitors-datalakestore.tf | 2 +- cloud/azure/eventgrid/README.md | 1 + cloud/azure/eventgrid/inputs.tf | 5 +++ cloud/azure/eventgrid/monitors-eventgrid.tf | 6 +-- cloud/azure/eventhub/README.md | 1 + cloud/azure/eventhub/inputs.tf | 5 +++ cloud/azure/eventhub/monitors-eventhub.tf | 6 +-- cloud/azure/functions/README.md | 1 + cloud/azure/functions/inputs.tf | 5 +++ cloud/azure/functions/monitors-functions.tf | 6 +-- cloud/azure/iothubs/README.md | 1 + cloud/azure/iothubs/inputs.tf | 5 +++ cloud/azure/iothubs/monitors-iothubs.tf | 28 ++++++------ cloud/azure/keyvault/README.md | 1 + cloud/azure/keyvault/inputs.tf | 5 +++ cloud/azure/keyvault/monitors-keyvault.tf | 6 +-- cloud/azure/load-balancer/README.md | 1 + cloud/azure/load-balancer/inputs.tf | 5 +++ .../load-balancer/monitors-load-balancer.tf | 2 +- cloud/azure/mysql/README.md | 1 + cloud/azure/mysql/inputs.tf | 5 +++ cloud/azure/mysql/monitors-mysql.tf | 8 ++-- cloud/azure/postgresql/README.md | 1 + cloud/azure/postgresql/inputs.tf | 5 +++ .../azure/postgresql/monitors-postegresql.tf | 10 ++--- cloud/azure/redis/README.md | 1 + cloud/azure/redis/inputs.tf | 5 +++ cloud/azure/redis/monitors-azure-redis.tf | 8 ++-- cloud/azure/serverfarms/README.md | 1 + cloud/azure/serverfarms/inputs.tf | 5 +++ .../serverfarms/monitors-azure-serverfarms.tf | 6 +-- cloud/azure/servicebus/README.md | 1 + cloud/azure/servicebus/inputs.tf | 5 +++ .../azure/servicebus/monitors-service-bus.tf | 8 ++-- cloud/azure/sql-database/README.md | 1 + cloud/azure/sql-database/inputs.tf | 5 +++ .../monitors-sql-database-basics.tf | 10 ++--- cloud/azure/storage/README.md | 1 + cloud/azure/storage/inputs.tf | 5 +++ cloud/azure/storage/monitors-azure-storage.tf | 18 ++++---- cloud/azure/stream-analytics/README.md | 1 + cloud/azure/stream-analytics/inputs.tf | 5 +++ .../monitors-stream-analytics.tf | 10 ++--- cloud/azure/virtual-machine/README.md | 1 + cloud/azure/virtual-machine/inputs.tf | 5 +++ .../monitors-virtual-machine.tf | 6 +-- cloud/gcp/big-query/README.md | 1 + cloud/gcp/big-query/inputs.tf | 5 +++ cloud/gcp/big-query/monitors-big-query.tf | 18 ++++---- cloud/gcp/cloud-sql/common/README.md | 1 + cloud/gcp/cloud-sql/common/inputs.tf | 5 +++ .../common/monitors-cloud-sql-common.tf | 12 ++--- cloud/gcp/cloud-sql/mysql/README.md | 1 + cloud/gcp/cloud-sql/mysql/inputs.tf | 5 +++ .../mysql/monitors-cloudsql-mysql.tf | 2 +- cloud/gcp/gce/instance/README.md | 1 + cloud/gcp/gce/instance/inputs.tf | 5 +++ .../gcp/gce/instance/monitors-gce-instance.tf | 6 +-- cloud/gcp/lb/README.md | 1 + cloud/gcp/lb/inputs.tf | 5 +++ cloud/gcp/lb/monitors-lb.tf | 10 ++--- cloud/gcp/pubsub/README.md | 1 + cloud/gcp/pubsub/inputs.tf | 5 +++ cloud/gcp/pubsub/monitors-pubsub.tf | 4 +- database/elasticsearch/README.md | 1 + database/elasticsearch/inputs.tf | 5 +++ .../elasticsearch/monitors-elasticsearch.tf | 44 +++++++++---------- database/mongodb/README.md | 1 + database/mongodb/inputs.tf | 5 +++ database/mongodb/monitors-mongo.tf | 8 ++-- database/mysql/README.md | 1 + database/mysql/inputs.tf | 5 +++ database/mysql/monitors-mysql.tf | 16 +++---- database/postgresql/README.md | 1 + database/postgresql/inputs.tf | 5 +++ database/postgresql/monitors-postgresql.tf | 6 +-- database/redis/README.md | 1 + database/redis/inputs.tf | 5 +++ database/redis/monitors-redis.tf | 20 ++++----- middleware/apache/README.md | 1 + middleware/apache/inputs.tf | 5 +++ middleware/apache/monitors-apache.tf | 2 +- middleware/nginx/README.md | 1 + middleware/nginx/inputs.tf | 5 +++ middleware/nginx/monitors-nginx.tf | 4 +- middleware/php-fpm/README.md | 1 + middleware/php-fpm/inputs.tf | 5 +++ middleware/php-fpm/monitors-fpm.tf | 4 +- scripts/utils.sh | 2 +- system/generic/README.md | 1 + system/generic/inputs.tf | 5 +++ system/generic/monitors-system.tf | 12 ++--- system/unreachable/README.md | 1 + system/unreachable/inputs.tf | 5 +++ system/unreachable/monitors-unreachable.tf | 2 +- 163 files changed, 553 insertions(+), 229 deletions(-) diff --git a/caas/kubernetes/ark/README.md b/caas/kubernetes/ark/README.md index de2486a..d7ec1d5 100644 --- a/caas/kubernetes/ark/README.md +++ b/caas/kubernetes/ark/README.md @@ -35,6 +35,7 @@ Creates DataDog monitors with the following checks: | filter\_tags\_use\_defaults | Use default filter tags convention | string | `"true"` | no | | message | Message sent when a monitor is triggered | string | n/a | yes | | new\_host\_delay | Delay in seconds before monitor new resource | string | `"300"` | no | +| prefix\_slug | Prefix string to prepend between brackets on every monitors names | string | `""` | no | ## Outputs diff --git a/caas/kubernetes/ark/inputs.tf b/caas/kubernetes/ark/inputs.tf index c3c0af8..e390964 100644 --- a/caas/kubernetes/ark/inputs.tf +++ b/caas/kubernetes/ark/inputs.tf @@ -33,6 +33,11 @@ variable "new_host_delay" { default = 300 } +variable "prefix_slug" { + description = "Prefix string to prepend between brackets on every monitors names" + default = "" +} + # Datadog monitors variables variable "ark_schedules_monitor_message" { diff --git a/caas/kubernetes/ark/monitors-ark.tf b/caas/kubernetes/ark/monitors-ark.tf index a0279f3..38f30bd 100644 --- a/caas/kubernetes/ark/monitors-ark.tf +++ b/caas/kubernetes/ark/monitors-ark.tf @@ -1,6 +1,6 @@ resource "datadog_monitor" "ark_schedules_monitor" { count = "${var.ark_schedules_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] Ark backup failed" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] Ark backup failed" type = "metric alert" message = "${coalesce(var.ark_schedules_monitor_message, var.message)}" diff --git a/caas/kubernetes/cluster/README.md b/caas/kubernetes/cluster/README.md index a095cdb..465dfca 100644 --- a/caas/kubernetes/cluster/README.md +++ b/caas/kubernetes/cluster/README.md @@ -34,6 +34,7 @@ Creates DataDog monitors with the following checks: | filter\_tags\_use\_defaults | Use default filter tags convention | string | `"true"` | no | | message | Message sent when a monitor is triggered | string | n/a | yes | | new\_host\_delay | Delay in seconds before monitor new resource | string | `"300"` | no | +| prefix\_slug | Prefix string to prepend between brackets on every monitors names | string | `""` | no | ## Outputs diff --git a/caas/kubernetes/cluster/inputs.tf b/caas/kubernetes/cluster/inputs.tf index 82bc78d..ee2e84e 100644 --- a/caas/kubernetes/cluster/inputs.tf +++ b/caas/kubernetes/cluster/inputs.tf @@ -33,6 +33,11 @@ variable "new_host_delay" { default = 300 } +variable "prefix_slug" { + description = "Prefix string to prepend between brackets on every monitors names" + default = "" +} + # Datadog monitors variables variable "apiserver_silenced" { diff --git a/caas/kubernetes/cluster/monitors-k8s-cluster.tf b/caas/kubernetes/cluster/monitors-k8s-cluster.tf index 4450a86..6f8a55c 100644 --- a/caas/kubernetes/cluster/monitors-k8s-cluster.tf +++ b/caas/kubernetes/cluster/monitors-k8s-cluster.tf @@ -1,6 +1,6 @@ resource "datadog_monitor" "apiserver" { count = "${var.apiserver_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] Kubernetes API server does not respond" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] Kubernetes API server does not respond" message = "${coalesce(var.apiserver_message, var.message)}" type = "service check" diff --git a/caas/kubernetes/ingress/vts/README.md b/caas/kubernetes/ingress/vts/README.md index 5dd91a4..65ac6fa 100644 --- a/caas/kubernetes/ingress/vts/README.md +++ b/caas/kubernetes/ingress/vts/README.md @@ -47,6 +47,7 @@ Creates DataDog monitors with the following checks: | ingress\_5xx\_timeframe | Monitor timeframe for Ingress 5xx errors [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 | n/a | yes | | new\_host\_delay | Delay in seconds before monitor new resource | string | `"300"` | no | +| prefix\_slug | Prefix string to prepend between brackets on every monitors names | string | `""` | no | ## Outputs diff --git a/caas/kubernetes/ingress/vts/inputs.tf b/caas/kubernetes/ingress/vts/inputs.tf index b6652ce..f3de8ba 100644 --- a/caas/kubernetes/ingress/vts/inputs.tf +++ b/caas/kubernetes/ingress/vts/inputs.tf @@ -15,6 +15,11 @@ variable "new_host_delay" { default = 300 } +variable "prefix_slug" { + description = "Prefix string to prepend between brackets on every monitors names" + default = "" +} + variable "message" { description = "Message sent when an alert is triggered" } diff --git a/caas/kubernetes/ingress/vts/monitors-ingress.tf b/caas/kubernetes/ingress/vts/monitors-ingress.tf index e170360..b5d944b 100644 --- a/caas/kubernetes/ingress/vts/monitors-ingress.tf +++ b/caas/kubernetes/ingress/vts/monitors-ingress.tf @@ -1,6 +1,6 @@ resource "datadog_monitor" "nginx_ingress_too_many_5xx" { count = "${var.ingress_5xx_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] Nginx Ingress 5xx errors {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] Nginx Ingress 5xx errors {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.ingress_5xx_message, var.message)}" query = <=". No alert was triggered without that. */ resource "datadog_monitor" "es_cluster_status" { count = "${var.es_cluster_status_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] ElasticSearch cluster status is not green" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] ElasticSearch cluster status is not green" message = "${coalesce(var.es_cluster_status_message, var.message)}" type = "metric alert" @@ -40,7 +40,7 @@ resource "datadog_monitor" "es_cluster_status" { ### Elasticsearch cluster free storage space monitor ### resource "datadog_monitor" "es_free_space_low" { count = "${var.diskspace_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] ElasticSearch cluster free storage space {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] ElasticSearch cluster free storage space {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.diskspace_message, var.message)}" type = "metric alert" @@ -75,7 +75,7 @@ resource "datadog_monitor" "es_free_space_low" { ### Elasticsearch cluster CPU monitor ### resource "datadog_monitor" "es_cpu_90_15min" { count = "${var.cpu_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] ElasticSearch cluster CPU high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] ElasticSearch cluster CPU high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.cpu_message, var.message)}" type = "metric alert" diff --git a/cloud/aws/elb/README.md b/cloud/aws/elb/README.md index 6774b3d..eba6782 100644 --- a/cloud/aws/elb/README.md +++ b/cloud/aws/elb/README.md @@ -77,6 +77,7 @@ Creates DataDog monitors with the following checks: | filter\_tags\_use\_defaults | Use default filter tags convention | string | `"true"` | no | | message | Message sent when an alert is triggered | string | n/a | yes | | new\_host\_delay | Delay in seconds before monitor new resource | string | `"300"` | no | +| prefix\_slug | Prefix string to prepend between brackets on every monitors names | string | `""` | no | ## Outputs diff --git a/cloud/aws/elb/inputs.tf b/cloud/aws/elb/inputs.tf index 5b8a181..6efb0cf 100644 --- a/cloud/aws/elb/inputs.tf +++ b/cloud/aws/elb/inputs.tf @@ -15,6 +15,11 @@ variable "new_host_delay" { default = 300 } +variable "prefix_slug" { + description = "Prefix string to prepend between brackets on every monitors names" + default = "" +} + variable "message" { description = "Message sent when an alert is triggered" } diff --git a/cloud/aws/elb/monitors-elb.tf b/cloud/aws/elb/monitors-elb.tf index 0b84d42..119dbc1 100644 --- a/cloud/aws/elb/monitors-elb.tf +++ b/cloud/aws/elb/monitors-elb.tf @@ -1,6 +1,6 @@ resource "datadog_monitor" "ELB_no_healthy_instances" { count = "${var.elb_no_healthy_instance_enabled == "true" ? 1 : 0}" - name = "[${var.environment}] ELB healthy instances {{#is_alert}}is at 0{{/is_alert}}{{#is_warning}}is at {{value}}%{{/is_warning}}" + name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] ELB healthy instances {{#is_alert}}is at 0{{/is_alert}}{{#is_warning}}is at {{value}}%{{/is_warning}}" message = "${coalesce(var.elb_no_healthy_instance_message, var.message)}" query = <