Skip to content

Add service health alerting #126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 10, 2024
Merged

Conversation

marvinbuss
Copy link
Contributor

Proposed changes:

  • Add service health alerting

@marvinbuss marvinbuss self-assigned this Feb 10, 2024
@marvinbuss marvinbuss added the enhancement New feature or request label Feb 10, 2024
Copy link

Terraform Lint Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link

Terraform Lint Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link

Terraform Lint Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link

Terraform Lint Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link

Terraform Validation & Plan Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
�[0m�[1mdata.azurerm_location.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_subscription.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.app_rg: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg]�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.logging_rg: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1iYWFhNzg4NS05MGQ5LTQ5YTYtYmZmMC1jMTJlYzczOGJmOWI7b2JqZWN0SWQ9ZTlmOGE5ZDUtMmI0ZC00ZDY1LTg1ZTMtZGNiNmVmNDk4OGJlO3N1YnNjcmlwdGlvbklkPThmMTcxZmY5LTJiNWItNGYwZi1hZWQ1LTdmYTM2MGExZDA5NDt0ZW5hbnRJZD0zNTU2YmU3OS0yOTc5LTRiMTktYTFhZi00ZGQ0ZTZkOWVkN2U=]�[0m
�[0m�[1mdata.azurerm_subscription.current: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094]�[0m
�[0m�[1mazurerm_log_analytics_workspace.log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001]�[0m
�[0m�[1mazurerm_monitor_private_link_scope.mpls: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001]�[0m
�[0m�[1mazurerm_monitor_action_group.monitor_action_group: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/actionGroups/myfunc-dev-ag001]�[0m
�[0m�[1mazurerm_service_plan.service_plan: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001]�[0m
�[0m�[1mazurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001]�[0m
�[0m�[1mazurerm_storage_account.storage: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/networkSecurityGroups/mycrp-prd-function-nsg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/routeTables/mycrp-prd-function-rt001]�[0m
�[0m�[1mazapi_resource.subnet_function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001/subnets/FunctionSubnet]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mazurerm_monitor_private_link_scoped_service.mpls_log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001/scopedResources/ampls-myfunc-dev-log001]�[0m
�[0m�[1mazurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/components/myfunc-dev-appi001]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_service_plan: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_service_plan: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_log_analytics_workspace: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_service_plan: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001|logAnalytics]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001|logAnalytics]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001/providers/Microsoft.Authorization/roleAssignments/dd9b28fa-3515-5942-5840-235b31324faa]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 1s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001|logAnalytics]�[0m
�[0m�[1mdata.azurerm_location.current: Read complete after 1s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/locations/northeurope]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_storage: Reading...�[0m�[0m
�[0m�[1mazapi_resource.subnet_services: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001/subnets/PeSubnet]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_storage: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_storage: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001|logAnalytics]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_blob: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-blob-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_queue: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-queue-pe]�[0m
�[0m�[1mazurerm_private_endpoint.mpls_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-ampls001-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_table: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-table-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_file: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-file-pe]�[0m
�[0m�[1mazurerm_private_endpoint.key_vault_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-vault001-pe]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_sample: Refreshing state... [id=https://myfunc-dev-vault001.vault.azure.net/secrets/MySampleSecret/8d26cf0a93f84ed592bfdcf88e540043]�[0m
�[0m�[1mazurerm_monitor_private_link_scoped_service.mpls_application_insights: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001/scopedResources/ampls-myfunc-dev-appi001]�[0m
�[0m�[1mazapi_resource.function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001]�[0m
�[0m�[1mazurerm_role_assignment.function_role_assignment_storage_blob_data_owner: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001/providers/Microsoft.Authorization/roleAssignments/6b42266f-7068-819d-a14f-e708e4a3d738]�[0m
�[0m�[1mazurerm_private_endpoint.function_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-fctn001-pe]�[0m
�[0m�[1mazurerm_role_assignment.function_role_assignment_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001/providers/Microsoft.Authorization/roleAssignments/d29c9d68-f762-450b-92e0-09ecf4d96b91]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001|logAnalytics]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m
  �[33m~�[0m update in-place�[0m
 �[36m<=�[0m read (data resources)�[0m

Terraform will perform the following actions:

�[1m  # data.azurerm_monitor_diagnostic_categories.diagnostic_categories_function�[0m will be read during apply
  # (depends on a resource or a module with changes pending)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_function" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m logs                = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001"
    }

�[1m  # azapi_resource.function�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azapi_resource" "function" {
      �[33m~�[0m�[0m body                      = (sensitive value)
        id                        = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001"
        name                      = "myfunc-dev-fctn001"
      �[33m~�[0m�[0m output                    = jsonencode({}) -> (known after apply)
        tags                      = {}
        �[90m# (7 unchanged attributes hidden)�[0m�[0m

        �[90m# (1 unchanged block hidden)�[0m�[0m
    }

�[1m  # azurerm_monitor_activity_log_alert.monitor_activity_log_alert_service_health�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_activity_log_alert" "monitor_activity_log_alert_service_health" {
      �[32m+�[0m�[0m description         = "Alerts for service health and maintenance events."
      �[32m+�[0m�[0m enabled             = true
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m name                = "myfunc-dev-alert-servicehealth"
      �[32m+�[0m�[0m resource_group_name = "myfunc-dev-logging-rg"
      �[32m+�[0m�[0m scopes              = [
          �[32m+�[0m�[0m "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094",
        ]

      �[32m+�[0m�[0m action {
          �[32m+�[0m�[0m action_group_id    = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/actionGroups/myfunc-dev-ag001"
          �[32m+�[0m�[0m webhook_properties = {
              �[32m+�[0m�[0m "alert-type"   = "service-health"
              �[32m+�[0m�[0m "environment"  = "dev"
              �[32m+�[0m�[0m "location"     = "northeurope"
              �[32m+�[0m�[0m "severity"     = "Info"
              �[32m+�[0m�[0m "subscription" = "8f171ff9-2b5b-4f0f-aed5-7fa360a1d094"
            }
        }

      �[32m+�[0m�[0m criteria {
          �[32m+�[0m�[0m category = "ServiceHealth"

          �[32m+�[0m�[0m service_health {
              �[32m+�[0m�[0m events    = [
                  �[32m+�[0m�[0m "Incident",
                  �[32m+�[0m�[0m "Maintenance",
                ]
              �[32m+�[0m�[0m locations = [
                  �[32m+�[0m�[0m "Global",
                  �[32m+�[0m�[0m "North Europe",
                ]
            }
        }
    }

�[1m  # azurerm_monitor_diagnostic_setting.diagnostic_setting_function�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_function" {
        id                         = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001|logAnalytics"
        name                       = "logAnalytics"
        �[90m# (2 unchanged attributes hidden)�[0m�[0m

      �[31m-�[0m�[0m metric {
          �[31m-�[0m�[0m category = "AllMetrics" �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m enabled  = true �[90m-> null�[0m�[0m

          �[31m-�[0m�[0m retention_policy {
              �[31m-�[0m�[0m days    = 0 �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m enabled = false �[90m-> null�[0m�[0m
            }
        }

        �[90m# (4 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 1 to add, 2 to change, 0 to destroy.
�[0m�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

Copy link

Terraform Lint Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link

Terraform Validation & Plan Results

  • Terraform Version 📎1.6.6
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.app_rg: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg]�[0m
�[0m�[1mdata.azurerm_subscription.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.logging_rg: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg]�[0m
�[0m�[1mdata.azurerm_location.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1iYWFhNzg4NS05MGQ5LTQ5YTYtYmZmMC1jMTJlYzczOGJmOWI7b2JqZWN0SWQ9ZTlmOGE5ZDUtMmI0ZC00ZDY1LTg1ZTMtZGNiNmVmNDk4OGJlO3N1YnNjcmlwdGlvbklkPThmMTcxZmY5LTJiNWItNGYwZi1hZWQ1LTdmYTM2MGExZDA5NDt0ZW5hbnRJZD0zNTU2YmU3OS0yOTc5LTRiMTktYTFhZi00ZGQ0ZTZkOWVkN2U=]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_subscription.current: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094]�[0m
�[0m�[1mazurerm_monitor_private_link_scope.mpls: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001]�[0m
�[0m�[1mazurerm_monitor_action_group.monitor_action_group: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/actionGroups/myfunc-dev-ag001]�[0m
�[0m�[1mazurerm_log_analytics_workspace.log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001]�[0m
�[0m�[1mazurerm_service_plan.service_plan: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001]�[0m
�[0m�[1mazurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001]�[0m
�[0m�[1mazurerm_storage_account.storage: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/routeTables/mycrp-prd-function-rt001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/networkSecurityGroups/mycrp-prd-function-nsg001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001]�[0m
�[0m�[1mazapi_resource.subnet_function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001/subnets/FunctionSubnet]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_service_plan: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_service_plan: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_service_plan: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/serverFarms/myfunc-dev-asp001|logAnalytics]�[0m
�[0m�[1mazurerm_monitor_private_link_scoped_service.mpls_log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001/scopedResources/ampls-myfunc-dev-log001]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mazurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/components/myfunc-dev-appi001]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_log_analytics_workspace: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_log_analytics_workspace: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/myfunc-dev-log001|logAnalytics]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001/providers/Microsoft.Authorization/roleAssignments/dd9b28fa-3515-5942-5840-235b31324faa]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001|logAnalytics]�[0m
�[0m�[1mdata.azurerm_location.current: Read complete after 1s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/locations/northeurope]�[0m
�[0m�[1mazapi_resource.subnet_services: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/mycrp-prd-function-network-rg/providers/Microsoft.Network/virtualNetworks/mycrp-prd-function-vnet001/subnets/PeSubnet]�[0m
�[0m�[1mazurerm_private_endpoint.key_vault_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-vault001-pe]�[0m
�[0m�[1mazurerm_private_endpoint.mpls_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-ampls001-pe]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_sample: Refreshing state... [id=https://myfunc-dev-vault001.vault.azure.net/secrets/MySampleSecret/8d26cf0a93f84ed592bfdcf88e540043]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_storage: Reading...�[0m�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_queue: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-queue-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_file: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-file-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_table: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-table-pe]�[0m
�[0m�[1mazurerm_private_endpoint.storage_private_endpoint_blob: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfuncdevstg001-blob-pe]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_storage: Read complete after 0s [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_storage: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001|logAnalytics]�[0m
�[0m�[1mazurerm_monitor_private_link_scoped_service.mpls_application_insights: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/privateLinkScopes/myfunc-dev-ampls001/scopedResources/ampls-myfunc-dev-appi001]�[0m
�[0m�[1mazapi_resource.function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001]�[0m
�[0m�[1mazurerm_role_assignment.function_role_assignment_key_vault: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.KeyVault/vaults/myfunc-dev-vault001/providers/Microsoft.Authorization/roleAssignments/d29c9d68-f762-450b-92e0-09ecf4d96b91]�[0m
�[0m�[1mazurerm_private_endpoint.function_private_endpoint: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Network/privateEndpoints/myfunc-dev-fctn001-pe]�[0m
�[0m�[1mazurerm_role_assignment.function_role_assignment_storage_blob_data_owner: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Storage/storageAccounts/myfuncdevstg001/providers/Microsoft.Authorization/roleAssignments/6b42266f-7068-819d-a14f-e708e4a3d738]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_function: Refreshing state... [id=/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001|logAnalytics]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m
  �[33m~�[0m update in-place�[0m
 �[36m<=�[0m read (data resources)�[0m

Terraform will perform the following actions:

�[1m  # data.azurerm_monitor_diagnostic_categories.diagnostic_categories_function�[0m will be read during apply
  # (depends on a resource or a module with changes pending)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_function" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m logs                = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001"
    }

�[1m  # azapi_resource.function�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azapi_resource" "function" {
      �[33m~�[0m�[0m body                      = (sensitive value)
        id                        = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001"
        name                      = "myfunc-dev-fctn001"
      �[33m~�[0m�[0m output                    = jsonencode({}) -> (known after apply)
        tags                      = {}
        �[90m# (7 unchanged attributes hidden)�[0m�[0m

        �[90m# (1 unchanged block hidden)�[0m�[0m
    }

�[1m  # azurerm_monitor_activity_log_alert.monitor_activity_log_alert_service_health�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_activity_log_alert" "monitor_activity_log_alert_service_health" {
      �[32m+�[0m�[0m description         = "Alerts about service health and maintenance events."
      �[32m+�[0m�[0m enabled             = true
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m name                = "myfunc-dev-alert-servicehealth"
      �[32m+�[0m�[0m resource_group_name = "myfunc-dev-logging-rg"
      �[32m+�[0m�[0m scopes              = [
          �[32m+�[0m�[0m "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094",
        ]

      �[32m+�[0m�[0m action {
          �[32m+�[0m�[0m action_group_id    = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-logging-rg/providers/Microsoft.Insights/actionGroups/myfunc-dev-ag001"
          �[32m+�[0m�[0m webhook_properties = {
              �[32m+�[0m�[0m "alert-type"   = "service-health"
              �[32m+�[0m�[0m "environment"  = "dev"
              �[32m+�[0m�[0m "location"     = "northeurope"
              �[32m+�[0m�[0m "severity"     = "Info"
              �[32m+�[0m�[0m "subscription" = "8f171ff9-2b5b-4f0f-aed5-7fa360a1d094"
            }
        }

      �[32m+�[0m�[0m criteria {
          �[32m+�[0m�[0m category = "ServiceHealth"

          �[32m+�[0m�[0m service_health {
              �[32m+�[0m�[0m events    = [
                  �[32m+�[0m�[0m "Incident",
                  �[32m+�[0m�[0m "Maintenance",
                ]
              �[32m+�[0m�[0m locations = [
                  �[32m+�[0m�[0m "Global",
                  �[32m+�[0m�[0m "North Europe",
                ]
            }
        }
    }

�[1m  # azurerm_monitor_diagnostic_setting.diagnostic_setting_function�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_function" {
        id                         = "/subscriptions/8f171ff9-2b5b-4f0f-aed5-7fa360a1d094/resourceGroups/myfunc-dev-app-rg/providers/Microsoft.Web/sites/myfunc-dev-fctn001|logAnalytics"
        name                       = "logAnalytics"
        �[90m# (2 unchanged attributes hidden)�[0m�[0m

      �[31m-�[0m�[0m metric {
          �[31m-�[0m�[0m category = "AllMetrics" �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m enabled  = true �[90m-> null�[0m�[0m

          �[31m-�[0m�[0m retention_policy {
              �[31m-�[0m�[0m days    = 0 �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m enabled = false �[90m-> null�[0m�[0m
            }
        }

        �[90m# (4 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 1 to add, 2 to change, 0 to destroy.
�[0m�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

Copy link
Contributor Author

@marvinbuss marvinbuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@marvinbuss marvinbuss marked this pull request as ready for review February 10, 2024 18:44
@marvinbuss marvinbuss merged commit d546edc into main Feb 10, 2024
@marvinbuss marvinbuss deleted the marvinbuss/service_health_alert branch February 10, 2024 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant