# CLOUD GCP CLOUD-SQL COMMON DataDog monitors ## How to use this module ```hcl module "datadog-monitors-cloud-gcp-cloud-sql-common" { source = "claranet/monitors/datadog//cloud/gcp/cloud-sql/common" version = "{revision}" environment = var.environment message = module.datadog-message-alerting.alerting-message } ``` ## Purpose Creates DataDog monitors with the following checks: - Cloud SQL CPU Utilization - Cloud SQL Disk Utilization - Cloud SQL Disk Utilization forecast - Cloud SQL Failover Unavailable - Cloud SQL Memory Utilization - Cloud SQL Memory Utilization forecast (disabled by default) ## Requirements | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 0.12.31 | | [datadog](#requirement\_datadog) | >= 3.1.0 | ## Providers | Name | Version | |------|---------| | [datadog](#provider\_datadog) | 3.1.2 | ## Modules No modules. ## Resources | Name | Type | |------|------| | [datadog_monitor.cpu_utilization](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | | [datadog_monitor.disk_utilization](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | | [datadog_monitor.disk_utilization_forecast](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | | [datadog_monitor.failover_unavailable](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | | [datadog_monitor.memory_utilization](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | | [datadog_monitor.memory_utilization_forecast](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor) | resource | ## Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [cpu\_utilization\_enabled](#input\_cpu\_utilization\_enabled) | Flag to enable GCP Cloud SQL CPU Utilization monitor | `string` | `"true"` | no | | [cpu\_utilization\_extra\_tags](#input\_cpu\_utilization\_extra\_tags) | Extra tags for GCP Cloud SQL CPU Utilization monitor | `list(string)` | `[]` | no | | [cpu\_utilization\_message](#input\_cpu\_utilization\_message) | Custom message for the CPU Utilization monitor | `string` | `""` | no | | [cpu\_utilization\_threshold\_critical](#input\_cpu\_utilization\_threshold\_critical) | CPU Utilization in percentage (critical threshold) | `string` | `90` | no | | [cpu\_utilization\_threshold\_warning](#input\_cpu\_utilization\_threshold\_warning) | CPU Utilization in percentage (warning threshold) | `string` | `80` | no | | [cpu\_utilization\_time\_aggregator](#input\_cpu\_utilization\_time\_aggregator) | Time aggregator for the CPU Utilization monitor | `string` | `"avg"` | no | | [cpu\_utilization\_timeframe](#input\_cpu\_utilization\_timeframe) | Timeframe for the CPU Utilization monitor | `string` | `"last_15m"` | no | | [disk\_utilization\_enabled](#input\_disk\_utilization\_enabled) | Flag to enable GCP Cloud SQL Disk Utilization monitor | `string` | `"true"` | no | | [disk\_utilization\_extra\_tags](#input\_disk\_utilization\_extra\_tags) | Extra tags for GCP Cloud SQL CPU Utilization monitor | `list(string)` | `[]` | no | | [disk\_utilization\_forecast\_algorithm](#input\_disk\_utilization\_forecast\_algorithm) | Algorithm for the Disk Utilization Forecast monitor | `string` | `"linear"` | no | | [disk\_utilization\_forecast\_deviations](#input\_disk\_utilization\_forecast\_deviations) | Deviations for the Disk Utilization Forecast monitor | `string` | `1` | no | | [disk\_utilization\_forecast\_enabled](#input\_disk\_utilization\_forecast\_enabled) | Flag to enable GCP Cloud SQL Disk Utilization Forecast monitor | `string` | `"true"` | no | | [disk\_utilization\_forecast\_extra\_tags](#input\_disk\_utilization\_forecast\_extra\_tags) | Extra tags for GCP Cloud SQL Disk Utilization Forecast monitor | `list(string)` | `[]` | no | | [disk\_utilization\_forecast\_interval](#input\_disk\_utilization\_forecast\_interval) | Interval for the Disk Utilization Forecast monitor | `string` | `"60m"` | no | | [disk\_utilization\_forecast\_linear\_history](#input\_disk\_utilization\_forecast\_linear\_history) | History for the Disk Utilization Forecast monitor | `string` | `"3d"` | no | | [disk\_utilization\_forecast\_linear\_model](#input\_disk\_utilization\_forecast\_linear\_model) | Model for the Disk Utilization Forecast monitor | `string` | `"default"` | no | | [disk\_utilization\_forecast\_message](#input\_disk\_utilization\_forecast\_message) | Custom message for the Disk Utilization Forecast monitor | `string` | `""` | no | | [disk\_utilization\_forecast\_seasonal\_seasonality](#input\_disk\_utilization\_forecast\_seasonal\_seasonality) | Seasonality for the Disk Utilization Forecast monitor | `string` | `"weekly"` | no | | [disk\_utilization\_forecast\_threshold\_critical](#input\_disk\_utilization\_forecast\_threshold\_critical) | Disk Utilization Forecast in percentage (critical threshold) | `string` | `80` | no | | [disk\_utilization\_forecast\_threshold\_critical\_recovery](#input\_disk\_utilization\_forecast\_threshold\_critical\_recovery) | Disk Utilization Forecast in percentage (recovery threshold) | `string` | `72` | no | | [disk\_utilization\_forecast\_time\_aggregator](#input\_disk\_utilization\_forecast\_time\_aggregator) | Time aggregator for the Disk Utilization Forecast monitor | `string` | `"max"` | no | | [disk\_utilization\_forecast\_timeframe](#input\_disk\_utilization\_forecast\_timeframe) | Timeframe for the Disk Utilization Forecast monitor | `string` | `"next_1w"` | no | | [disk\_utilization\_message](#input\_disk\_utilization\_message) | Custom message for the Disk Utilization monitor | `string` | `""` | no | | [disk\_utilization\_no\_data\_timeframe](#input\_disk\_utilization\_no\_data\_timeframe) | Number of minutes before reporting no data | `string` | `10` | no | | [disk\_utilization\_threshold\_critical](#input\_disk\_utilization\_threshold\_critical) | Disk Utilization in percentage (critical threshold) | `string` | `90` | no | | [disk\_utilization\_threshold\_warning](#input\_disk\_utilization\_threshold\_warning) | Disk Utilization in percentage (warning threshold) | `string` | `80` | no | | [disk\_utilization\_time\_aggregator](#input\_disk\_utilization\_time\_aggregator) | Time aggregator for the Disk Utilization monitor | `string` | `"avg"` | no | | [disk\_utilization\_timeframe](#input\_disk\_utilization\_timeframe) | Timeframe for the Disk Utilization monitor | `string` | `"last_5m"` | no | | [environment](#input\_environment) | Architecture environment | `string` | n/a | yes | | [evaluation\_delay](#input\_evaluation\_delay) | Delay in seconds for the metric evaluation | `number` | `900` | no | | [failover\_unavailable\_enabled](#input\_failover\_unavailable\_enabled) | Flag to enable GCP Cloud SQL Failover Unavailable monitor | `string` | `"true"` | no | | [failover\_unavailable\_extra\_tags](#input\_failover\_unavailable\_extra\_tags) | Extra tags for GCP Cloud SQL Failover Unavailable monitor | `list(string)` | `[]` | no | | [failover\_unavailable\_message](#input\_failover\_unavailable\_message) | Custom message for the Failover Unavailable monitor | `string` | `""` | no | | [failover\_unavailable\_threshold\_critical](#input\_failover\_unavailable\_threshold\_critical) | Failover Unavailable critical threshold | `string` | `0` | no | | [failover\_unavailable\_time\_aggregator](#input\_failover\_unavailable\_time\_aggregator) | Time aggreggator for the Failover Unavailable monitor | `string` | `"max"` | no | | [failover\_unavailable\_timeframe](#input\_failover\_unavailable\_timeframe) | Timeframe for the Failover Unavailable monitor | `string` | `"last_10m"` | no | | [filter\_tags](#input\_filter\_tags) | Tags used for filtering | `string` | `"*"` | no | | [filter\_tags\_failover\_unavailable](#input\_filter\_tags\_failover\_unavailable) | Tags used for filtering specific to the failover unavailable monitor which is only useful for master instances | `string` | `""` | no | | [memory\_utilization\_enabled](#input\_memory\_utilization\_enabled) | Flag to enable GCP Cloud SQL Memory Utilization monitor | `string` | `"true"` | no | | [memory\_utilization\_extra\_tags](#input\_memory\_utilization\_extra\_tags) | Extra tags for GCP Cloud SQL Memory Utilization monitor | `list(string)` | `[]` | no | | [memory\_utilization\_forecast\_algorithm](#input\_memory\_utilization\_forecast\_algorithm) | Algorithm for the Memory Utilization Forecast monitor | `string` | `"linear"` | no | | [memory\_utilization\_forecast\_deviations](#input\_memory\_utilization\_forecast\_deviations) | Deviations for the Memory Utilization Forecast monitor | `string` | `1` | no | | [memory\_utilization\_forecast\_enabled](#input\_memory\_utilization\_forecast\_enabled) | Flag to enable GCP Cloud SQL Memory Utilization Forecast monitor | `string` | `"false"` | no | | [memory\_utilization\_forecast\_extra\_tags](#input\_memory\_utilization\_forecast\_extra\_tags) | Extra tags for GCP Cloud SQL Memory Utilization Forecast monitor | `list(string)` | `[]` | no | | [memory\_utilization\_forecast\_interval](#input\_memory\_utilization\_forecast\_interval) | Interval for the Memory Utilization Forecast monitor | `string` | `"30m"` | no | | [memory\_utilization\_forecast\_linear\_history](#input\_memory\_utilization\_forecast\_linear\_history) | History for the Memory Utilization Forecast monitor | `string` | `"12h"` | no | | [memory\_utilization\_forecast\_linear\_model](#input\_memory\_utilization\_forecast\_linear\_model) | Model for the Memory Utilization Forecast monitor | `string` | `"default"` | no | | [memory\_utilization\_forecast\_message](#input\_memory\_utilization\_forecast\_message) | Custom message for the Memory Utilization Forecast monitor | `string` | `""` | no | | [memory\_utilization\_forecast\_seasonal\_seasonality](#input\_memory\_utilization\_forecast\_seasonal\_seasonality) | Seasonality for the Memory Utilization Forecast monitor | `string` | `"weekly"` | no | | [memory\_utilization\_forecast\_threshold\_critical](#input\_memory\_utilization\_forecast\_threshold\_critical) | Memory Utilization Forecast in percentage (warning threshold) | `number` | `90` | no | | [memory\_utilization\_forecast\_threshold\_critical\_recovery](#input\_memory\_utilization\_forecast\_threshold\_critical\_recovery) | Memory Utilization Forecast in percentage (recovery threshold) | `number` | `81` | no | | [memory\_utilization\_forecast\_time\_aggregator](#input\_memory\_utilization\_forecast\_time\_aggregator) | Time aggregator for the Memory Utilization Forecast monitor | `string` | `"max"` | no | | [memory\_utilization\_forecast\_timeframe](#input\_memory\_utilization\_forecast\_timeframe) | Timeframe for the Memory Utilization Forecast monitor | `string` | `"next_3d"` | no | | [memory\_utilization\_message](#input\_memory\_utilization\_message) | Custom message for the Memory Utilization monitor | `string` | `""` | no | | [memory\_utilization\_threshold\_critical](#input\_memory\_utilization\_threshold\_critical) | Memory Utilization in percentage (critical threshold) | `number` | `90` | no | | [memory\_utilization\_threshold\_warning](#input\_memory\_utilization\_threshold\_warning) | Memory Utilization in percentage (warning threshold) | `number` | `80` | no | | [memory\_utilization\_time\_aggregator](#input\_memory\_utilization\_time\_aggregator) | Time aggregator for the Memory Utilization monitor | `string` | `"avg"` | no | | [memory\_utilization\_timeframe](#input\_memory\_utilization\_timeframe) | Timeframe for the Memory Utilization monitor | `string` | `"last_5m"` | no | | [message](#input\_message) | Message sent when a monitor is triggered | `any` | n/a | yes | | [new\_host\_delay](#input\_new\_host\_delay) | Delay in seconds for the new host evaluation | `number` | `300` | no | | [notify\_no\_data](#input\_notify\_no\_data) | Will raise no data alert if set to true | `bool` | `true` | no | | [prefix\_slug](#input\_prefix\_slug) | Prefix string to prepend between brackets on every monitors names | `string` | `""` | no | ## Outputs | Name | Description | |------|-------------| | [cpu\_utilization\_id](#output\_cpu\_utilization\_id) | id for monitor cpu\_utilization | | [disk\_utilization\_forecast\_id](#output\_disk\_utilization\_forecast\_id) | id for monitor disk\_utilization\_forecast | | [disk\_utilization\_id](#output\_disk\_utilization\_id) | id for monitor disk\_utilization | | [failover\_unavailable\_id](#output\_failover\_unavailable\_id) | id for monitor failover\_unavailable | | [memory\_utilization\_forecast\_id](#output\_memory\_utilization\_forecast\_id) | id for monitor memory\_utilization\_forecast | | [memory\_utilization\_id](#output\_memory\_utilization\_id) | id for monitor memory\_utilization | ## Related documentation * [GCP Metrics for CloudSQL](https://cloud.google.com/monitoring/api/metrics_gcp#gcp-cloudsql) * [Datadog Useful monitors for GCP CloudSQL](https://www.datadoghq.com/blog/monitor-google-cloud-sql/)