diff --git a/infrastructure/modules/infra/alerts.tf b/infrastructure/modules/infra/alerts.tf new file mode 100644 index 000000000..fafc3c5b1 --- /dev/null +++ b/infrastructure/modules/infra/alerts.tf @@ -0,0 +1,41 @@ +module "service_health_alert" { + source = "../dtos-devops-templates/infrastructure/modules/monitor-activity-log-alert" + + name = "service-health-alerts-${var.app_short_name}-${var.environment}" + location = "global" + resource_group_name = azurerm_resource_group.main.name + description = "Azure Service Health alert for services impacting ${var.app_short_name} in ${var.environment}" + + scopes = [data.azurerm_subscription.current.id] + + criteria = { + category = "ServiceHealth" + level = null + + service_health = { + events = ["Incident", "Maintenance", "Informational", "ActionRequired", "Security"] + locations = [var.region] + + # Only monitor Azure services used by this application + # This reduces noise from unrelated service health events + services = [ + "Application Insights", + "Azure Container Apps", + "Azure Container Service", + "Azure Container Storage", + "Azure Database for PostgreSQL flexible servers", + "Azure DNS", + "Azure Frontdoor", + "Azure Monitor", + "Azure Private Link", + "Key Vault", + "Log Analytics", + "Storage", + "Virtual Network", + "Windows Virtual Desktop" + ] + } + } + + action_group_id = module.monitor_action_group.monitor_action_group.id +} diff --git a/infrastructure/modules/infra/data.tf b/infrastructure/modules/infra/data.tf index b7a584248..c82199b58 100644 --- a/infrastructure/modules/infra/data.tf +++ b/infrastructure/modules/infra/data.tf @@ -1,3 +1,5 @@ +data "azurerm_subscription" "current" {} + data "azurerm_key_vault" "infra" { provider = azurerm.hub