Skip to content
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

DFPL-2544 Create alert for async call back thread queue #5716

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

chak-shing-lo-justice
Copy link
Contributor

JIRA link (if applicable)

https://tools.hmcts.net/jira/browse/DFPL-2544

Change description

Add monitoring to "executor_pool_size". Alert if reach zero

Does this PR introduce a breaking change? (check one with "x")

[ ] Yes
[X] No

@chak-shing-lo-justice chak-shing-lo-justice requested a review from a team as a code owner November 15, 2024 11:02
@hmcts-jenkins-d-to-i
Copy link
Contributor

Plan Result (aat)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • azurerm_key_vault_secret.update-summary-tab-cron
    • module.fpl-action-group.azurerm_resource_group_template_deployment.action-group
Change Result (Click me)
  # azurerm_key_vault_secret.update-summary-tab-cron will be updated in-place
  ~ resource "azurerm_key_vault_secret" "update-summary-tab-cron" {
        id                      = "https://fpl-aat.vault.azure.net/secrets/update-summary-tab-cron/610e9d1fb33f446c9b8ee86a6a49b90b"
        name                    = "update-summary-tab-cron"
      - not_before_date         = "2023-11-22T08:32:40Z" -> null
        tags                    = {}
        # (7 unchanged attributes hidden)
    }

  # module.fpl-action-group.azurerm_resource_group_template_deployment.action-group will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "action-group" {
        id                       = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fpl-case-service-aat/providers/Microsoft.Resources/deployments/fpl-support"
        name                     = "fpl-support"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ outputs        = {
                  ~ actionGroupId = {
                      ~ type  = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                }
              ~ parameters     = {
                  ~ actionGroupName      = {
                      ~ type = "String" -> "string"
                    }
                  ~ emailReceiverAddress = {
                      ~ type     = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ emailReceiverName    = {
                      ~ type     = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location             = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ shortName            = {
                      ~ type = "String" -> "string"
                    }
                }
                # (3 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

@hmcts-jenkins-d-to-i
Copy link
Contributor

hmcts-jenkins-d-to-i bot commented Nov 15, 2024

Plan Result (prod)

Plan: 1 to add, 6 to change, 0 to destroy.
  • Create
    • module.fpl-executor-pool-size-alert.azurerm_resource_group_template_deployment.custom_alert[0]
  • Update
    • module.fpl-action-group.azurerm_resource_group_template_deployment.action-group
    • module.fpl-exceptions-alert.azurerm_resource_group_template_deployment.custom_alert[0]
    • module.fpl-health-failure-alert.azurerm_resource_group_template_deployment.custom_alert[0]
    • module.fpl-performance-alert.azurerm_resource_group_template_deployment.custom_alert[0]
    • module.fpl-summary-tab-job-alert.azurerm_resource_group_template_deployment.custom_alert[0]
    • module.fpl-upcoming-hearings-job-alert.azurerm_resource_group_template_deployment.custom_alert[0]
Change Result (Click me)
  # module.fpl-action-group.azurerm_resource_group_template_deployment.action-group will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "action-group" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-support"
        name                     = "fpl-support"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ outputs        = {
                  ~ actionGroupId = {
                      ~ type  = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                }
              ~ parameters     = {
                  ~ actionGroupName      = {
                      ~ type = "String" -> "string"
                    }
                  ~ emailReceiverAddress = {
                      ~ type     = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ emailReceiverName    = {
                      ~ type     = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location             = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ shortName            = {
                      ~ type = "String" -> "string"
                    }
                }
                # (3 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

  # module.fpl-exceptions-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-exceptions"
        name                     = "fpl-exceptions"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

  # module.fpl-executor-pool-size-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be created
  + resource "azurerm_resource_group_template_deployment" "custom_alert" {
      + deployment_mode     = "Incremental"
      + id                  = (known after apply)
      + name                = "fpl-executor-pool-size"
      + output_content      = (known after apply)
      + parameters_content  = jsonencode(
            {
              + actionGroupName          = {
                  + value = "fpl-support"
                }
              + actionGroupRg            = {
                  + value = "fpl-case-service-prod"
                }
              + alertDesc                = {
                  + value = "Executor pool size reach zero. No free executor in the pool."
                }
              + alertName                = {
                  + value = "fpl-executor-pool-size"
                }
              + appInsightsName          = {
                  + value = "fpl-case-service-appinsights-prod"
                }
              + appInsightsQuery         = {
                  + value = "customMetrics | where name == \"executor_pool_size\""
                }
              + commonTags               = {
                  + value = "eyJhcHBsaWNhdGlvbiI6ImZhbWlseS1wdWJsaWMtbGF3IiwiYnVpbHRGcm9tIjoiaHR0cHM6Ly9naXRodWIuY29tL0hNQ1RTL2ZwbC1jY2QtY29uZmlndXJhdGlvbi5naXQiLCJidXNpbmVzc0FyZWEiOiJDRlQiLCJjb250YWN0U2xhY2tDaGFubmVsIjoiI2ZwbGEtdGVjaCIsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsIm1hbmFnZWRCeSI6IkZhbWlseSBQdWJsaWMgTGF3In0="
                }
              + customEmailSubject       = {
                  + value = "Alert: Executor pool size reach zero"
                }
              + frequencyInMinutes       = {
                  + value = "5"
                }
              + location                 = {
                  + value = "West Europe"
                }
              + severityLevel            = {
                  + value = "3"
                }
              + timeWindowInMinutes      = {
                  + value = "5"
                }
              + triggerThreshold         = {
                  + value = "0"
                }
              + triggerThresholdOperator = {
                  + value = "Equal"
                }
            }
        )
      + resource_group_name = "fpl-case-service-prod"
      + template_content    = jsonencode(
            {
              + "$schema"      = "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#"
              + contentVersion = "1.0.0.0"
              + parameters     = {
                  + actionGroupName          = {
                      + type = "string"
                    }
                  + actionGroupRg            = {
                      + type = "string"
                    }
                  + alertDesc                = {
                      + type = "string"
                    }
                  + alertName                = {
                      + type = "string"
                    }
                  + appInsightsName          = {
                      + type = "string"
                    }
                  + appInsightsQuery         = {
                      + type = "string"
                    }
                  + commonTags               = {
                      + type = "string"
                    }
                  + customEmailSubject       = {
                      + type = "string"
                    }
                  + frequencyInMinutes       = {
                      + defaultValue = "5"
                      + type         = "string"
                    }
                  + location                 = {
                      + type = "string"
                    }
                  + severityLevel            = {
                      + defaultValue = "3"
                      + type         = "string"
                    }
                  + timeWindowInMinutes      = {
                      + defaultValue = "5"
                      + type         = "string"
                    }
                  + triggerThreshold         = {
                      + type = "string"
                    }
                  + triggerThresholdOperator = {
                      + allowedValues = [
                          + "GreaterThan",
                          + "Equal",
                          + "LessThan",
                        ]
                      + defaultValue  = "GreaterThan"
                      + type          = "string"
                    }
                }
              + resources      = [
                  + {
                      + apiVersion = "2017-09-01-preview"
                      + location   = "[parameters('location')]"
                      + name       = "[parameters('alertName')]"
                      + properties = {
                          + action      = {
                              + aznsAction   = {
                                  + actionGroup  = [
                                      + "[resourceId(parameters('actionGroupRg'), 'microsoft.insights/actionGroups', parameters('actionGroupName'))]",
                                    ]
                                  + emailSubject = "[parameters('customEmailSubject')]"
                                }
                              + "odata.type" = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction"
                              + severity     = "[parameters('severityLevel')]"
                              + status       = "Active"
                              + trigger      = {
                                  + consecutiveBreach = 1
                                  + threshold         = "[parameters('triggerThreshold')]"
                                  + thresholdOperator = "[parameters('triggerThresholdOperator')]"
                                }
                            }
                          + description = "[parameters('alertDesc')]"
                          + enabled     = "true"
                          + schedule    = {
                              + frequencyInMinutes  = "[parameters('frequencyInMinutes')]"
                              + timeWindowInMinutes = "[parameters('timeWindowInMinutes')]"
                            }
                          + skuType     = "L1"
                          + source      = {
                              + dataSourceId = "[resourceId('microsoft.insights/components', parameters('appInsightsName'))]"
                              + query        = "[parameters('appInsightsQuery')]"
                              + queryType    = "ResultCount"
                            }
                        }
                      + tags       = "[union(variables('tags'), variables('additionalTags'))]"
                      + type       = "microsoft.insights/scheduledqueryrules"
                    },
                ]
              + variables      = {
                  + additionalTags = {
                      + "[concat('hidden-link:', resourceId('microsoft.insights/components', parameters('appInsightsName')))]" = "Resource"
                    }
                  + tags           = "[base64ToJson(parameters('commonTags'))]"
                }
            }
        )
    }

  # module.fpl-health-failure-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-health-failure"
        name                     = "fpl-health-failure"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

  # module.fpl-performance-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-performance"
        name                     = "fpl-performance"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

  # module.fpl-summary-tab-job-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-summary-tab-job-failure"
        name                     = "fpl-summary-tab-job-failure"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

  # module.fpl-upcoming-hearings-job-alert.azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fpl-case-service-prod/providers/Microsoft.Resources/deployments/fpl-upcoming-hearings-job-failure"
        name                     = "fpl-upcoming-hearings-job-failure"
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (6 unchanged attributes hidden)
    }

Plan: 1 to add, 6 to change, 0 to destroy.

@hmcts-jenkins-d-to-i hmcts-jenkins-d-to-i bot requested a deployment to preview November 18, 2024 20:02 Abandoned
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant