diff --git a/cloud/azure/README.md b/cloud/azure/README.md index 5ba5600..06c0fcf 100644 --- a/cloud/azure/README.md +++ b/cloud/azure/README.md @@ -84,9 +84,9 @@ Inputs | 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 | | iothub_dropped_d2c_telemetry_egress_message | Custom message for IoT Hub dropped d2c telemetry monitor | string | `` | no | +| iothub_dropped_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Dropped limit (critical threshold) | string | `90` | no | +| iothub_dropped_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Dropped limit (warning threshold) | string | `50` | no | | iothub_dropped_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub dropped d2c telemetry monitor | map | `` | no | -| iothub_dropped_d2c_telemetry_egress_threshold_critical | D2C Telemetry Dropped limit (critical threshold) | string | `1000` | no | -| iothub_dropped_d2c_telemetry_egress_threshold_warning | D2C Telemetry Dropped limit (warning threshold) | string | `500` | no | | iothub_failed_c2d_methods_rate_message | Custom message for IoT Hub failed c2d method monitor | string | `` | no | | iothub_failed_c2d_methods_rate_silenced | Groups to mute for IoT Hub failed c2d methods monitor | map | `` | no | | iothub_failed_c2d_methods_rate_threshold_critical | C2D Methods Failed rate limit (critical threshold) | string | `90` | no | @@ -119,18 +119,14 @@ Inputs | iothub_failed_queryjobs_rate_silenced | Groups to mute for IoT Hub failed query jobs monitor | map | `` | no | | iothub_failed_queryjobs_rate_threshold_critical | QueryJobs Failed rate limit (critical threshold) | string | `90` | no | | iothub_failed_queryjobs_rate_threshold_warning | QueryJobs Failed rate limit (warning threshold) | string | `50` | no | -| iothub_fallback_d2c_telemetry_egress_message | Custom message for IoT Hub fallback d2c telemetry monitor | string | `` | no | -| iothub_fallback_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub fallback d2c telemetry monitor | map | `` | no | -| iothub_fallback_d2c_telemetry_egress_threshold_critical | D2C Telemetry Fallback limit (critical threshold) | string | `1000` | no | -| iothub_fallback_d2c_telemetry_egress_threshold_warning | D2C Telemetry Fallback limit (warning threshold) | string | `500` | no | | iothub_invalid_d2c_telemetry_egress_message | Custom message for IoT Hub invalid d2c telemetry monitor | string | `` | no | +| iothub_invalid_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Invalid limit (critical threshold) | string | `90` | no | +| iothub_invalid_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Invalid limit (warning threshold) | string | `50` | no | | iothub_invalid_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub invalid d2c telemetry monitor | map | `` | no | -| iothub_invalid_d2c_telemetry_egress_threshold_critical | D2C Telemetry Invalid limit (critical threshold) | string | `1000` | no | -| iothub_invalid_d2c_telemetry_egress_threshold_warning | D2C Telemetry Invalid limit (warning threshold) | string | `500` | no | | iothub_orphaned_d2c_telemetry_egress_message | Custom message for IoT Hub orphaned d2c telemetry monitor | string | `` | no | +| iothub_orphaned_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Orphaned limit (critical threshold) | string | `90` | no | +| iothub_orphaned_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Orphaned limit (warning threshold) | string | `50` | no | | iothub_orphaned_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub orphaned d2c telemetry monitor | map | `` | no | -| iothub_orphaned_d2c_telemetry_egress_threshold_critical | D2C Telemetry Orphaned limit (critical threshold) | string | `1000` | no | -| iothub_orphaned_d2c_telemetry_egress_threshold_warning | D2C Telemetry Orphaned limit (warning threshold) | string | `500` | no | | iothub_status_message | Custom message for IoT Hub status monitor | string | `` | no | | iothub_status_silenced | Groups to mute for IoT Hub status monitor | map | `` | no | | iothub_too_many_d2c_telemetry_ingress_nosent_message | Custom message for IoT Hub unsent d2c telemetry monitor | string | `` | no | diff --git a/cloud/azure/app-services/monitors-app_services.tf b/cloud/azure/app-services/monitors-app_services.tf index c501bdf..2bfc36d 100644 --- a/cloud/azure/app-services/monitors-app_services.tf +++ b/cloud/azure/app-services/monitors-app_services.tf @@ -13,7 +13,7 @@ resource "datadog_monitor" "appservices_response_time" { message = "${coalesce(var.response_time_message, var.message)}" query = < ${var.response_time_threshold_critical} EOF diff --git a/cloud/azure/eventhub/monitors-eventhub.tf b/cloud/azure/eventhub/monitors-eventhub.tf index c96d967..4f9f4ed 100644 --- a/cloud/azure/eventhub/monitors-eventhub.tf +++ b/cloud/azure/eventhub/monitors-eventhub.tf @@ -38,11 +38,11 @@ resource "datadog_monitor" "eventhub_failed_requests" { query = < ${var.failed_requests_rate_thresold_critical} + default( + avg:azure.eventhub_namespaces.failed_requests{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count() / + avg:azure.eventhub_namespaces.incoming_requests{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count(), + 0) * 100 + ) > ${var.failed_requests_rate_thresold_critical} EOF type = "metric alert" @@ -58,7 +58,7 @@ resource "datadog_monitor" "eventhub_failed_requests" { evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false - timeout_h = 1 + timeout_h = 0 include_tags = true locked = false require_full_window = false @@ -69,20 +69,21 @@ resource "datadog_monitor" "eventhub_failed_requests" { } resource "datadog_monitor" "eventhub_errors" { - name = "[${var.environment}] Event Hub too manny errors {{comparator}} {{#is_alert}}{{threshold}}%{{/is_alert}}{{#is_warning}}{{warn_threshold}}%{{/is_warning}} ({{value}}%)" + name = "[${var.environment}] Event Hub too many errors {{comparator}} {{#is_alert}}{{threshold}}%{{/is_alert}}{{#is_warning}}{{warn_threshold}}%{{/is_warning}} ({{value}}%)" message = "${coalesce(var.errors_rate_message, var.message)}" query = < ${var.errors_rate_thresold_critical} + default( + ( + avg:azure.eventhub_namespaces.internal_server_errors{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count() + + avg:azure.eventhub_namespaces.server_busy_errors{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count() + + avg:azure.eventhub_namespaces.other_errors{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count() + ) / ( + avg:eventhub_namespaces.incoming_requests{${data.template_file.filter.rendered}} by {resource_group,region,name}.as_count() + ), + 0) * 100 + ) > ${var.errors_rate_thresold_critical} EOF type = "metric alert" @@ -98,7 +99,7 @@ resource "datadog_monitor" "eventhub_errors" { evaluation_delay = "${var.delay}" renotify_interval = 0 notify_audit = false - timeout_h = 1 + timeout_h = 0 include_tags = true locked = false require_full_window = false diff --git a/cloud/azure/inputs.tf b/cloud/azure/inputs.tf index 9e085d1..a2b8f30 100644 --- a/cloud/azure/inputs.tf +++ b/cloud/azure/inputs.tf @@ -522,14 +522,14 @@ variable "iothub_dropped_d2c_telemetry_egress_message" { default = "" } -variable "iothub_dropped_d2c_telemetry_egress_threshold_warning" { +variable "iothub_dropped_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Dropped limit (warning threshold)" - default = 500 + default = 50 } -variable "iothub_dropped_d2c_telemetry_egress_threshold_critical" { +variable "iothub_dropped_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Dropped limit (critical threshold)" - default = 1000 + default = 90 } variable "iothub_orphaned_d2c_telemetry_egress_silenced" { @@ -544,14 +544,14 @@ variable "iothub_orphaned_d2c_telemetry_egress_message" { default = "" } -variable "iothub_orphaned_d2c_telemetry_egress_threshold_warning" { +variable "iothub_orphaned_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Orphaned limit (warning threshold)" - default = 500 + default = 50 } -variable "iothub_orphaned_d2c_telemetry_egress_threshold_critical" { +variable "iothub_orphaned_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Orphaned limit (critical threshold)" - default = 1000 + default = 90 } variable "iothub_invalid_d2c_telemetry_egress_silenced" { @@ -566,36 +566,14 @@ variable "iothub_invalid_d2c_telemetry_egress_message" { default = "" } -variable "iothub_invalid_d2c_telemetry_egress_threshold_warning" { +variable "iothub_invalid_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Invalid limit (warning threshold)" - default = 500 + default = 50 } -variable "iothub_invalid_d2c_telemetry_egress_threshold_critical" { +variable "iothub_invalid_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Invalid limit (critical threshold)" - default = 1000 -} - -variable "iothub_fallback_d2c_telemetry_egress_silenced" { - description = "Groups to mute for IoT Hub fallback d2c telemetry monitor" - type = "map" - default = {} -} - -variable "iothub_fallback_d2c_telemetry_egress_message" { - description = "Custom message for IoT Hub fallback d2c telemetry monitor" - type = "string" - default = "" -} - -variable "iothub_fallback_d2c_telemetry_egress_threshold_warning" { - description = "D2C Telemetry Fallback limit (warning threshold)" - default = 500 -} - -variable "iothub_fallback_d2c_telemetry_egress_threshold_critical" { - description = "D2C Telemetry Fallback limit (critical threshold)" - default = 1000 + default = 90 } # Azure Redis specific variables diff --git a/cloud/azure/iothubs/README.md b/cloud/azure/iothubs/README.md index 8d98368..ec006c7 100644 --- a/cloud/azure/iothubs/README.md +++ b/cloud/azure/iothubs/README.md @@ -40,9 +40,9 @@ Inputs |------|-------------|:----:|:-----:|:-----:| | delay | Delay in seconds for the metric evaluation | string | `600` | no | | dropped_d2c_telemetry_egress_message | Custom message for IoT Hub dropped d2c telemetry monitor | string | `` | no | +| dropped_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Dropped limit (critical threshold) | string | `90` | no | +| dropped_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Dropped limit (warning threshold) | string | `50` | no | | dropped_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub dropped d2c telemetry monitor | map | `` | no | -| dropped_d2c_telemetry_egress_threshold_critical | D2C Telemetry Dropped limit (critical threshold) | string | `1000` | no | -| dropped_d2c_telemetry_egress_threshold_warning | D2C Telemetry Dropped limit (warning threshold) | string | `500` | no | | environment | Architecture Environment | string | - | yes | | failed_c2d_methods_rate_message | Custom message for IoT Hub failed c2d method monitor | string | `` | no | | failed_c2d_methods_rate_silenced | Groups to mute for IoT Hub failed c2d methods monitor | map | `` | no | @@ -76,20 +76,16 @@ Inputs | failed_queryjobs_rate_silenced | Groups to mute for IoT Hub failed query jobs monitor | map | `` | no | | failed_queryjobs_rate_threshold_critical | QueryJobs Failed rate limit (critical threshold) | string | `90` | no | | failed_queryjobs_rate_threshold_warning | QueryJobs Failed rate limit (warning threshold) | string | `50` | no | -| fallback_d2c_telemetry_egress_message | Custom message for IoT Hub fallback d2c telemetry monitor | string | `` | no | -| fallback_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub fallback d2c telemetry monitor | map | `` | no | -| fallback_d2c_telemetry_egress_threshold_critical | D2C Telemetry Fallback limit (critical threshold) | string | `1000` | no | -| fallback_d2c_telemetry_egress_threshold_warning | D2C Telemetry Fallback limit (warning threshold) | string | `500` | no | | filter_tags | Tags used for filtering | string | `*` | no | | invalid_d2c_telemetry_egress_message | Custom message for IoT Hub invalid d2c telemetry monitor | string | `` | no | +| invalid_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Invalid limit (critical threshold) | string | `90` | no | +| invalid_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Invalid limit (warning threshold) | string | `50` | no | | invalid_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub invalid d2c telemetry monitor | map | `` | no | -| invalid_d2c_telemetry_egress_threshold_critical | D2C Telemetry Invalid limit (critical threshold) | string | `1000` | no | -| invalid_d2c_telemetry_egress_threshold_warning | D2C Telemetry Invalid limit (warning threshold) | string | `500` | no | | message | Message sent when an alert is triggered | string | - | yes | | orphaned_d2c_telemetry_egress_message | Custom message for IoT Hub orphaned d2c telemetry monitor | string | `` | no | +| orphaned_d2c_telemetry_egress_rate_threshold_critical | D2C Telemetry Orphaned limit (critical threshold) | string | `90` | no | +| orphaned_d2c_telemetry_egress_rate_threshold_warning | D2C Telemetry Orphaned limit (warning threshold) | string | `50` | no | | orphaned_d2c_telemetry_egress_silenced | Groups to mute for IoT Hub orphaned d2c telemetry monitor | map | `` | no | -| orphaned_d2c_telemetry_egress_threshold_critical | D2C Telemetry Orphaned limit (critical threshold) | string | `1000` | no | -| orphaned_d2c_telemetry_egress_threshold_warning | D2C Telemetry Orphaned limit (warning threshold) | string | `500` | no | | status_message | Custom message for IoT Hub status monitor | string | `` | no | | status_silenced | Groups to mute for IoT Hub status monitor | map | `` | no | | too_many_d2c_telemetry_ingress_nosent_message | Custom message for IoT Hub unsent d2c telemetry monitor | string | `` | no | diff --git a/cloud/azure/iothubs/inputs.tf b/cloud/azure/iothubs/inputs.tf index 2555636..9df407d 100644 --- a/cloud/azure/iothubs/inputs.tf +++ b/cloud/azure/iothubs/inputs.tf @@ -244,14 +244,14 @@ variable "dropped_d2c_telemetry_egress_message" { default = "" } -variable "dropped_d2c_telemetry_egress_threshold_warning" { +variable "dropped_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Dropped limit (warning threshold)" - default = 500 + default = 50 } -variable "dropped_d2c_telemetry_egress_threshold_critical" { +variable "dropped_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Dropped limit (critical threshold)" - default = 1000 + default = 90 } variable "orphaned_d2c_telemetry_egress_silenced" { @@ -266,14 +266,14 @@ variable "orphaned_d2c_telemetry_egress_message" { default = "" } -variable "orphaned_d2c_telemetry_egress_threshold_warning" { +variable "orphaned_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Orphaned limit (warning threshold)" - default = 500 + default = 50 } -variable "orphaned_d2c_telemetry_egress_threshold_critical" { +variable "orphaned_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Orphaned limit (critical threshold)" - default = 1000 + default = 90 } variable "invalid_d2c_telemetry_egress_silenced" { @@ -288,34 +288,12 @@ variable "invalid_d2c_telemetry_egress_message" { default = "" } -variable "invalid_d2c_telemetry_egress_threshold_warning" { +variable "invalid_d2c_telemetry_egress_rate_threshold_warning" { description = "D2C Telemetry Invalid limit (warning threshold)" - default = 500 + default = 50 } -variable "invalid_d2c_telemetry_egress_threshold_critical" { +variable "invalid_d2c_telemetry_egress_rate_threshold_critical" { description = "D2C Telemetry Invalid limit (critical threshold)" - default = 1000 -} - -variable "fallback_d2c_telemetry_egress_silenced" { - description = "Groups to mute for IoT Hub fallback d2c telemetry monitor" - type = "map" - default = {} -} - -variable "fallback_d2c_telemetry_egress_message" { - description = "Custom message for IoT Hub fallback d2c telemetry monitor" - type = "string" - default = "" -} - -variable "fallback_d2c_telemetry_egress_threshold_warning" { - description = "D2C Telemetry Fallback limit (warning threshold)" - default = 500 -} - -variable "fallback_d2c_telemetry_egress_threshold_critical" { - description = "D2C Telemetry Fallback limit (critical threshold)" - default = 1000 + default = 90 } diff --git a/cloud/azure/iothubs/monitors-iothubs.tf b/cloud/azure/iothubs/monitors-iothubs.tf index 006556d..c2a945b 100644 --- a/cloud/azure/iothubs/monitors-iothubs.tf +++ b/cloud/azure/iothubs/monitors-iothubs.tf @@ -336,15 +336,20 @@ resource "datadog_monitor" "too_many_d2c_telemetry_egress_dropped" { query = < ${var.dropped_d2c_telemetry_egress_threshold_critical} + avg:azure.devices_iothubs.d2c.telemetry.egress.dropped{${var.filter_tags}} by {resource_group,region,name}.as_count() / + (avg:azure.devices_iothubs.d2c.telemetry.egress.dropped{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.orphaned{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.invalid{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.success{${var.filter_tags}} by {resource_group,region,name}.as_count()) + * 100 + ) > ${var.dropped_d2c_telemetry_egress_rate_threshold_critical} EOF type = "metric alert" thresholds { - warning = "${var.dropped_d2c_telemetry_egress_threshold_warning}" - critical = "${var.dropped_d2c_telemetry_egress_threshold_critical}" + warning = "${var.dropped_d2c_telemetry_egress_rate_threshold_warning}" + critical = "${var.dropped_d2c_telemetry_egress_rate_threshold_critical}" } silenced = "${var.dropped_d2c_telemetry_egress_silenced}" @@ -369,15 +374,20 @@ resource "datadog_monitor" "too_many_d2c_telemetry_egress_orphaned" { query = < ${var.orphaned_d2c_telemetry_egress_threshold_critical} + avg:azure.devices_iothubs.d2c.telemetry.egress.orphaned{${var.filter_tags}} by {resource_group,region,name}.as_count() / + (avg:azure.devices_iothubs.d2c.telemetry.egress.dropped{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.orphaned{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.invalid{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.success{${var.filter_tags}} by {resource_group,region,name}.as_count()) + * 100 + ) > ${var.orphaned_d2c_telemetry_egress_rate_threshold_critical} EOF type = "metric alert" thresholds { - warning = "${var.orphaned_d2c_telemetry_egress_threshold_warning}" - critical = "${var.orphaned_d2c_telemetry_egress_threshold_critical}" + warning = "${var.orphaned_d2c_telemetry_egress_rate_threshold_warning}" + critical = "${var.orphaned_d2c_telemetry_egress_rate_threshold_critical}" } silenced = "${var.orphaned_d2c_telemetry_egress_silenced}" @@ -402,15 +412,20 @@ resource "datadog_monitor" "too_many_d2c_telemetry_egress_invalid" { query = < ${var.invalid_d2c_telemetry_egress_threshold_critical} + avg:azure.devices_iothubs.d2c.telemetry.egress.invalid{${var.filter_tags}} by {resource_group,region,name}.as_count() / + (avg:azure.devices_iothubs.d2c.telemetry.egress.dropped{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.orphaned{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.invalid{${var.filter_tags}} by {resource_group,region,name}.as_count() + + avg:azure.devices_iothubs.d2c.telemetry.egress.success{${var.filter_tags}} by {resource_group,region,name}.as_count()) + * 100 + ) > ${var.invalid_d2c_telemetry_egress_rate_threshold_critical} EOF type = "metric alert" thresholds { - warning = "${var.invalid_d2c_telemetry_egress_threshold_warning}" - critical = "${var.invalid_d2c_telemetry_egress_threshold_critical}" + warning = "${var.invalid_d2c_telemetry_egress_rate_threshold_warning}" + critical = "${var.invalid_d2c_telemetry_egress_rate_threshold_critical}" } silenced = "${var.invalid_d2c_telemetry_egress_silenced}" @@ -429,39 +444,6 @@ resource "datadog_monitor" "too_many_d2c_telemetry_egress_invalid" { tags = ["env:${var.environment}", "resource:iothub", "team:azure", "provider:azure"] } -resource "datadog_monitor" "too_many_d2c_telemetry_egress_fallback" { - name = "[${var.environment}] IOT Hub Too many d2c telemetry egress fallback {{comparator}} {{#is_alert}}{{threshold}}{{/is_alert}}{{#is_warning}}{{warn_threshold}}{{/is_warning}} ({{value}})" - message = "${coalesce(var.fallback_d2c_telemetry_egress_message, var.message)}" - - query = < ${var.fallback_d2c_telemetry_egress_threshold_critical} - EOF - - type = "metric alert" - - thresholds { - warning = "${var.fallback_d2c_telemetry_egress_threshold_warning}" - critical = "${var.fallback_d2c_telemetry_egress_threshold_critical}" - } - - silenced = "${var.fallback_d2c_telemetry_egress_silenced}" - - notify_no_data = false - evaluation_delay = "${var.delay}" - renotify_interval = 0 - notify_audit = false - timeout_h = 1 - include_tags = true - locked = false - require_full_window = false - new_host_delay = "${var.delay}" - no_data_timeframe = 20 - - tags = ["env:${var.environment}", "resource:iothub", "team:azure", "provider:azure"] -} - resource "datadog_monitor" "too_many_d2c_telemetry_ingress_nosent" { name = "[${var.environment}] IOT Hub Too many d2c telemetry ingress not sent {{comparator}} {{#is_alert}}{{threshold}}{{/is_alert}}{{#is_warning}}{{warn_threshold}}{{/is_warning}} ({{value}})" message = "${coalesce(var.too_many_d2c_telemetry_ingress_nosent_message, var.message)}" diff --git a/cloud/azure/monitors.tf b/cloud/azure/monitors.tf index 61049a0..33686d0 100644 --- a/cloud/azure/monitors.tf +++ b/cloud/azure/monitors.tf @@ -91,59 +91,55 @@ module "iothub" { filter_tags = "${var.non_taggable_filter_tags}" - status_silenced = "${var.iothub_status_silenced}" - status_message = "${var.iothub_status_message}" - total_devices_silenced = "${var.iothub_total_devices_silenced}" - total_devices_message = "${var.iothub_total_devices_message}" - too_many_d2c_telemetry_ingress_nosent_silenced = "${var.iothub_too_many_d2c_telemetry_ingress_nosent_silenced}" - dropped_d2c_telemetry_egress_silenced = "${var.iothub_dropped_d2c_telemetry_egress_silenced}" - dropped_d2c_telemetry_egress_message = "${var.iothub_dropped_d2c_telemetry_egress_message}" - dropped_d2c_telemetry_egress_threshold_critical = "${var.iothub_dropped_d2c_telemetry_egress_threshold_critical}" - dropped_d2c_telemetry_egress_threshold_warning = "${var.iothub_dropped_d2c_telemetry_egress_threshold_warning}" - failed_c2d_methods_rate_silenced = "${var.iothub_failed_c2d_methods_rate_silenced}" - failed_c2d_methods_rate_message = "${var.iothub_failed_c2d_methods_rate_message}" - failed_c2d_methods_rate_threshold_critical = "${var.iothub_failed_c2d_methods_rate_threshold_critical}" - failed_c2d_methods_rate_threshold_warning = "${var.iothub_failed_c2d_methods_rate_threshold_warning}" - failed_c2d_twin_read_rate_silenced = "${var.iothub_failed_c2d_twin_read_rate_silenced}" - failed_c2d_twin_read_rate_message = "${var.iothub_failed_c2d_twin_read_rate_message}" - failed_c2d_twin_read_rate_threshold_critical = "${var.iothub_failed_c2d_twin_read_rate_threshold_critical}" - failed_c2d_twin_read_rate_threshold_warning = "${var.iothub_failed_c2d_twin_read_rate_threshold_warning}" - failed_c2d_twin_update_rate_silenced = "${var.iothub_failed_c2d_twin_update_rate_silenced}" - failed_c2d_twin_update_rate_message = "${var.iothub_failed_c2d_twin_update_rate_message}" - failed_c2d_twin_update_rate_threshold_critical = "${var.iothub_failed_c2d_twin_update_rate_threshold_critical}" - failed_c2d_twin_update_rate_threshold_warning = "${var.iothub_failed_c2d_twin_update_rate_threshold_warning}" - failed_d2c_twin_read_rate_silenced = "${var.iothub_failed_d2c_twin_read_rate_silenced}" - failed_d2c_twin_read_rate_message = "${var.iothub_failed_d2c_twin_read_rate_message}" - failed_d2c_twin_read_rate_threshold_critical = "${var.iothub_failed_d2c_twin_read_rate_threshold_critical}" - failed_d2c_twin_read_rate_threshold_warning = "${var.iothub_failed_d2c_twin_read_rate_threshold_warning}" - failed_d2c_twin_update_rate_silenced = "${var.iothub_failed_d2c_twin_update_rate_silenced}" - failed_d2c_twin_update_rate_message = "${var.iothub_failed_d2c_twin_update_rate_message}" - failed_d2c_twin_update_rate_threshold_critical = "${var.iothub_failed_d2c_twin_update_rate_threshold_critical}" - failed_d2c_twin_update_rate_threshold_warning = "${var.iothub_failed_d2c_twin_update_rate_threshold_warning}" - failed_jobs_rate_silenced = "${var.iothub_failed_jobs_rate_silenced}" - failed_jobs_rate_message = "${var.iothub_failed_jobs_rate_message}" - failed_jobs_rate_threshold_critical = "${var.iothub_failed_jobs_rate_threshold_critical}" - failed_jobs_rate_threshold_warning = "${var.iothub_failed_jobs_rate_threshold_warning}" - failed_listjobs_rate_silenced = "${var.iothub_failed_listjobs_rate_silenced}" - failed_listjobs_rate_message = "${var.iothub_failed_listjobs_rate_message}" - failed_listjobs_rate_threshold_critical = "${var.iothub_failed_listjobs_rate_threshold_critical}" - failed_listjobs_rate_threshold_warning = "${var.iothub_failed_listjobs_rate_threshold_warning}" - failed_queryjobs_rate_silenced = "${var.iothub_failed_queryjobs_rate_silenced}" - failed_queryjobs_rate_message = "${var.iothub_failed_queryjobs_rate_message}" - failed_queryjobs_rate_threshold_critical = "${var.iothub_failed_queryjobs_rate_threshold_critical}" - failed_queryjobs_rate_threshold_warning = "${var.iothub_failed_queryjobs_rate_threshold_warning}" - fallback_d2c_telemetry_egress_silenced = "${var.iothub_fallback_d2c_telemetry_egress_silenced}" - fallback_d2c_telemetry_egress_message = "${var.iothub_fallback_d2c_telemetry_egress_message}" - fallback_d2c_telemetry_egress_threshold_critical = "${var.iothub_fallback_d2c_telemetry_egress_threshold_critical}" - fallback_d2c_telemetry_egress_threshold_warning = "${var.iothub_fallback_d2c_telemetry_egress_threshold_warning}" - invalid_d2c_telemetry_egress_silenced = "${var.iothub_invalid_d2c_telemetry_egress_silenced}" - invalid_d2c_telemetry_egress_message = "${var.iothub_invalid_d2c_telemetry_egress_message}" - invalid_d2c_telemetry_egress_threshold_critical = "${var.iothub_invalid_d2c_telemetry_egress_threshold_critical}" - invalid_d2c_telemetry_egress_threshold_warning = "${var.iothub_invalid_d2c_telemetry_egress_threshold_warning}" - orphaned_d2c_telemetry_egress_silenced = "${var.iothub_orphaned_d2c_telemetry_egress_silenced}" - orphaned_d2c_telemetry_egress_message = "${var.iothub_orphaned_d2c_telemetry_egress_message}" - orphaned_d2c_telemetry_egress_threshold_critical = "${var.iothub_orphaned_d2c_telemetry_egress_threshold_critical}" - orphaned_d2c_telemetry_egress_threshold_warning = "${var.iothub_orphaned_d2c_telemetry_egress_threshold_warning}" + status_silenced = "${var.iothub_status_silenced}" + status_message = "${var.iothub_status_message}" + total_devices_silenced = "${var.iothub_total_devices_silenced}" + total_devices_message = "${var.iothub_total_devices_message}" + too_many_d2c_telemetry_ingress_nosent_silenced = "${var.iothub_too_many_d2c_telemetry_ingress_nosent_silenced}" + dropped_d2c_telemetry_egress_silenced = "${var.iothub_dropped_d2c_telemetry_egress_silenced}" + dropped_d2c_telemetry_egress_message = "${var.iothub_dropped_d2c_telemetry_egress_message}" + dropped_d2c_telemetry_egress_rate_threshold_critical = "${var.iothub_dropped_d2c_telemetry_egress_rate_threshold_critical}" + dropped_d2c_telemetry_egress_rate_threshold_warning = "${var.iothub_dropped_d2c_telemetry_egress_rate_threshold_warning}" + failed_c2d_methods_rate_silenced = "${var.iothub_failed_c2d_methods_rate_silenced}" + failed_c2d_methods_rate_message = "${var.iothub_failed_c2d_methods_rate_message}" + failed_c2d_methods_rate_threshold_critical = "${var.iothub_failed_c2d_methods_rate_threshold_critical}" + failed_c2d_methods_rate_threshold_warning = "${var.iothub_failed_c2d_methods_rate_threshold_warning}" + failed_c2d_twin_read_rate_silenced = "${var.iothub_failed_c2d_twin_read_rate_silenced}" + failed_c2d_twin_read_rate_message = "${var.iothub_failed_c2d_twin_read_rate_message}" + failed_c2d_twin_read_rate_threshold_critical = "${var.iothub_failed_c2d_twin_read_rate_threshold_critical}" + failed_c2d_twin_read_rate_threshold_warning = "${var.iothub_failed_c2d_twin_read_rate_threshold_warning}" + failed_c2d_twin_update_rate_silenced = "${var.iothub_failed_c2d_twin_update_rate_silenced}" + failed_c2d_twin_update_rate_message = "${var.iothub_failed_c2d_twin_update_rate_message}" + failed_c2d_twin_update_rate_threshold_critical = "${var.iothub_failed_c2d_twin_update_rate_threshold_critical}" + failed_c2d_twin_update_rate_threshold_warning = "${var.iothub_failed_c2d_twin_update_rate_threshold_warning}" + failed_d2c_twin_read_rate_silenced = "${var.iothub_failed_d2c_twin_read_rate_silenced}" + failed_d2c_twin_read_rate_message = "${var.iothub_failed_d2c_twin_read_rate_message}" + failed_d2c_twin_read_rate_threshold_critical = "${var.iothub_failed_d2c_twin_read_rate_threshold_critical}" + failed_d2c_twin_read_rate_threshold_warning = "${var.iothub_failed_d2c_twin_read_rate_threshold_warning}" + failed_d2c_twin_update_rate_silenced = "${var.iothub_failed_d2c_twin_update_rate_silenced}" + failed_d2c_twin_update_rate_message = "${var.iothub_failed_d2c_twin_update_rate_message}" + failed_d2c_twin_update_rate_threshold_critical = "${var.iothub_failed_d2c_twin_update_rate_threshold_critical}" + failed_d2c_twin_update_rate_threshold_warning = "${var.iothub_failed_d2c_twin_update_rate_threshold_warning}" + failed_jobs_rate_silenced = "${var.iothub_failed_jobs_rate_silenced}" + failed_jobs_rate_message = "${var.iothub_failed_jobs_rate_message}" + failed_jobs_rate_threshold_critical = "${var.iothub_failed_jobs_rate_threshold_critical}" + failed_jobs_rate_threshold_warning = "${var.iothub_failed_jobs_rate_threshold_warning}" + failed_listjobs_rate_silenced = "${var.iothub_failed_listjobs_rate_silenced}" + failed_listjobs_rate_message = "${var.iothub_failed_listjobs_rate_message}" + failed_listjobs_rate_threshold_critical = "${var.iothub_failed_listjobs_rate_threshold_critical}" + failed_listjobs_rate_threshold_warning = "${var.iothub_failed_listjobs_rate_threshold_warning}" + failed_queryjobs_rate_silenced = "${var.iothub_failed_queryjobs_rate_silenced}" + failed_queryjobs_rate_message = "${var.iothub_failed_queryjobs_rate_message}" + failed_queryjobs_rate_threshold_critical = "${var.iothub_failed_queryjobs_rate_threshold_critical}" + failed_queryjobs_rate_threshold_warning = "${var.iothub_failed_queryjobs_rate_threshold_warning}" + invalid_d2c_telemetry_egress_silenced = "${var.iothub_invalid_d2c_telemetry_egress_silenced}" + invalid_d2c_telemetry_egress_message = "${var.iothub_invalid_d2c_telemetry_egress_message}" + invalid_d2c_telemetry_egress_rate_threshold_critical = "${var.iothub_invalid_d2c_telemetry_egress_rate_threshold_critical}" + invalid_d2c_telemetry_egress_rate_threshold_warning = "${var.iothub_invalid_d2c_telemetry_egress_rate_threshold_warning}" + orphaned_d2c_telemetry_egress_silenced = "${var.iothub_orphaned_d2c_telemetry_egress_silenced}" + orphaned_d2c_telemetry_egress_message = "${var.iothub_orphaned_d2c_telemetry_egress_message}" + orphaned_d2c_telemetry_egress_rate_threshold_critical = "${var.iothub_orphaned_d2c_telemetry_egress_rate_threshold_critical}" + orphaned_d2c_telemetry_egress_rate_threshold_warning = "${var.iothub_orphaned_d2c_telemetry_egress_rate_threshold_warning}" } module "redis" {