From 7d2ad5114edbc7f75c0aa957e5712b560041658f Mon Sep 17 00:00:00 2001 From: vincent EL KHATIB Date: Mon, 30 Oct 2017 15:04:49 +0100 Subject: [PATCH 1/5] MON-81 fix delta from nexperience MON-81 fix strconv.ParseInt MON-81 fix hardcoded env MON-81 added custom cpu tag & variabilize cpu threshold MON-81 fixed dd_custom missing MON-81 added region --- inputs.tf | 9 +++++++++ monitors-linux-basics.tf | 38 +++++++++++++++++++++++++++--------- monitors-rds_mysql-basics.tf | 4 ++-- monitors_fpm.tf | 2 +- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/inputs.tf b/inputs.tf index 03b1829..5e6720b 100644 --- a/inputs.tf +++ b/inputs.tf @@ -23,6 +23,15 @@ variable "dd_custom_cpu" { } } +#cpu threshold + +variable "cpu_5_critical" { + default = 95 +} + +variable "cpu_15_critical" { + default = 80 +} ## RDS variable "dd_aws_rds" { diff --git a/monitors-linux-basics.tf b/monitors-linux-basics.tf index f854caf..961a070 100644 --- a/monitors-linux-basics.tf +++ b/monitors-linux-basics.tf @@ -1,11 +1,15 @@ resource "datadog_monitor" "cpu_80_15min" { - name = "[${var.env}] CPU High > 80% for 15 min on {{host.name}}" + name = "[${var.env}] CPU High > ${var.cpu_15_critical} for 15 min on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" - query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} > 80" + query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_15_critical}" type = "query alert" + thresholds { + critical = "${var.cpu_15_critical}" + } + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -19,13 +23,17 @@ resource "datadog_monitor" "cpu_80_15min" { } resource "datadog_monitor" "cpu_95_5min" { - name = "[${var.env}] CPU High > 95% for 5 min on {{host.name}}" + name = "[${var.env}] CPU High > ${var.cpu_5_critical} for 5 min on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,!dd_custom_cpu:enabled} by {host,region,stack} > 95" + query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_5_critical}" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" + thresholds { + critical = "${var.cpu_5_critical}" + } + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -42,10 +50,14 @@ resource "datadog_monitor" "datadog_free_disk_space_5" { name = "[${var.env}] Free disk space < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 5" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" + thresholds { + critical = 5 + } + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -62,7 +74,7 @@ resource "datadog_monitor" "datadog_free_disk_space_10" { name = "[${var.env}] Free disk space < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 10" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -87,10 +99,14 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_5" { name = "[${var.env}] Free disk inodes < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group} \n{{/is_recovery}}" - query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 5" + query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" + thresholds { + critical = 5 + } + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -107,7 +123,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_10" { name = "[${var.env}] Free disk inodes < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 10" + query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -154,10 +170,14 @@ resource "datadog_monitor" "datadog_free_memory" { name = "[${var.env}] Free memory < 5% on {{host.name}}" message = "Debugging alert - no escalation" - query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} * 100 < 5" + query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" + thresholds { + critical = 5 + } + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" diff --git a/monitors-rds_mysql-basics.tf b/monitors-rds_mysql-basics.tf index 0d1bbf3..9d81b7c 100644 --- a/monitors-rds_mysql-basics.tf +++ b/monitors-rds_mysql-basics.tf @@ -8,7 +8,7 @@ resource "datadog_monitor" "rds-mysql_cpu_80_15min" { count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" - query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {name,region} > 90" + query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} > 90" type = "query alert" thresholds { @@ -33,7 +33,7 @@ resource "datadog_monitor" "mysql_rds_free_space_low" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group} \n{{/is_warning}} \n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" type = "query alert" - query = "avg(last_15m): avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {name,region} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_rds-mysql_basics:enabled,env:${var.env},!dd_custom_rds-mysql:enabled} by {identifier,region} * 100 < 10" + query = "avg(last_15m):avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} * 100 < 10" count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" diff --git a/monitors_fpm.tf b/monitors_fpm.tf index cff10a0..0218212 100644 --- a/monitors_fpm.tf +++ b/monitors_fpm.tf @@ -4,7 +4,7 @@ resource "datadog_monitor" "php-fpm_process_idle" { type = "query alert" - query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,app} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,app} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,stack} ) > 0.90" + query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} ) > 0.9" count = "${var.dd_php_fpm == "enabled" ? 1 : 0 }" thresholds { From 272ab84244d8057fbaeb344bacdf8c6d1e38d265 Mon Sep 17 00:00:00 2001 From: vincent EL KHATIB Date: Tue, 31 Oct 2017 16:00:47 +0100 Subject: [PATCH 2/5] MON-81 added stack --- monitors-linux-basics.tf | 14 +++++++------- monitors-rds_mysql-basics.tf | 4 ++-- monitors_elb.tf | 10 +++++----- monitors_fpm.tf | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/monitors-linux-basics.tf b/monitors-linux-basics.tf index 961a070..223c6ef 100644 --- a/monitors-linux-basics.tf +++ b/monitors-linux-basics.tf @@ -3,7 +3,7 @@ resource "datadog_monitor" "cpu_80_15min" { message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" - query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_15_critical}" + query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} > ${var.cpu_15_critical}" type = "query alert" thresholds { @@ -26,7 +26,7 @@ resource "datadog_monitor" "cpu_95_5min" { name = "[${var.env}] CPU High > ${var.cpu_5_critical} for 5 min on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_5_critical}" + query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} > ${var.cpu_5_critical}" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -50,7 +50,7 @@ resource "datadog_monitor" "datadog_free_disk_space_5" { name = "[${var.env}] Free disk space < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 5" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -74,7 +74,7 @@ resource "datadog_monitor" "datadog_free_disk_space_10" { name = "[${var.env}] Free disk space < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 10" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -99,7 +99,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_5" { name = "[${var.env}] Free disk inodes < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group} \n{{/is_recovery}}" - query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device} * 100 < 5" + query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -123,7 +123,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_10" { name = "[${var.env}] Free disk inodes < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} * 100 < 10" + query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -170,7 +170,7 @@ resource "datadog_monitor" "datadog_free_memory" { name = "[${var.env}] Free memory < 5% on {{host.name}}" message = "Debugging alert - no escalation" - query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} * 100 < 5" + query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" diff --git a/monitors-rds_mysql-basics.tf b/monitors-rds_mysql-basics.tf index 9d81b7c..e45cc1b 100644 --- a/monitors-rds_mysql-basics.tf +++ b/monitors-rds_mysql-basics.tf @@ -8,7 +8,7 @@ resource "datadog_monitor" "rds-mysql_cpu_80_15min" { count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" - query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} > 90" + query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} > 90" type = "query alert" thresholds { @@ -33,7 +33,7 @@ resource "datadog_monitor" "mysql_rds_free_space_low" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group} \n{{/is_warning}} \n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" type = "query alert" - query = "avg(last_15m):avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} * 100 < 10" + query = "avg(last_15m):avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} * 100 < 10" count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" diff --git a/monitors_elb.tf b/monitors_elb.tf index a66fb84..ccb72fb 100644 --- a/monitors_elb.tf +++ b/monitors_elb.tf @@ -3,7 +3,7 @@ resource "datadog_monitor" "ELB_no_healthy_instances" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} == 0" + query = "avg(last_5m):avg:aws.elb.healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} == 0" type = "query alert" notify_no_data = "${var.elb_config["notify_no_data"]}" @@ -23,7 +23,7 @@ resource "datadog_monitor" "ELB_unhealthy_instances" { message = "{{#is_alert}}\n${var.ho_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.ho_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.un_healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} > 0" + query = "avg(last_5m):avg:aws.elb.un_healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} > 0" type = "query alert" notify_no_data = "${var.elb_config["notify_no_data"]}" @@ -43,7 +43,7 @@ resource "datadog_monitor" "ELB_too_much_5xx_backend" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m): avg:aws.elb.httpcode_backend_5xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} * 100 > ${var.elb_5xx_threshold["critical"]}" + query = "avg(last_5m): avg:aws.elb.httpcode_backend_5xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} * 100 > ${var.elb_5xx_threshold["critical"]}" type = "query alert" thresholds { @@ -68,7 +68,7 @@ resource "datadog_monitor" "ELB_too_much_4xx_backend" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m): avg:aws.elb.httpcode_backend_4xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} * 100 > ${var.elb_4xx_threshold["critical"]}" + query = "avg(last_5m): avg:aws.elb.httpcode_backend_4xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} * 100 > ${var.elb_4xx_threshold["critical"]}" type = "query alert" thresholds { @@ -93,7 +93,7 @@ resource "datadog_monitor" "ELB_backend_latency" { message = "{{#is_alert}}\n${var.ho_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.ho_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.latency{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} > ${var.elb_backend_latency["critical"]}" + query = "avg(last_5m):avg:aws.elb.latency{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} > ${var.elb_backend_latency["critical"]}" type = "query alert" thresholds { diff --git a/monitors_fpm.tf b/monitors_fpm.tf index 0218212..9929229 100644 --- a/monitors_fpm.tf +++ b/monitors_fpm.tf @@ -4,7 +4,7 @@ resource "datadog_monitor" "php-fpm_process_idle" { type = "query alert" - query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} ) > 0.9" + query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,stack} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,stack} ) > 0.9" count = "${var.dd_php_fpm == "enabled" ? 1 : 0 }" thresholds { From 7481485da1d6d91b8396a8ea506367d4abb4b6e4 Mon Sep 17 00:00:00 2001 From: vincent EL KHATIB Date: Tue, 31 Oct 2017 16:27:25 +0100 Subject: [PATCH 3/5] MON-81 remove space --- monitors-linux-basics.tf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/monitors-linux-basics.tf b/monitors-linux-basics.tf index 223c6ef..1ed76a8 100644 --- a/monitors-linux-basics.tf +++ b/monitors-linux-basics.tf @@ -3,7 +3,7 @@ resource "datadog_monitor" "cpu_80_15min" { message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" - query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} > ${var.cpu_15_critical}" + query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} > ${var.cpu_15_critical}" type = "query alert" thresholds { @@ -26,7 +26,7 @@ resource "datadog_monitor" "cpu_95_5min" { name = "[${var.env}] CPU High > ${var.cpu_5_critical} for 5 min on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, stack} > ${var.cpu_5_critical}" + query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} > ${var.cpu_5_critical}" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -50,7 +50,7 @@ resource "datadog_monitor" "datadog_free_disk_space_5" { name = "[${var.env}] Free disk space < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 5" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -74,7 +74,7 @@ resource "datadog_monitor" "datadog_free_disk_space_10" { name = "[${var.env}] Free disk space < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 10" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -99,7 +99,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_5" { name = "[${var.env}] Free disk inodes < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group} \n{{/is_recovery}}" - query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region, device,stack} * 100 < 5" + query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" From 64be248b9eff70649c9cb2d6b1d0f5381adc5110 Mon Sep 17 00:00:00 2001 From: vincent EL KHATIB Date: Thu, 2 Nov 2017 15:47:47 +0100 Subject: [PATCH 4/5] MON-81 added tag * --- monitors-linux-basics.tf | 14 ++++++++++++++ monitors-rds_mysql-basics.tf | 4 ++++ monitors_apache.tf | 2 ++ monitors_elb.tf | 10 ++++++++++ monitors_fpm.tf | 4 ++++ monitors_nginx.tf | 2 ++ 6 files changed, 36 insertions(+) diff --git a/monitors-linux-basics.tf b/monitors-linux-basics.tf index 1ed76a8..d23a02e 100644 --- a/monitors-linux-basics.tf +++ b/monitors-linux-basics.tf @@ -10,6 +10,8 @@ resource "datadog_monitor" "cpu_80_15min" { critical = "${var.cpu_15_critical}" } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -34,6 +36,8 @@ resource "datadog_monitor" "cpu_95_5min" { critical = "${var.cpu_5_critical}" } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -58,6 +62,8 @@ resource "datadog_monitor" "datadog_free_disk_space_5" { critical = 5 } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -83,6 +89,8 @@ resource "datadog_monitor" "datadog_free_disk_space_10" { critical = 10 } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -107,6 +115,8 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_5" { critical = 5 } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -132,6 +142,8 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_10" { critical = 10 } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" @@ -178,6 +190,8 @@ resource "datadog_monitor" "datadog_free_memory" { critical = 5 } + tags = ["*"] + notify_no_data = "${var.linux_basics_config["notify_no_data"]}" evaluation_delay = "${var.linux_basics_config["delay"]}" new_host_delay = "${var.linux_basics_config["delay"]}" diff --git a/monitors-rds_mysql-basics.tf b/monitors-rds_mysql-basics.tf index e45cc1b..c0c44d1 100644 --- a/monitors-rds_mysql-basics.tf +++ b/monitors-rds_mysql-basics.tf @@ -16,6 +16,8 @@ resource "datadog_monitor" "rds-mysql_cpu_80_15min" { critical = "${var.rds_cpu_threshold["critical"]}" } + tags = ["*"] + notify_no_data = "${var.rds_config["notify_no_data"]}" evaluation_delay = "${var.rds_config["delay"]}" renotify_interval = 60 @@ -42,6 +44,8 @@ resource "datadog_monitor" "mysql_rds_free_space_low" { critical = "${var.rds_mem_threshold["critical"]}" } + tags = ["*"] + notify_no_data = "${var.rds_config["notify_no_data"]}" evaluation_delay = "${var.rds_config["delay"]}" renotify_interval = 60 diff --git a/monitors_apache.tf b/monitors_apache.tf index b318de2..d807312 100644 --- a/monitors_apache.tf +++ b/monitors_apache.tf @@ -23,4 +23,6 @@ resource "datadog_monitor" "Apache_process" { locked = false require_full_window = true no_data_timeframe = 20 + + tags = ["*"] } diff --git a/monitors_elb.tf b/monitors_elb.tf index ccb72fb..788037a 100644 --- a/monitors_elb.tf +++ b/monitors_elb.tf @@ -16,6 +16,8 @@ resource "datadog_monitor" "ELB_no_healthy_instances" { require_full_window = true new_host_delay = "${var.elb_config["delay"]}" no_data_timeframe = 20 + + tags = ["*"] } resource "datadog_monitor" "ELB_unhealthy_instances" { @@ -36,6 +38,8 @@ resource "datadog_monitor" "ELB_unhealthy_instances" { require_full_window = true new_host_delay = "${var.elb_config["delay"]}" no_data_timeframe = 20 + + tags = ["*"] } resource "datadog_monitor" "ELB_too_much_5xx_backend" { @@ -61,6 +65,8 @@ resource "datadog_monitor" "ELB_too_much_5xx_backend" { require_full_window = true new_host_delay = "${var.elb_config["delay"]}" no_data_timeframe = 20 + + tags = ["*"] } resource "datadog_monitor" "ELB_too_much_4xx_backend" { @@ -86,6 +92,8 @@ resource "datadog_monitor" "ELB_too_much_4xx_backend" { require_full_window = true new_host_delay = "${var.elb_config["delay"]}" no_data_timeframe = 20 + + tags = ["*"] } resource "datadog_monitor" "ELB_backend_latency" { @@ -111,6 +119,8 @@ resource "datadog_monitor" "ELB_backend_latency" { require_full_window = true new_host_delay = "${var.elb_config["delay"]}" no_data_timeframe = 20 + + tags = ["*"] } diff --git a/monitors_fpm.tf b/monitors_fpm.tf index 9929229..957e1b9 100644 --- a/monitors_fpm.tf +++ b/monitors_fpm.tf @@ -23,6 +23,8 @@ resource "datadog_monitor" "php-fpm_process_idle" { require_full_window = true renotify_interval = 0 no_data_timeframe = 20 + + tags = ["*"] } @@ -51,4 +53,6 @@ resource "datadog_monitor" "FPM_process" { locked = false require_full_window = true no_data_timeframe = 20 + + tags = ["*"] } diff --git a/monitors_nginx.tf b/monitors_nginx.tf index 01a95fe..8baf1cc 100644 --- a/monitors_nginx.tf +++ b/monitors_nginx.tf @@ -23,4 +23,6 @@ resource "datadog_monitor" "Nginx_process" { locked = false require_full_window = true no_data_timeframe = 20 + + tags = ["*"] } From 63ba5e54d1cc439ca15bf5c34ee3767b3c9b0931 Mon Sep 17 00:00:00 2001 From: vincent EL KHATIB Date: Thu, 2 Nov 2017 15:54:51 +0100 Subject: [PATCH 5/5] MON-81 remove stack --- monitors-linux-basics.tf | 14 +++++++------- monitors-rds_mysql-basics.tf | 4 ++-- monitors_elb.tf | 10 +++++----- monitors_fpm.tf | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/monitors-linux-basics.tf b/monitors-linux-basics.tf index d23a02e..ee92cd5 100644 --- a/monitors-linux-basics.tf +++ b/monitors-linux-basics.tf @@ -3,7 +3,7 @@ resource "datadog_monitor" "cpu_80_15min" { message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" - query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} > ${var.cpu_15_critical}" + query = "min(last_15m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_15_critical}" type = "query alert" thresholds { @@ -28,7 +28,7 @@ resource "datadog_monitor" "cpu_95_5min" { name = "[${var.env}] CPU High > ${var.cpu_5_critical} for 5 min on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,stack} > ${var.cpu_5_critical}" + query = "min(last_5m):avg:system.cpu.system{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} + avg:system.cpu.user{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region} > ${var.cpu_5_critical}" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -54,7 +54,7 @@ resource "datadog_monitor" "datadog_free_disk_space_5" { name = "[${var.env}] Free disk space < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 5" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -80,7 +80,7 @@ resource "datadog_monitor" "datadog_free_disk_space_10" { name = "[${var.env}] Free disk space < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 10" + query = "sum(last_5m):avg:system.disk.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} / avg:system.disk.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -107,7 +107,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_5" { name = "[${var.env}] Free disk inodes < 5% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group} \n{{/is_recovery}}" - query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device,stack} * 100 < 5" + query = "sum(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,region,device} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -133,7 +133,7 @@ resource "datadog_monitor" "datadog_free_disk_space_inodes_10" { name = "[${var.env}] Free disk inodes < 10% on {{host.name}}" message = "{{#is_alert}}\n${var.hno_escalation_group}\n{{/is_alert}}\n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group}\n{{/is_warning}}\n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" - query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region,stack} * 100 < 10" + query = "max(last_5m):avg:system.fs.inodes.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} / avg:system.fs.inodes.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_cpu:enabled} by {host,device,region} * 100 < 10" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" @@ -182,7 +182,7 @@ resource "datadog_monitor" "datadog_free_memory" { name = "[${var.env}] Free memory < 5% on {{host.name}}" message = "Debugging alert - no escalation" - query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region,stack} * 100 < 5" + query = "sum(last_1m):avg:system.mem.free{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} / avg:system.mem.total{dd_monitoring:enabled,dd_linux_basics:enabled,env:${var.env},!dd_custom_memory:enabled} by {host,region} * 100 < 5" type = "query alert" count = "${var.dd_linux_basics == "enabled" ? 1 : 0}" diff --git a/monitors-rds_mysql-basics.tf b/monitors-rds_mysql-basics.tf index c0c44d1..95557e0 100644 --- a/monitors-rds_mysql-basics.tf +++ b/monitors-rds_mysql-basics.tf @@ -8,7 +8,7 @@ resource "datadog_monitor" "rds-mysql_cpu_80_15min" { count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" - query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} > 90" + query = "avg(last_15m):avg:aws.rds.cpuutilization{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} > 90" type = "query alert" thresholds { @@ -35,7 +35,7 @@ resource "datadog_monitor" "mysql_rds_free_space_low" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}\n{{#is_warning}}\n${var.ho_escalation_group} \n{{/is_warning}} \n{{#is_warning_recovery}}\n${var.ho_escalation_group}\n{{/is_warning_recovery}}" type = "query alert" - query = "avg(last_15m):avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name,stack} * 100 < 10" + query = "avg(last_15m):avg:aws.rds.free_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} / avg:aws.rds.total_storage_space{dd_monitoring:enabled,dd_aws_rds:enabled,env:${var.env}} by {region,name} * 100 < 10" count = "${var.dd_aws_rds == "enabled" ? 1 : 0 }" diff --git a/monitors_elb.tf b/monitors_elb.tf index 788037a..acabd1a 100644 --- a/monitors_elb.tf +++ b/monitors_elb.tf @@ -3,7 +3,7 @@ resource "datadog_monitor" "ELB_no_healthy_instances" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} == 0" + query = "avg(last_5m):avg:aws.elb.healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} == 0" type = "query alert" notify_no_data = "${var.elb_config["notify_no_data"]}" @@ -25,7 +25,7 @@ resource "datadog_monitor" "ELB_unhealthy_instances" { message = "{{#is_alert}}\n${var.ho_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.ho_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.un_healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} > 0" + query = "avg(last_5m):avg:aws.elb.un_healthy_host_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} > 0" type = "query alert" notify_no_data = "${var.elb_config["notify_no_data"]}" @@ -47,7 +47,7 @@ resource "datadog_monitor" "ELB_too_much_5xx_backend" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m): avg:aws.elb.httpcode_backend_5xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} * 100 > ${var.elb_5xx_threshold["critical"]}" + query = "avg(last_5m): avg:aws.elb.httpcode_backend_5xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} * 100 > ${var.elb_5xx_threshold["critical"]}" type = "query alert" thresholds { @@ -74,7 +74,7 @@ resource "datadog_monitor" "ELB_too_much_4xx_backend" { message = "{{#is_alert}}\n${var.hno_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.hno_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m): avg:aws.elb.httpcode_backend_4xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} * 100 > ${var.elb_4xx_threshold["critical"]}" + query = "avg(last_5m): avg:aws.elb.httpcode_backend_4xx{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} / avg:aws.elb.request_count{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} * 100 > ${var.elb_4xx_threshold["critical"]}" type = "query alert" thresholds { @@ -101,7 +101,7 @@ resource "datadog_monitor" "ELB_backend_latency" { message = "{{#is_alert}}\n${var.ho_escalation_group} \n{{/is_alert}} \n{{#is_recovery}}\n${var.ho_escalation_group}\n{{/is_recovery}}" count = "${var.dd_aws_elb == "enabled" ? 1 : 0 }" - query = "avg(last_5m):avg:aws.elb.latency{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region,stack} > ${var.elb_backend_latency["critical"]}" + query = "avg(last_5m):avg:aws.elb.latency{dd_monitoring:enabled,dd_aws_elb:enabled,env:${var.env}} by {loadbalancername,region} > ${var.elb_backend_latency["critical"]}" type = "query alert" thresholds { diff --git a/monitors_fpm.tf b/monitors_fpm.tf index 957e1b9..844d6ac 100644 --- a/monitors_fpm.tf +++ b/monitors_fpm.tf @@ -4,7 +4,7 @@ resource "datadog_monitor" "php-fpm_process_idle" { type = "query alert" - query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,stack} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region,stack} ) > 0.9" + query = "avg(last_10m):avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} / ( avg:php_fpm.processes.idle{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} + avg:php_fpm.processes.active{dd_monitoring:enabled,dd_php_fpm:enabled,env:${var.env}} by {host,region} ) > 0.9" count = "${var.dd_php_fpm == "enabled" ? 1 : 0 }" thresholds {