MON-224 forecast monitors generalized

This commit is contained in:
Rafael Romero Carmona 2018-07-30 13:29:58 +02:00 committed by Quentin Manfroi
parent 5293e24faf
commit 6cd1a0a553
3 changed files with 95 additions and 23 deletions

View File

@ -37,13 +37,19 @@ Creates DataDog monitors with the following checks:
| delay | Delay in seconds for the metric evaluation | string | `900` | no | | delay | Delay in seconds for the metric evaluation | string | `900` | no |
| disk_utilization_enabled | Whether or not to create the monitor | string | `true` | no | | disk_utilization_enabled | Whether or not to create the monitor | string | `true` | no |
| disk_utilization_extra_tags | Extra tags for GCP Cloud SQL CPU Utilization monitor | list | `<list>` | no | | disk_utilization_extra_tags | Extra tags for GCP Cloud SQL CPU Utilization monitor | list | `<list>` | no |
| disk_utilization_forecast_algorithm | Algorithm for the Disk Utilization Forecast monitor | string | `linear` | no |
| disk_utilization_forecast_deviations | Deviations for the Disk Utilization Forecast monitor | string | `1` | no |
| disk_utilization_forecast_enabled | Whether or not to create the monitor | string | `true` | no | | disk_utilization_forecast_enabled | Whether or not to create the monitor | string | `true` | no |
| disk_utilization_forecast_extra_tags | Extra tags for GCP Cloud SQL CPU Utilization monitor | list | `<list>` | no | | disk_utilization_forecast_extra_tags | Extra tags for GCP Cloud SQL Disk Utilization Forecast monitor | list | `<list>` | no |
| disk_utilization_forecast_message | Custom message for the Disk Utilization monitor | string | `` | no | | disk_utilization_forecast_interval | Interval for the Disk Utilization Forecast monitor | string | `60m` | no |
| disk_utilization_forecast_silenced | Groups to mute for GCP Cloud SQL Disk Utilization monitor | map | `<map>` | no | | disk_utilization_forecast_linear_history | History for the Disk Utilization Forecast monitor | string | `3d` | no |
| disk_utilization_forecast_threshold_critical | Disk Utilization in percentage (critical threshold) | string | `80` | no | | disk_utilization_forecast_linear_model | Model for the Disk Utilization Forecast monitor | string | `default` | no |
| disk_utilization_forecast_threshold_critical_recovery | Disk Utilization in percentage (recovery threshold) | string | `72` | no | | disk_utilization_forecast_message | Custom message for the Disk Utilization Forecast monitor | string | `` | no |
| disk_utilization_forecast_timeframe | Timeframe for the Disk Utilization monitor | string | `next_1w` | no | | disk_utilization_forecast_seasonal_seasonality | Seasonality for the Disk Utilization Forecast monitor | string | `weekly` | no |
| disk_utilization_forecast_silenced | Groups to mute for GCP Cloud SQL Disk Utilization Forecast monitor | map | `<map>` | no |
| disk_utilization_forecast_threshold_critical | Disk Utilization Forecast in percentage (critical threshold) | string | `80` | no |
| disk_utilization_forecast_threshold_critical_recovery | Disk Utilization Forecast in percentage (recovery threshold) | string | `72` | no |
| disk_utilization_forecast_timeframe | Timeframe for the Disk Utilization Forecast monitor | string | `next_1w` | no |
| disk_utilization_message | Custom message for the Disk Utilization monitor | string | `` | no | | disk_utilization_message | Custom message for the Disk Utilization monitor | string | `` | no |
| disk_utilization_silenced | Groups to mute for GCP Cloud SQL Disk Utilization monitor | map | `<map>` | no | | disk_utilization_silenced | Groups to mute for GCP Cloud SQL Disk Utilization monitor | map | `<map>` | no |
| disk_utilization_threshold_critical | Disk Utilization in percentage (critical threshold) | string | `90` | no | | disk_utilization_threshold_critical | Disk Utilization in percentage (critical threshold) | string | `90` | no |
@ -60,11 +66,15 @@ Creates DataDog monitors with the following checks:
| filter_tags_use_defaults | Use default filter tags convention | string | `true` | no | | filter_tags_use_defaults | Use default filter tags convention | string | `true` | no |
| memory_utilization_enabled | Whether or not to create the monitor | string | `true` | no | | memory_utilization_enabled | Whether or not to create the monitor | string | `true` | no |
| memory_utilization_extra_tags | Extra tags for GCP Cloud SQL Memory Utilization monitor | list | `<list>` | no | | memory_utilization_extra_tags | Extra tags for GCP Cloud SQL Memory Utilization monitor | list | `<list>` | no |
| memory_utilization_forecast_algorithm | Algorithm for the Memory Utilization Forecast monitor | string | `linear` | no |
| memory_utilization_forecast_deviations | Deviations for the Memory Utilization Forecast monitor | string | `1` | no |
| memory_utilization_forecast_enabled | Whether or not to create the monitor | string | `true` | no | | memory_utilization_forecast_enabled | Whether or not to create the monitor | string | `true` | no |
| memory_utilization_forecast_extra_tags | Extra tags for GCP Cloud SQL Memory Utilization Forecast monitor | list | `<list>` | no | | memory_utilization_forecast_extra_tags | Extra tags for GCP Cloud SQL Memory Utilization Forecast monitor | list | `<list>` | no |
| memory_utilization_forecast_history | History for the Memory Utilization Forecast monitor | string | `12h` | no |
| memory_utilization_forecast_interval | Interval for the Memory Utilization Forecast monitor | string | `30m` | no | | memory_utilization_forecast_interval | Interval for the Memory Utilization Forecast monitor | string | `30m` | no |
| memory_utilization_forecast_linear_history | History for the Memory Utilization Forecast monitor | string | `12h` | no |
| memory_utilization_forecast_linear_model | Model for the Memory Utilization Forecast monitor | string | `default` | no |
| memory_utilization_forecast_message | Custom message for the Memory Utilization Forecast monitor | string | `` | no | | memory_utilization_forecast_message | Custom message for the Memory Utilization Forecast monitor | string | `` | no |
| memory_utilization_forecast_seasonal_seasonality | Seasonality for the Memory Utilization Forecast monitor | string | `weekly` | no |
| memory_utilization_forecast_silenced | Groups to mute for GCP Cloud SQL Memory Utilization Forecast monitor | map | `<map>` | no | | memory_utilization_forecast_silenced | Groups to mute for GCP Cloud SQL Memory Utilization Forecast monitor | map | `<map>` | no |
| memory_utilization_forecast_threshold_critical | Memory Utilization Forecast in percentage (warning threshold) | string | `90` | no | | memory_utilization_forecast_threshold_critical | Memory Utilization Forecast in percentage (warning threshold) | string | `90` | no |
| memory_utilization_forecast_threshold_critical_recovery | Memory Utilization Forecast in percentage (recovery threshold) | string | `81` | no | | memory_utilization_forecast_threshold_critical_recovery | Memory Utilization Forecast in percentage (recovery threshold) | string | `81` | no |

View File

@ -133,37 +133,73 @@ variable "disk_utilization_forecast_enabled" {
} }
variable "disk_utilization_forecast_message" { variable "disk_utilization_forecast_message" {
description = "Custom message for the Disk Utilization monitor" description = "Custom message for the Disk Utilization Forecast monitor"
type = "string" type = "string"
default = "" default = ""
} }
variable "disk_utilization_forecast_timeframe" { variable "disk_utilization_forecast_timeframe" {
description = "Timeframe for the Disk Utilization monitor" description = "Timeframe for the Disk Utilization Forecast monitor"
type = "string" type = "string"
default = "next_1w" default = "next_1w"
} }
variable "disk_utilization_forecast_algorithm" {
description = "Algorithm for the Disk Utilization Forecast monitor"
type = "string"
default = "linear"
}
variable "disk_utilization_forecast_deviations" {
description = "Deviations for the Disk Utilization Forecast monitor"
type = "string"
default = 1
}
variable "disk_utilization_forecast_interval" {
description = "Interval for the Disk Utilization Forecast monitor"
type = "string"
default = "60m"
}
variable "disk_utilization_forecast_linear_history" {
description = "History for the Disk Utilization Forecast monitor"
type = "string"
default = "3d"
}
variable "disk_utilization_forecast_linear_model" {
description = "Model for the Disk Utilization Forecast monitor"
type = "string"
default = "default"
}
variable "disk_utilization_forecast_seasonal_seasonality" {
description = "Seasonality for the Disk Utilization Forecast monitor"
type = "string"
default = "weekly"
}
variable "disk_utilization_forecast_threshold_critical" { variable "disk_utilization_forecast_threshold_critical" {
description = "Disk Utilization in percentage (critical threshold)" description = "Disk Utilization Forecast in percentage (critical threshold)"
type = "string" type = "string"
default = 80 default = 80
} }
variable "disk_utilization_forecast_threshold_critical_recovery" { variable "disk_utilization_forecast_threshold_critical_recovery" {
description = "Disk Utilization in percentage (recovery threshold)" description = "Disk Utilization Forecast in percentage (recovery threshold)"
type = "string" type = "string"
default = 72 default = 72
} }
variable "disk_utilization_forecast_silenced" { variable "disk_utilization_forecast_silenced" {
description = "Groups to mute for GCP Cloud SQL Disk Utilization monitor" description = "Groups to mute for GCP Cloud SQL Disk Utilization Forecast monitor"
type = "map" type = "map"
default = {} default = {}
} }
variable "disk_utilization_forecast_extra_tags" { variable "disk_utilization_forecast_extra_tags" {
description = "Extra tags for GCP Cloud SQL CPU Utilization monitor" description = "Extra tags for GCP Cloud SQL Disk Utilization Forecast monitor"
type = "list" type = "list"
default = [] default = []
} }
@ -228,16 +264,42 @@ variable "memory_utilization_forecast_timeframe" {
default = "next_3d" default = "next_3d"
} }
variable "memory_utilization_forecast_algorithm" {
description = "Algorithm for the Memory Utilization Forecast monitor"
type = "string"
default = "linear"
}
variable "memory_utilization_forecast_deviations" {
description = "Deviations for the Memory Utilization Forecast monitor"
type = "string"
default = 1
}
variable "memory_utilization_forecast_interval" { variable "memory_utilization_forecast_interval" {
description = "Interval for the Memory Utilization Forecast monitor" description = "Interval for the Memory Utilization Forecast monitor"
type = "string"
default = "30m" default = "30m"
} }
variable "memory_utilization_forecast_history" { variable "memory_utilization_forecast_linear_history" {
description = "History for the Memory Utilization Forecast monitor" description = "History for the Memory Utilization Forecast monitor"
type = "string"
default = "12h" default = "12h"
} }
variable "memory_utilization_forecast_linear_model" {
description = "Model for the Memory Utilization Forecast monitor"
type = "string"
default = "default"
}
variable "memory_utilization_forecast_seasonal_seasonality" {
description = "Seasonality for the Memory Utilization Forecast monitor"
type = "string"
default = "weekly"
}
variable "memory_utilization_forecast_threshold_critical" { variable "memory_utilization_forecast_threshold_critical" {
description = "Memory Utilization Forecast in percentage (warning threshold)" description = "Memory Utilization Forecast in percentage (warning threshold)"
default = 90 default = 90

View File

@ -120,11 +120,11 @@ resource "datadog_monitor" "disk_utilization_forecast" {
max(${var.disk_utilization_forecast_timeframe}): max(${var.disk_utilization_forecast_timeframe}):
forecast( forecast(
avg:gcp.cloudsql.database.disk.utilization{${data.template_file.filter.rendered}} by {database_id} * 100, avg:gcp.cloudsql.database.disk.utilization{${data.template_file.filter.rendered}} by {database_id} * 100,
'linear', '${var.disk_utilization_forecast_algorithm}',
1, ${var.disk_utilization_forecast_deviations},
interval='60m', interval='${var.disk_utilization_forecast_interval}',
history='3d', ${var.disk_utilization_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.disk_utilization_forecast_linear_history, var.disk_utilization_forecast_linear_model): ""}
model='default' ${var.disk_utilization_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.disk_utilization_forecast_seasonal_seasonality): ""}
) )
>= ${var.disk_utilization_forecast_threshold_critical} >= ${var.disk_utilization_forecast_threshold_critical}
EOF EOF
@ -219,11 +219,11 @@ resource "datadog_monitor" "memory_utilization_forecast" {
max(${var.memory_utilization_forecast_timeframe}): max(${var.memory_utilization_forecast_timeframe}):
forecast( forecast(
avg:gcp.cloudsql.database.memory.utilization{${data.template_file.filter.rendered}} by {database_id} * 100, avg:gcp.cloudsql.database.memory.utilization{${data.template_file.filter.rendered}} by {database_id} * 100,
'linear', '${var.memory_utilization_forecast_algorithm}',
1, ${var.memory_utilization_forecast_deviations},
interval='${var.memory_utilization_forecast_interval}', interval='${var.memory_utilization_forecast_interval}',
history='${var.memory_utilization_forecast_history}', ${var.memory_utilization_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.memory_utilization_forecast_linear_history, var.memory_utilization_forecast_linear_model): ""}
model='default' ${var.memory_utilization_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.memory_utilization_forecast_seasonal_seasonality): ""}
) )
>= ${var.memory_utilization_forecast_threshold_critical} >= ${var.memory_utilization_forecast_threshold_critical}
EOF EOF