data "template_file" "filter" { template = "$${filter}" vars { filter = "${var.filter_tags_use_defaults == "true" ? format("dd_monitoring:enabled,dd_azure_postgresql:enabled,env:%s", var.environment) : "${var.filter_tags_custom}"}" } } resource "datadog_monitor" "postgresql_cpu_usage" { name = "[${var.environment}] Postgresql Server CPU usage is high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.cpu_usage_message, var.message)}" query = < ${var.cpu_usage_threshold_critical} EOF type = "metric alert" thresholds { critical = "${var.cpu_usage_threshold_critical}" warning = "${var.cpu_usage_threshold_warning}" } silenced = "${var.cpu_usage_silenced}" notify_no_data = true evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false timeout_h = 0 include_tags = true locked = false require_full_window = false new_host_delay = "${var.delay}" tags = ["env:${var.environment}", "resource:postgresql", "team:azure", "provider:azure"] } resource "datadog_monitor" "postgresql_no_connection" { name = "[${var.environment}] Postgresql Server has no connection" message = "${coalesce(var.no_connection_message, var.message)}" query = < ${var.io_consumption_threshold_critical} EOF type = "metric alert" thresholds { critical = "${var.io_consumption_threshold_critical}" warning = "${var.io_consumption_threshold_warning}" } silenced = "${var.io_consumption_silenced}" notify_no_data = true evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false timeout_h = 0 include_tags = true locked = false require_full_window = false new_host_delay = "${var.delay}" tags = ["env:${var.environment}", "resource:postgresql", "team:azure", "provider:azure"] } resource "datadog_monitor" "postgresql_memory_usage" { name = "[${var.environment}] Postgresql Server memory usage is high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.memory_usage_message, var.message)}" query = < ${var.memory_usage_threshold_critical} EOF type = "metric alert" thresholds { critical = "${var.memory_usage_threshold_critical}" warning = "${var.memory_usage_threshold_warning}" } silenced = "${var.memory_usage_silenced}" notify_no_data = true evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false timeout_h = 0 include_tags = true locked = false require_full_window = false new_host_delay = "${var.delay}" tags = ["env:${var.environment}", "resource:postgresql", "team:azure", "provider:azure"] } resource "datadog_monitor" "postgresql_compute_consumption" { name = "[${var.environment}] Postgresql Server compute consumption is high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}" message = "${coalesce(var.compute_consumption_message, var.message)}" query = < ${var.compute_consumption_threshold_critical} EOF type = "metric alert" thresholds { critical = "${var.compute_consumption_threshold_critical}" warning = "${var.compute_consumption_threshold_warning}" } silenced = "${var.compute_consumption_silenced}" notify_no_data = true evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false timeout_h = 0 include_tags = true locked = false require_full_window = false new_host_delay = "${var.delay}" tags = ["env:${var.environment}", "resource:postgresql", "team:azure", "provider:azure"] }