MON-316 auto update

This commit is contained in:
Quentin Manfroi 2018-09-27 17:26:41 +02:00
parent 86aba7c838
commit 83b66ef3df
4 changed files with 62 additions and 85 deletions

View File

@ -0,0 +1,61 @@
# CLOUD AZURE SERVERFARMS DataDog monitors
## How to use this module
```
module "datadog-monitors-cloud-azure-serverfarms" {
source = "git::ssh://git@bitbucket.org/morea/terraform.feature.datadog.git//cloud/azure/serverfarms?ref={revision}"
environment = "${var.environment}"
message = "${module.datadog-message-alerting.alerting-message}"
}
```
## Purpose
Creates DataDog monitors with the following checks:
- Serverfarm {{name}} CPU percentage is too high
- Serverfarm {{name}} CPU percentage is too high
- Serverfarm {{name}} is down
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|:----:|:-----:|:-----:|
| cpu_percentage_enabled | Flag to enable the serverfarms cpu_percentage monitor | string | `true` | no |
| cpu_percentage_extra_tags | Extra tags for Redis cpu_percentage monitor | list | `[]` | no |
| cpu_percentage_message | Custom message for serverfarm cpu_percentage monitor | string | - | yes |
| cpu_percentage_silenced | Groups to mute for serverfarm cpu_percentage monitor | map | `{}` | no |
| cpu_percentage_time_aggregator | Monitor aggregator for serverfarms cpu_percentage [available values: min, max or avg] | string | `max` | no |
| cpu_percentage_timeframe | Monitor timeframe for serverfarms cpu_percentage [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no |
| environment | Architecture environment | string | - | yes |
| evaluation_delay | Delay in seconds for the metric evaluation | string | `900` | no |
| filter_tags_custom | Tags used for custom filtering when filter_tags_use_defaults is false | string | `*` | no |
| filter_tags_use_defaults | Use default filter tags convention | string | `true` | no |
| memory_percentage_enabled | Flag to enable the serverfarms memory_percentage monitor | string | `true` | no |
| memory_percentage_extra_tags | Extra tags for Redis memory_percentage monitor | list | `[]` | no |
| memory_percentage_message | Custom message for serverfarm memory_percentage monitor | string | - | yes |
| memory_percentage_silenced | Groups to mute for serverfarm memory_percentage monitor | map | `{}` | no |
| memory_percentage_time_aggregator | Monitor aggregator for serverfarms memory_percentage [available values: min, max or avg] | string | `max` | no |
| memory_percentage_timeframe | Monitor timeframe for serverfarms memory_percentage [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no |
| message | Message sent when a Redis monitor is triggered | string | - | yes |
| new_host_delay | Delay in seconds before monitor new resource | string | `300` | no |
| status_enabled | Flag to enable the serverfarms status monitor | string | `true` | no |
| status_extra_tags | Extra tags for Redis status monitor | list | `[]` | no |
| status_message | Custom message for serverfarm status monitor | string | - | yes |
| status_silenced | Groups to mute for serverfarm status monitor | map | `{}` | no |
| status_time_aggregator | Monitor aggregator for serverfarms status [available values: min, max or avg] | string | `max` | no |
| status_timeframe | Monitor timeframe for serverfarms status [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | string | `last_5m` | no |
## Outputs
| Name | Description |
|------|-------------|
| cpu_percentage_id | id for monitor cpu_percentage |
| memory_percentage_id | id for monitor memory_percentage |
| status_id | id for monitor status |
## Related documentation

View File

@ -2,7 +2,7 @@ module "filter-tags" {
source = "../../../common/filter-tags"
environment = "${var.environment}"
resource = "redis"
resource = "serverfarms"
filter_tags_use_defaults = "${var.filter_tags_use_defaults}"
filter_tags_custom = "${var.filter_tags_custom}"
}

View File

@ -1,83 +0,0 @@
resource "datadog_monitor" "status" {
count = "${var.status_enabled ? 1 : 0}"
name = "[${var.environment} Serverfarm {{name}} is down]"
message = "${coalesce(var.status_message, var.message)}"
query = <<EOF
${var.status_time_aggregator}(${var.status_timeframe}): (
avg:azure.web_serverfarms.status${module.filter-tags.query_alert} by {resource_group,region,name}
) != 1
EOF
type = "metric alert"
silenced = "${var.status_silenced}"
notify_no_data = true
evaluation_delay = "${var.evaluation_delay}"
renotify_interval = 0
notify_audit = false
timeout_h = 0
include_tags = true
locked = false
require_full_window = false
new_host_delay = "${var.new_host_delay}"
tags = ["env:${var.environment}", "type:cloud", "provider:azure", "resource:serverfarms", "team:claranet", "created-by:terraform", "${var.status_extra_tags}"]
}
resource "datadog_monitor" "cpu_percentage" {
count = "${var.cpu_percentage_enabled ? 1 : 0}"
name = "[${var.environment}] Serverfarm {{name}} CPU percentage is too high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}"
message = "${coalesce(var.cpu_percentage_message, var.message)}"
query = <<EOF
${var.cpu_percentage_time_aggregator}(${var.cpu_percentage_timeframe}): (
avg:azure.web_serverfarms.cpu_percentage${module.filter-tags.query_alert} by {resource_group,region,name}
) != 1
EOF
type = "metric alert"
silenced = "${var.cpu_percentage_silenced}"
notify_no_data = true
evaluation_delay = "${var.evaluation_delay}"
renotify_interval = 0
notify_audit = false
timeout_h = 0
include_tags = true
locked = false
require_full_window = false
new_host_delay = "${var.new_host_delay}"
tags = ["env:${var.environment}", "type:cloud", "provider:azure", "resource:serverfarms", "team:claranet", "created-by:terraform", "${var.cpu_percentage_extra_tags}"]
}
resource "datadog_monitor" "memory_percentage" {
count = "${var.memory_percentage_enabled ? 1 : 0}"
name = "[${var.environment}] Serverfarm {{name}} CPU percentage is too high {{#is_alert}}{{{comparator}}} {{threshold}}% ({{value}}%){{/is_alert}}{{#is_warning}}{{{comparator}}} {{warn_threshold}}% ({{value}}%){{/is_warning}}"
message = "${coalesce(var.memory_percentage_message, var.message)}"
query = <<EOF
${var.memory_percentage_time_aggregator}(${var.memory_percentage_timeframe}): (
avg:azure.web_serverfarms.memory_percentage${module.filter-tags.query_alert} by {resource_group,region,name}
) != 1
EOF
type = "metric alert"
silenced = "${var.memory_percentage_silenced}"
notify_no_data = true
evaluation_delay = "${var.evaluation_delay}"
renotify_interval = 0
notify_audit = false
timeout_h = 0
include_tags = true
locked = false
require_full_window = false
new_host_delay = "${var.new_host_delay}"
tags = ["env:${var.environment}", "type:cloud", "provider:azure", "resource:serverfarms", "team:claranet", "created-by:terraform", "${var.memory_percentage_extra_tags}"]
}

View File

@ -12,4 +12,3 @@ output "memory_percentage_id" {
description = "id for monitor memory_percentage"
value = "${datadog_monitor.memory_percentage.*.id}"
}