diff --git a/database/mysql/monitors-mysql.tf b/database/mysql/monitors-mysql.tf index 14814b3..82133a1 100644 --- a/database/mysql/monitors-mysql.tf +++ b/database/mysql/monitors-mysql.tf @@ -26,7 +26,7 @@ resource "datadog_monitor" "mysql_availability" { silenced = "${var.mysql_availability_silenced}" - tags = ["env:${var.environment}", "type:database", "provider:mysql", "resource:mysql", "team:claranet", "created-by:terraform", "${var.mysql_connection_extra_tags}"] + tags = ["env:${var.environment}", "type:database", "provider:mysql", "resource:mysql", "team:claranet", "created-by:terraform", "${var.mysql_availability_extra_tags}"] } resource "datadog_monitor" "mysql_connection" { diff --git a/database/postgresql/README.md b/database/postgresql/README.md index 63278b0..21b4dc0 100644 --- a/database/postgresql/README.md +++ b/database/postgresql/README.md @@ -17,6 +17,7 @@ module "datadog-monitors-database-postgresql" { Creates DataDog monitors with the following checks: - PostgreSQL Connections +- PostgreSQL server does not respond - PostgreSQL too many locks ## Inputs @@ -30,6 +31,12 @@ Creates DataDog monitors with the following checks: | message | Message sent when an alert is triggered | string | - | yes | | new_host_delay | Delay in seconds for the metric evaluation | string | `300` | no | | posgresql_lock_silenced | Groups to mute for PostgreSQL lock monitor | map | `` | no | +| postgresql_availability_enabled | Flag to enable PostgreSQL availability monitor | string | `true` | no | +| postgresql_availability_extra_tags | Extra tags for PostgreSQL availability monitor | list | `` | no | +| postgresql_availability_message | Custom message for PostgreSQL availability monitor | string | `` | no | +| postgresql_availability_no_data_timeframe | PostgreSQL availability monitor no data timeframe | string | `10` | no | +| postgresql_availability_silenced | Groups to mute for PostgreSQL availability monitor | map | `` | no | +| postgresql_availability_threshold_warning | PostgreSQL availability monitor (warning threshold) | string | `3` | no | | postgresql_connection_enabled | Flag to enable PostgreSQL connection monitor | string | `true` | no | | postgresql_connection_extra_tags | Extra tags for PostgreSQL connection connects monitor | list | `` | no | | postgresql_connection_message | Custom message for PostgreSQL connection monitor | string | `` | no | @@ -50,6 +57,7 @@ Creates DataDog monitors with the following checks: | Name | Description | |------|-------------| +| postgresql_availability_id | id for monitor postgresql_availability | | postgresql_connection_too_high_id | id for monitor postgresql_connection_too_high | | postgresql_too_many_locks_id | id for monitor postgresql_too_many_locks | diff --git a/database/postgresql/inputs.tf b/database/postgresql/inputs.tf index ca0dde6..9386a5e 100644 --- a/database/postgresql/inputs.tf +++ b/database/postgresql/inputs.tf @@ -29,6 +29,46 @@ variable "filter_tags_custom" { } # PostgreSQL specific +################################## +### PostgreSQL availability ### +################################## + +variable "postgresql_availability_silenced" { + description = "Groups to mute for PostgreSQL availability monitor" + type = "map" + default = {} +} + +variable "postgresql_availability_enabled" { + description = "Flag to enable PostgreSQL availability monitor" + type = "string" + default = "true" +} + +variable "postgresql_availability_extra_tags" { + description = "Extra tags for PostgreSQL availability monitor" + type = "list" + default = [] +} + +variable "postgresql_availability_message" { + description = "Custom message for PostgreSQL availability monitor" + type = "string" + default = "" +} + +variable "postgresql_availability_threshold_warning" { + description = "PostgreSQL availability monitor (warning threshold)" + type = "string" + default = 3 +} + +variable "postgresql_availability_no_data_timeframe" { + description = "PostgreSQL availability monitor no data timeframe" + type = "string" + default = 10 +} + ################################## ### PostgreSQL connections ### ################################## diff --git a/database/postgresql/monitors-postgresql.tf b/database/postgresql/monitors-postgresql.tf index fb47486..a37ef7a 100644 --- a/database/postgresql/monitors-postgresql.tf +++ b/database/postgresql/monitors-postgresql.tf @@ -1,3 +1,34 @@ +resource "datadog_monitor" "postgresql_availability" { + count = "${var.postgresql_availability_enabled ? 1 : 0}" + name = "[${var.environment}] PostgreSQL server does not respond" + message = "${coalesce(var.postgresql_availability_message, var.message)}" + + type = "service check" + + query = <