From b611b4b5aa9b0356a0e6e3989488f499c81a7bee Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 13:17:22 +0200 Subject: [PATCH 1/7] MON-486 add requirements check script --- README.md | 4 ++-- scripts/00_requirements.sh | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) create mode 100755 scripts/00_requirements.sh diff --git a/README.md b/README.md index 3a2515e..a53577c 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,11 @@ After any change on this repo, you need to run the `./scripts/auto_update.sh ./` ### Terraform ### -Version >= 0.12 is required to use these modules of monitors. +Here is the minimum version required to use these modules of integrations. ``` terraform { - required_version = "~> 0.12" + required_version = ">= 0.12.6" } ``` diff --git a/scripts/00_requirements.sh b/scripts/00_requirements.sh new file mode 100755 index 0000000..9889c2d --- /dev/null +++ b/scripts/00_requirements.sh @@ -0,0 +1,48 @@ +#!/bin/bash +set -u + +source "$(dirname $0)/utils.sh" +goto_root + +function check_command() { + local cmd="$1" + if ! command -v ${cmd} > /dev/null 2>&1; then + echo "This requires ${cmd} command, please install it first." + exit 1 + fi +} + +function verlte() { + [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] +} + +function verlt() { + [ "$1" = "$2" ] && return 1 || verlte $1 $2 +} + +function check_version() { + if [[ "$1" == "terraform" ]]; then + tmp_dir=$(mktemp -d) + cd ${tmp_dir} + cur_ver=$(terraform version | head -n 1 | cut -d' ' -f2) + cur_ver=${cur_ver#"v"} + cd - > /dev/null + rm -fr ${tmp_dir} + req_ver=$(grep required_version README.md | awk '{print $4}') + req_ver=${req_ver%'"'} + elif [[ "$1" == "terraform-docs" ]]; then + req_ver="0.6.0" + cur_ver=$(terraform-docs --version) + else + return + fi + if ! verlte $req_ver $cur_ver; then + echo "This requires at least version ${req_ver} of $1, please upgrade (current version is ${cur_ver})" + exit 2 + fi +} + +for cmd in terraform terraform-docs; do + check_command $cmd + check_version $cmd +done From 85854e5baf2d0cb5b1c096ecadf65d9e059c5c66 Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 13:18:08 +0200 Subject: [PATCH 2/7] MON-485 switch to claranet dockerhub --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b130656..5c7ac09 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ stages: - deploy auto_update: - image: qmanfroi/datadog-terraform:latest + image: claranet/datadog-terraform:latest stage: test script: - ./scripts/auto_update.sh ./ From c16e807c1a6fbe1d321fb5c27fc7ac5018a6ad2d Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 13:20:30 +0200 Subject: [PATCH 3/7] MON-486 remove workaround for here doc bug with fmt --- scripts/99_terraform.sh | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/scripts/99_terraform.sh b/scripts/99_terraform.sh index 786abf7..1eee47e 100755 --- a/scripts/99_terraform.sh +++ b/scripts/99_terraform.sh @@ -4,7 +4,7 @@ set -xueo pipefail source "$(dirname $0)/utils.sh" goto_root -for path in $(find "$(get_scope $1)" -name 'inputs.tf' -print); do +for path in $(find "$(get_scope $1)" -name 'inputs.tf' -print); do dir=$(dirname ${path}) cat < ${dir}/tmp.tf provider "datadog" { @@ -31,11 +31,7 @@ EOF terraform init ${dir} terraform validate ${dir} rm -f ${dir}/tmp.tf - # hack to work around bug https://github.com/hashicorp/terraform/issues/21434 - # TODO when fixed, remove this bloc and add "terraform fmt -recursive" to the end of this file - for file in $(grep ' = < Date: Thu, 1 Aug 2019 13:24:57 +0200 Subject: [PATCH 4/7] MON-486 run auto update with new fmt fix in 0.12.6 --- caas/kubernetes/node/monitors-k8s-node.tf | 8 +- .../workload/monitors-k8s-workload.tf | 4 +- cloud/aws/alb/monitors-alb.tf | 4 +- cloud/aws/apigateway/monitors-api.tf | 2 +- .../common/monitors-elasticache.tf | 4 +- cloud/aws/elasticache/redis/monitors-redis.tf | 4 +- .../elasticsearch/monitors-elasticsearch.tf | 2 +- cloud/aws/elb/monitors-elb.tf | 4 +- cloud/aws/rds/common/monitors-rds-common.tf | 2 +- .../monitors-azure-apimanagement.tf | 4 +- .../app-services/monitors-app_services.tf | 4 +- cloud/azure/cosmosdb/monitors-cosmosdb.tf | 4 +- cloud/azure/eventgrid/monitors-eventgrid.tf | 2 +- cloud/azure/eventhub/monitors-eventhub.tf | 2 +- cloud/azure/functions/monitors-functions.tf | 2 +- cloud/azure/iothubs/monitors-iothubs.tf | 12 +-- cloud/azure/keyvault/monitors-keyvault.tf | 2 +- cloud/azure/mysql/monitors-mysql.tf | 4 +- .../azure/postgresql/monitors-postegresql.tf | 4 +- cloud/azure/redis/monitors-azure-redis.tf | 4 +- .../serverfarms/monitors-azure-serverfarms.tf | 2 +- .../azure/servicebus/monitors-service-bus.tf | 4 +- .../sql-database/monitors-sql-database.tf | 4 +- .../monitors-sql-elasticpool.tf | 2 +- cloud/azure/storage/monitors-azure-storage.tf | 4 +- .../monitors-stream-analytics.tf | 4 +- .../monitors-virtual-machine.tf | 2 +- cloud/gcp/big-query/monitors-big-query.tf | 8 +- .../common/monitors-cloud-sql-common.tf | 96 +++++++++---------- .../gcp/gce/instance/monitors-gce-instance.tf | 2 +- cloud/gcp/lb/monitors-lb.tf | 4 +- .../elasticsearch/monitors-elasticsearch.tf | 20 ++-- database/mongodb/monitors-mongo.tf | 6 +- database/mysql/monitors-mysql.tf | 8 +- database/postgresql/monitors-postgresql.tf | 2 +- database/redis/monitors-redis.tf | 8 +- system/generic/monitors-system.tf | 50 +++++----- 37 files changed, 152 insertions(+), 152 deletions(-) diff --git a/caas/kubernetes/node/monitors-k8s-node.tf b/caas/kubernetes/node/monitors-k8s-node.tf index 16f1f19..a7da3a3 100644 --- a/caas/kubernetes/node/monitors-k8s-node.tf +++ b/caas/kubernetes/node/monitors-k8s-node.tf @@ -66,7 +66,7 @@ resource "datadog_monitor" "memory_pressure" { message = coalesce(var.memory_pressure_message, var.message) type = "service check" -query = < ${var.unregister_net_device_threshold_critical} EOQ @@ -215,7 +215,7 @@ resource "datadog_monitor" "node_unschedulable" { message = coalesce(var.node_unschedulable_message, var.message) type = "metric alert" -query = < 0 diff --git a/caas/kubernetes/workload/monitors-k8s-workload.tf b/caas/kubernetes/workload/monitors-k8s-workload.tf index 326722d..d7e0509 100644 --- a/caas/kubernetes/workload/monitors-k8s-workload.tf +++ b/caas/kubernetes/workload/monitors-k8s-workload.tf @@ -66,7 +66,7 @@ resource "datadog_monitor" "replica_available" { message = coalesce(var.replica_available_message, var.message) type = "query alert" -query = < ${var.swap_threshold_critical} diff --git a/cloud/aws/elasticache/redis/monitors-redis.tf b/cloud/aws/elasticache/redis/monitors-redis.tf index 7d5b170..39f18ce 100644 --- a/cloud/aws/elasticache/redis/monitors-redis.tf +++ b/cloud/aws/elasticache/redis/monitors-redis.tf @@ -69,7 +69,7 @@ resource "datadog_monitor" "redis_replication_lag" { message = coalesce(var.replication_lag_message, var.message) type = "query alert" -query = < ${var.replication_lag_threshold_critical} @@ -103,7 +103,7 @@ resource "datadog_monitor" "redis_commands" { message = coalesce(var.commands_message, var.message) type = "query alert" -query = < ${var.cpu_threshold_critical} diff --git a/cloud/aws/elb/monitors-elb.tf b/cloud/aws/elb/monitors-elb.tf index 9b82f7a..33bafe2 100644 --- a/cloud/aws/elb/monitors-elb.tf +++ b/cloud/aws/elb/monitors-elb.tf @@ -75,7 +75,7 @@ resource "datadog_monitor" "ELB_too_much_5xx" { message = coalesce(var.elb_5xx_message, var.message) type = "query alert" -query = < ${var.replicalag_threshold_critical} diff --git a/cloud/azure/apimanagement/monitors-azure-apimanagement.tf b/cloud/azure/apimanagement/monitors-azure-apimanagement.tf index 9a9829e..f283d31 100644 --- a/cloud/azure/apimanagement/monitors-azure-apimanagement.tf +++ b/cloud/azure/apimanagement/monitors-azure-apimanagement.tf @@ -70,7 +70,7 @@ resource "datadog_monitor" "apimgt_other_requests" { message = coalesce(var.other_requests_message, var.message) type = "query alert" -query = < ${var.high_threads_count_threshold_critical} diff --git a/cloud/azure/iothubs/monitors-iothubs.tf b/cloud/azure/iothubs/monitors-iothubs.tf index 0f4e251..2dcb1a0 100644 --- a/cloud/azure/iothubs/monitors-iothubs.tf +++ b/cloud/azure/iothubs/monitors-iothubs.tf @@ -78,7 +78,7 @@ resource "datadog_monitor" "too_many_query_jobs_failed" { message = coalesce(var.failed_queryjobs_rate_message, var.message) type = "query alert" -query = < ${var.api_latency_threshold_critical} diff --git a/cloud/azure/mysql/monitors-mysql.tf b/cloud/azure/mysql/monitors-mysql.tf index cbde937..189f834 100644 --- a/cloud/azure/mysql/monitors-mysql.tf +++ b/cloud/azure/mysql/monitors-mysql.tf @@ -72,7 +72,7 @@ resource "datadog_monitor" "mysql_io_consumption" { message = coalesce(var.io_consumption_message, var.message) type = "query alert" -query = < ${var.io_consumption_threshold_critical} @@ -106,7 +106,7 @@ resource "datadog_monitor" "mysql_memory_usage" { message = coalesce(var.memory_usage_message, var.message) type = "query alert" -query = < ${var.memory_usage_threshold_critical} diff --git a/cloud/azure/postgresql/monitors-postegresql.tf b/cloud/azure/postgresql/monitors-postegresql.tf index dd9ef50..59f3597 100644 --- a/cloud/azure/postgresql/monitors-postegresql.tf +++ b/cloud/azure/postgresql/monitors-postegresql.tf @@ -67,7 +67,7 @@ resource "datadog_monitor" "postgresql_free_storage" { message = coalesce(var.free_storage_message, var.message) type = "query alert" -query = < ${var.io_consumption_threshold_critical} diff --git a/cloud/azure/redis/monitors-azure-redis.tf b/cloud/azure/redis/monitors-azure-redis.tf index 8916549..66ab051 100644 --- a/cloud/azure/redis/monitors-azure-redis.tf +++ b/cloud/azure/redis/monitors-azure-redis.tf @@ -67,7 +67,7 @@ resource "datadog_monitor" "percent_processor_time" { message = coalesce(var.percent_processor_time_message, var.message) type = "query alert" -query = < ${var.percent_processor_time_threshold_critical} @@ -101,7 +101,7 @@ resource "datadog_monitor" "server_load" { message = coalesce(var.server_load_rate_message, var.message) type = "query alert" -query = < ${var.server_load_rate_threshold_critical} diff --git a/cloud/azure/serverfarms/monitors-azure-serverfarms.tf b/cloud/azure/serverfarms/monitors-azure-serverfarms.tf index 01ac7a8..811ba99 100644 --- a/cloud/azure/serverfarms/monitors-azure-serverfarms.tf +++ b/cloud/azure/serverfarms/monitors-azure-serverfarms.tf @@ -67,7 +67,7 @@ resource "datadog_monitor" "memory_percentage" { message = coalesce(var.memory_percentage_message, var.message) type = "query alert" -query = < ${var.memory_percentage_threshold_critical} diff --git a/cloud/azure/servicebus/monitors-service-bus.tf b/cloud/azure/servicebus/monitors-service-bus.tf index 2185dbd..682af32 100644 --- a/cloud/azure/servicebus/monitors-service-bus.tf +++ b/cloud/azure/servicebus/monitors-service-bus.tf @@ -62,7 +62,7 @@ resource "datadog_monitor" "service_bus_user_errors" { message = coalesce(var.user_errors_message, var.message) type = "query alert" -query = < ${var.diskspace_threshold_critical} @@ -101,7 +101,7 @@ resource "datadog_monitor" "sql-database_dtu_consumption_high" { message = coalesce(var.dtu_message, var.message) type = "query alert" -query = < ${var.dtu_threshold_critical} diff --git a/cloud/azure/sql-elasticpool/monitors-sql-elasticpool.tf b/cloud/azure/sql-elasticpool/monitors-sql-elasticpool.tf index 57cd58e..cdb565a 100644 --- a/cloud/azure/sql-elasticpool/monitors-sql-elasticpool.tf +++ b/cloud/azure/sql-elasticpool/monitors-sql-elasticpool.tf @@ -72,7 +72,7 @@ resource "datadog_monitor" "sql_elasticpool_dtu_consumption_high" { message = coalesce(var.dtu_message, var.message) type = "query alert" -query = < ${var.dtu_threshold_critical} diff --git a/cloud/azure/storage/monitors-azure-storage.tf b/cloud/azure/storage/monitors-azure-storage.tf index 2e84dc0..d467a49 100644 --- a/cloud/azure/storage/monitors-azure-storage.tf +++ b/cloud/azure/storage/monitors-azure-storage.tf @@ -74,7 +74,7 @@ resource "datadog_monitor" "fileservices_requests_error" { count = var.successful_requests_enabled == "true" ? 1 : 0 name = "${var.prefix_slug == "" ? "" : "[${var.prefix_slug}]"}[${var.environment}] Azure Storage File service too few successful requests {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = coalesce(var.successful_requests_message, var.message) - query = < ${var.conversion_errors_threshold_critical} diff --git a/cloud/azure/virtual-machine/monitors-virtual-machine.tf b/cloud/azure/virtual-machine/monitors-virtual-machine.tf index 7b5a093..5e11960 100644 --- a/cloud/azure/virtual-machine/monitors-virtual-machine.tf +++ b/cloud/azure/virtual-machine/monitors-virtual-machine.tf @@ -67,7 +67,7 @@ resource "datadog_monitor" "virtualmachine_credit_cpu_remaining_too_low" { message = coalesce(var.cpu_remaining_rate_message, var.message) type = "query alert" -query = < ${var.scanned_bytes_threshold_critical} @@ -118,7 +118,7 @@ resource "datadog_monitor" "scanned_bytes_billed" { message = coalesce(var.scanned_bytes_billed_message, var.message) type = "query alert" -query = < ${var.scanned_bytes_billed_threshold_critical} @@ -229,7 +229,7 @@ resource "datadog_monitor" "table_count" { message = coalesce(var.table_count_message, var.message) type = "metric alert" -query = < ${var.table_count_threshold_critical} @@ -266,7 +266,7 @@ resource "datadog_monitor" "uploaded_bytes" { message = coalesce(var.uploaded_bytes_message, var.message) type = "query alert" -query = < ${var.uploaded_bytes_threshold_critical} diff --git a/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf b/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf index 551d798..7c09b04 100644 --- a/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf +++ b/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf @@ -81,7 +81,7 @@ resource "datadog_monitor" "disk_utilization_forecast" { message = coalesce(var.disk_utilization_forecast_message, var.message) type = "query alert" -query = <= ${var.disk_utilization_forecast_threshold_critical} EOQ - thresholds = { - critical = var.disk_utilization_forecast_threshold_critical - critical_recovery = var.disk_utilization_forecast_threshold_critical_recovery - } +thresholds = { + critical = var.disk_utilization_forecast_threshold_critical + critical_recovery = var.disk_utilization_forecast_threshold_critical_recovery +} - evaluation_delay = var.evaluation_delay - new_host_delay = var.new_host_delay - notify_audit = false - locked = false - timeout_h = 0 - include_tags = true - require_full_window = false - notify_no_data = false - renotify_interval = 0 +evaluation_delay = var.evaluation_delay +new_host_delay = var.new_host_delay +notify_audit = false +locked = false +timeout_h = 0 +include_tags = true +require_full_window = false +notify_no_data = false +renotify_interval = 0 - tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.disk_utilization_forecast_extra_tags) +tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.disk_utilization_forecast_extra_tags) - lifecycle { - ignore_changes = ["silenced"] - } +lifecycle { + ignore_changes = ["silenced"] +} } # @@ -177,38 +177,38 @@ resource "datadog_monitor" "memory_utilization_forecast" { ${var.memory_utilization_forecast_deviations}, interval='${var.memory_utilization_forecast_interval}', ${var.memory_utilization_forecast_algorithm == "linear" ? format( -"history='%s',model='%s'", -var.memory_utilization_forecast_linear_history, -var.memory_utilization_forecast_linear_model, -) : ""} + "history='%s',model='%s'", + var.memory_utilization_forecast_linear_history, + var.memory_utilization_forecast_linear_model, + ) : ""} ${var.memory_utilization_forecast_algorithm == "seasonal" ? format( -"seasonality='%s'", -var.memory_utilization_forecast_seasonal_seasonality, + "seasonality='%s'", + var.memory_utilization_forecast_seasonal_seasonality, ) : ""} ) >= ${var.memory_utilization_forecast_threshold_critical} EOQ - thresholds = { - critical = var.memory_utilization_forecast_threshold_critical - critical_recovery = var.memory_utilization_forecast_threshold_critical_recovery - } +thresholds = { + critical = var.memory_utilization_forecast_threshold_critical + critical_recovery = var.memory_utilization_forecast_threshold_critical_recovery +} - evaluation_delay = var.evaluation_delay - new_host_delay = var.new_host_delay - notify_audit = false - locked = false - timeout_h = 0 - include_tags = true - require_full_window = false - notify_no_data = false - renotify_interval = 0 +evaluation_delay = var.evaluation_delay +new_host_delay = var.new_host_delay +notify_audit = false +locked = false +timeout_h = 0 +include_tags = true +require_full_window = false +notify_no_data = false +renotify_interval = 0 - tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.memory_utilization_forecast_extra_tags) +tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.memory_utilization_forecast_extra_tags) - lifecycle { - ignore_changes = ["silenced"] - } +lifecycle { + ignore_changes = ["silenced"] +} } # @@ -220,7 +220,7 @@ resource "datadog_monitor" "failover_unavailable" { message = coalesce(var.failover_unavailable_message, var.message) type = "metric alert" - query = < ${var.backend_latency_service_threshold_critical} @@ -120,7 +120,7 @@ resource "datadog_monitor" "backend_latency_bucket" { message = coalesce(var.backend_latency_bucket_message, var.message) type = "query alert" -query = < ${var.backend_latency_bucket_threshold_critical} diff --git a/database/elasticsearch/monitors-elasticsearch.tf b/database/elasticsearch/monitors-elasticsearch.tf index 6d0b31f..740f20d 100644 --- a/database/elasticsearch/monitors-elasticsearch.tf +++ b/database/elasticsearch/monitors-elasticsearch.tf @@ -78,7 +78,7 @@ resource "datadog_monitor" "cluster_initializing_shards" { message = coalesce(var.cluster_initializing_shards_message, var.message) type = "metric alert" -query = < ${var.cluster_initializing_shards_threshold_critical} @@ -113,7 +113,7 @@ resource "datadog_monitor" "cluster_relocating_shards" { message = coalesce(var.cluster_relocating_shards_message, var.message) type = "metric alert" -query = < ${var.cluster_relocating_shards_threshold_critical} @@ -222,7 +222,7 @@ resource "datadog_monitor" "jvm_heap_memory_usage" { message = coalesce(var.jvm_heap_memory_usage_message, var.message) type = "query alert" -query = < ${var.jvm_heap_memory_usage_threshold_critical} @@ -257,7 +257,7 @@ resource "datadog_monitor" "jvm_memory_young_usage" { message = coalesce(var.jvm_memory_young_usage_message, var.message) type = "query alert" -query = < ${var.jvm_memory_young_usage_threshold_critical} @@ -362,7 +362,7 @@ resource "datadog_monitor" "jvm_gc_young_collection_latency" { message = coalesce(var.jvm_gc_young_collection_latency_message, var.message) type = "query alert" -query = < ${var.jvm_gc_young_collection_latency_threshold_critical} @@ -398,7 +398,7 @@ resource "datadog_monitor" "indexing_latency" { type = "query alert" // TODO add tags to filter by node type and do not apply this monitor on non-data nodes -query = < ${var.indexing_latency_threshold_critical} @@ -518,7 +518,7 @@ resource "datadog_monitor" "search_query_latency" { type = "query alert" // TODO add tags to filter by node type and do not apply this monitor on non-data nodes -query = < ${var.search_query_latency_threshold_critical} @@ -554,7 +554,7 @@ resource "datadog_monitor" "fetch_latency" { type = "query alert" // TODO add tags to filter by node type and do not apply this monitor on non-data nodes -query = < ${var.fetch_latency_threshold_critical} @@ -660,7 +660,7 @@ resource "datadog_monitor" "field_data_evictions_change" { type = "query alert" // TODO add tags to filter by node type and do not apply this monitor on non-data nodes -query = < ${var.field_data_evictions_change_threshold_critical} @@ -696,7 +696,7 @@ resource "datadog_monitor" "query_cache_evictions_change" { type = "query alert" // TODO add tags to filter by node type and do not apply this monitor on non-data nodes -query = < ${var.query_cache_evictions_change_threshold_critical} diff --git a/database/mongodb/monitors-mongo.tf b/database/mongodb/monitors-mongo.tf index d40d33a..60659f9 100644 --- a/database/mongodb/monitors-mongo.tf +++ b/database/mongodb/monitors-mongo.tf @@ -4,7 +4,7 @@ resource "datadog_monitor" "mongodb_primary" { message = coalesce(var.mongodb_primary_message, var.message) type = "metric alert" - query = <= 2 EOQ @@ -64,7 +64,7 @@ resource "datadog_monitor" "mongodb_server_count" { message = coalesce(var.mongodb_server_count_message, var.message) type = "metric alert" -query = < 99 @@ -97,7 +97,7 @@ resource "datadog_monitor" "mongodb_replication" { message = coalesce(var.mongodb_replication_message, var.message) type = "metric alert" -query = < ${var.mongodb_lag_critical} EOQ diff --git a/database/mysql/monitors-mysql.tf b/database/mysql/monitors-mysql.tf index 2699cf0..c9787be 100644 --- a/database/mysql/monitors-mysql.tf +++ b/database/mysql/monitors-mysql.tf @@ -69,7 +69,7 @@ resource "datadog_monitor" "mysql_aborted" { message = coalesce(var.mysql_aborted_message, var.message) type = "query alert" -query = < ${var.postgresql_lock_threshold_critical} diff --git a/database/redis/monitors-redis.tf b/database/redis/monitors-redis.tf index f0681b1..26703f7 100644 --- a/database/redis/monitors-redis.tf +++ b/database/redis/monitors-redis.tf @@ -73,7 +73,7 @@ resource "datadog_monitor" "expirations" { message = coalesce(var.expirations_rate_message, var.message) type = "query alert" -query = < ${var.expirations_rate_threshold_critical} @@ -107,7 +107,7 @@ resource "datadog_monitor" "blocked_clients" { message = coalesce(var.blocked_clients_message, var.message) type = "query alert" -query = < ${var.mem_frag_threshold_critical} @@ -245,7 +245,7 @@ resource "datadog_monitor" "rejected_connections" { message = coalesce(var.rejected_con_message, var.message) type = "query alert" -query = < ${var.rejected_con_threshold_critical} diff --git a/system/generic/monitors-system.tf b/system/generic/monitors-system.tf index bb3e310..93898f7 100644 --- a/system/generic/monitors-system.tf +++ b/system/generic/monitors-system.tf @@ -70,7 +70,7 @@ resource "datadog_monitor" "disk_space" { message = coalesce(var.disk_space_message, var.message) type = "query alert" -query = < ${var.disk_space_threshold_critical} @@ -103,45 +103,45 @@ resource "datadog_monitor" "disk_space_forecast" { message = coalesce(var.disk_space_forecast_message, var.message) type = "query alert" -query = <= ${var.disk_space_forecast_threshold_critical} EOQ - thresholds = { - critical_recovery = var.disk_space_forecast_threshold_critical_recovery - critical = var.disk_space_forecast_threshold_critical - } +thresholds = { + critical_recovery = var.disk_space_forecast_threshold_critical_recovery + critical = var.disk_space_forecast_threshold_critical +} - evaluation_delay = var.evaluation_delay - new_host_delay = var.new_host_delay - notify_audit = false - locked = false - timeout_h = 0 - include_tags = true - require_full_window = true - notify_no_data = false - renotify_interval = 0 +evaluation_delay = var.evaluation_delay +new_host_delay = var.new_host_delay +notify_audit = false +locked = false +timeout_h = 0 +include_tags = true +require_full_window = true +notify_no_data = false +renotify_interval = 0 - tags = concat(["env:${var.environment}", "type:system", "provider:disk", "resource:generic", "team:claranet", "created-by:terraform"], var.disk_space_forecast_extra_tags) +tags = concat(["env:${var.environment}", "type:system", "provider:disk", "resource:generic", "team:claranet", "created-by:terraform"], var.disk_space_forecast_extra_tags) - lifecycle { - ignore_changes = ["silenced"] - } +lifecycle { + ignore_changes = ["silenced"] +} } resource "datadog_monitor" "disk_inodes" { From 9d9f86f56d684a61dfd061e910d0926f74b51030 Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 17:50:37 +0200 Subject: [PATCH 5/7] MON-486 remove trailing whitespace --- scripts/99_terraform.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/99_terraform.sh b/scripts/99_terraform.sh index 1eee47e..da0a4be 100755 --- a/scripts/99_terraform.sh +++ b/scripts/99_terraform.sh @@ -4,7 +4,7 @@ set -xueo pipefail source "$(dirname $0)/utils.sh" goto_root -for path in $(find "$(get_scope $1)" -name 'inputs.tf' -print); do +for path in $(find "$(get_scope $1)" -name 'inputs.tf' -print); do dir=$(dirname ${path}) cat < ${dir}/tmp.tf provider "datadog" { From b4b56108c30566cb29156c335a097acb5a734487 Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 18:01:30 +0200 Subject: [PATCH 6/7] MON-486 fix forecast EOF bug for fmt --- .../common/monitors-cloud-sql-common.tf | 102 ++++++++---------- system/generic/monitors-system.tf | 45 ++++---- 2 files changed, 63 insertions(+), 84 deletions(-) diff --git a/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf b/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf index 7c09b04..528715e 100644 --- a/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf +++ b/cloud/gcp/cloud-sql/common/monitors-cloud-sql-common.tf @@ -88,39 +88,32 @@ resource "datadog_monitor" "disk_utilization_forecast" { '${var.disk_utilization_forecast_algorithm}', ${var.disk_utilization_forecast_deviations}, interval='${var.disk_utilization_forecast_interval}', - ${var.disk_utilization_forecast_algorithm == "linear" ? format( - "history='%s',model='%s'", - var.disk_utilization_forecast_linear_history, - var.disk_utilization_forecast_linear_model, - ) : ""} - ${var.disk_utilization_forecast_algorithm == "seasonal" ? format( - "seasonality='%s'", - var.disk_utilization_forecast_seasonal_seasonality, -) : ""} + ${var.disk_utilization_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.disk_utilization_forecast_linear_history, var.disk_utilization_forecast_linear_model) : ""} + ${var.disk_utilization_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.disk_utilization_forecast_seasonal_seasonality) : ""} ) >= ${var.disk_utilization_forecast_threshold_critical} EOQ -thresholds = { - critical = var.disk_utilization_forecast_threshold_critical - critical_recovery = var.disk_utilization_forecast_threshold_critical_recovery -} + thresholds = { + critical = var.disk_utilization_forecast_threshold_critical + critical_recovery = var.disk_utilization_forecast_threshold_critical_recovery + } -evaluation_delay = var.evaluation_delay -new_host_delay = var.new_host_delay -notify_audit = false -locked = false -timeout_h = 0 -include_tags = true -require_full_window = false -notify_no_data = false -renotify_interval = 0 + evaluation_delay = var.evaluation_delay + new_host_delay = var.new_host_delay + notify_audit = false + locked = false + timeout_h = 0 + include_tags = true + require_full_window = false + notify_no_data = false + renotify_interval = 0 -tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.disk_utilization_forecast_extra_tags) + tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.disk_utilization_forecast_extra_tags) -lifecycle { - ignore_changes = ["silenced"] -} + lifecycle { + ignore_changes = ["silenced"] + } } # @@ -170,45 +163,38 @@ resource "datadog_monitor" "memory_utilization_forecast" { type = "query alert" query = <= ${var.memory_utilization_forecast_threshold_critical} EOQ -thresholds = { - critical = var.memory_utilization_forecast_threshold_critical - critical_recovery = var.memory_utilization_forecast_threshold_critical_recovery -} + thresholds = { + critical = var.memory_utilization_forecast_threshold_critical + critical_recovery = var.memory_utilization_forecast_threshold_critical_recovery + } -evaluation_delay = var.evaluation_delay -new_host_delay = var.new_host_delay -notify_audit = false -locked = false -timeout_h = 0 -include_tags = true -require_full_window = false -notify_no_data = false -renotify_interval = 0 + evaluation_delay = var.evaluation_delay + new_host_delay = var.new_host_delay + notify_audit = false + locked = false + timeout_h = 0 + include_tags = true + require_full_window = false + notify_no_data = false + renotify_interval = 0 -tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.memory_utilization_forecast_extra_tags) + tags = concat(["env:${var.environment}", "type:cloud", "provider:gcp", "resource:cloud-sql", "team:claranet", "created-by:terraform"], var.memory_utilization_forecast_extra_tags) -lifecycle { - ignore_changes = ["silenced"] -} + lifecycle { + ignore_changes = ["silenced"] + } } # diff --git a/system/generic/monitors-system.tf b/system/generic/monitors-system.tf index 93898f7..e53456f 100644 --- a/system/generic/monitors-system.tf +++ b/system/generic/monitors-system.tf @@ -109,39 +109,32 @@ resource "datadog_monitor" "disk_space_forecast" { '${var.disk_space_forecast_algorithm}', ${var.disk_space_forecast_deviations}, interval='${var.disk_space_forecast_interval}', - ${var.disk_space_forecast_algorithm == "linear" ? format( - "history='%s',model='%s'", - var.disk_space_forecast_linear_history, - var.disk_space_forecast_linear_model, - ) : ""} - ${var.disk_space_forecast_algorithm == "seasonal" ? format( - "seasonality='%s'", - var.disk_space_forecast_seasonal_seasonality, -) : ""} + ${var.disk_space_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.disk_space_forecast_linear_history, var.disk_space_forecast_linear_model) : ""} + ${var.disk_space_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.disk_space_forecast_seasonal_seasonality) : ""} ) >= ${var.disk_space_forecast_threshold_critical} EOQ -thresholds = { - critical_recovery = var.disk_space_forecast_threshold_critical_recovery - critical = var.disk_space_forecast_threshold_critical -} + thresholds = { + critical_recovery = var.disk_space_forecast_threshold_critical_recovery + critical = var.disk_space_forecast_threshold_critical + } -evaluation_delay = var.evaluation_delay -new_host_delay = var.new_host_delay -notify_audit = false -locked = false -timeout_h = 0 -include_tags = true -require_full_window = true -notify_no_data = false -renotify_interval = 0 + evaluation_delay = var.evaluation_delay + new_host_delay = var.new_host_delay + notify_audit = false + locked = false + timeout_h = 0 + include_tags = true + require_full_window = true + notify_no_data = false + renotify_interval = 0 -tags = concat(["env:${var.environment}", "type:system", "provider:disk", "resource:generic", "team:claranet", "created-by:terraform"], var.disk_space_forecast_extra_tags) + tags = concat(["env:${var.environment}", "type:system", "provider:disk", "resource:generic", "team:claranet", "created-by:terraform"], var.disk_space_forecast_extra_tags) -lifecycle { - ignore_changes = ["silenced"] -} + lifecycle { + ignore_changes = ["silenced"] + } } resource "datadog_monitor" "disk_inodes" { From 767735dda5e7e61533bacacf5ddb386ea9834eac Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 1 Aug 2019 18:10:44 +0200 Subject: [PATCH 7/7] MON-486 fix missing space cause problem on fmt --- database/mongodb/monitors-mongo.tf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/database/mongodb/monitors-mongo.tf b/database/mongodb/monitors-mongo.tf index 60659f9..f7bcc32 100644 --- a/database/mongodb/monitors-mongo.tf +++ b/database/mongodb/monitors-mongo.tf @@ -4,10 +4,11 @@ resource "datadog_monitor" "mongodb_primary" { message = coalesce(var.mongodb_primary_message, var.message) type = "metric alert" - query = <= 2 EOQ + evaluation_delay = var.evaluation_delay new_host_delay = var.new_host_delay notify_no_data = true