diff --git a/docs/content/patterns/alz/HowTo/Log_Search_Alert_Table.md b/docs/content/patterns/alz/HowTo/Log_Search_Alert_Table.md
index ef331badb..84362830c 100644
--- a/docs/content/patterns/alz/HowTo/Log_Search_Alert_Table.md
+++ b/docs/content/patterns/alz/HowTo/Log_Search_Alert_Table.md
@@ -29,3 +29,4 @@ geekdocHidden: true
| Virtual machine | *```subscription().displayName```*-VMHighCPUAlert | _Log search_ | ***\_amba-UtilizationPercentage-threshold-Override\_*** |
| Virtual machine | *```subscription().displayName```*-VMLowMemoryAlert | _Log search_ | ***\_amba-AvailableMemoryPercentage-threshold-Override\_*** |
| Log Analytics workspace | *```resourceName```*-DailyCapLimitReachedAlert | _Log search_ | ***Not available as threshold will always be ```0```*** |
+| Application Insights | *```resourceName```*-ApplicationInsightsThrottlingLimitReachedAlert | _Log search_ | ***\_amba-Throttling-threshold-override\_*** |
diff --git a/docs/content/patterns/alz/HowTo/Metrics_Alert_Table.md b/docs/content/patterns/alz/HowTo/Metrics_Alert_Table.md
index 71529bc53..2bed79291 100644
--- a/docs/content/patterns/alz/HowTo/Metrics_Alert_Table.md
+++ b/docs/content/patterns/alz/HowTo/Metrics_Alert_Table.md
@@ -93,3 +93,4 @@ geekdocHidden: true
| App Service plan | *```resourceName```*-DiskQueueLengthAlert | Metrics | ***Not available since it uses dynamic thresholds*** |
| App Service plan | *```resourceName```*-HttpQueueLengthAlert | Metrics | ***Not available since it uses dynamic thresholds*** |
| App Service plan | *```resourceName```*-MemoryPercentage | Metrics | ***\_amba-MemoryPercentage-threshold-Override\_*** |
+| Application Insights | ActivityAppInsightsDelete | Activity Log | ***Not available since Activity Log based alerts do not have thresholds*** |
diff --git a/patterns/alz/alzArm.json b/patterns/alz/alzArm.json
index 723d02630..251e4fb90 100644
--- a/patterns/alz/alzArm.json
+++ b/patterns/alz/alzArm.json
@@ -17,7 +17,7 @@
"No"
],
"metadata": {
- "displayName": "Teletry Opt Out",
+ "displayName": "Telemetry Opt Out",
"description": "The customer usage identifier used for telemetry purposes. The default value of False enables telemetry. The value of True disables telemetry."
}
},
@@ -500,7 +500,7 @@
"policyAssignmentParametersRecoveryServices": "[union(variables('policyAssignmentParametersMonitorDisable'), parameters('policyAssignmentParametersRecoveryServices'))]",
"policyAssignmentParametersStorage": "[union(variables('policyAssignmentParametersCommon'), parameters('policyAssignmentParametersStorage'))]",
"policyAssignmentParametersVM": "[union(variables('policyAssignmentParametersCommon'), parameters('policyAssignmentParametersVM'),variables('uamiParameters'))]",
- "policyAssignmentParametersWeb": "[union(variables('policyAssignmentParametersMonitorDisable'), parameters('policyAssignmentParametersWeb'))]",
+ "policyAssignmentParametersWeb": "[union(variables('policyAssignmentParametersCommon'), parameters('policyAssignmentParametersWeb'), variables('uamiParameters'))]",
// Declaring all required deployment uri's used for deployments of composite ARM templates for ESLZ
"deploymentUris": {
"policyDefinitionsAutomation": "[uri(deployment().properties.templateLink.uri, 'policyDefinitions/policies-Automation.json')]",
diff --git a/patterns/alz/alzArm.param.json b/patterns/alz/alzArm.param.json
index b1bce8654..809427c2d 100644
--- a/patterns/alz/alzArm.param.json
+++ b/patterns/alz/alzArm.param.json
@@ -2877,6 +2877,45 @@
},
"WSFHttpQueueLengthEvaluationPeriods": {
"value": "2"
+ },
+ "AppInsightsThrottlingLimitSeverity": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitOperator": {
+ "value": "GreaterThan"
+ },
+ "AppInsightsThrottlingLimitTimeAggregation": {
+ "value": "Count"
+ },
+ "AppInsightsThrottlingLimitWindowSize": {
+ "value": "PT5M"
+ },
+ "AppInsightsThrottlingLimitEvaluationFrequency": {
+ "value": "PT5M"
+ },
+ "AppInsightsThrottlingLimitAutoMitigate": {
+ "value": "true"
+ },
+ "AppInsightsThrottlingLimitThreshold": {
+ "value": "32000"
+ },
+ "AppInsightsThrottlingLimitFailingPeriods": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitEvaluationPeriods": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitPolicyEffect": {
+ "value": "deployIfNotExists"
+ },
+ "AppInsightsThrottlingLimitAlertState": {
+ "value": "false"
+ },
+ "activityAppInsightsDeletePolicyEffect": {
+ "value": "deployIfNotExists"
+ },
+ "activityAppInsightsDeleteAlertState": {
+ "value": "false"
}
}
}
diff --git a/patterns/alz/eslzArm.terraform-sync.param.json b/patterns/alz/eslzArm.terraform-sync.param.json
index 7a58bf03e..b115e9a8a 100644
--- a/patterns/alz/eslzArm.terraform-sync.param.json
+++ b/patterns/alz/eslzArm.terraform-sync.param.json
@@ -2877,6 +2877,45 @@
},
"WSFHttpQueueLengthEvaluationPeriods": {
"value": "2"
+ },
+ "AppInsightsThrottlingLimitSeverity": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitOperator": {
+ "value": "GreaterThan"
+ },
+ "AppInsightsThrottlingLimitTimeAggregation": {
+ "value": "Count"
+ },
+ "AppInsightsThrottlingLimitWindowSize": {
+ "value": "PT5M"
+ },
+ "AppInsightsThrottlingLimitEvaluationFrequency": {
+ "value": "PT5M"
+ },
+ "AppInsightsThrottlingLimitAutoMitigate": {
+ "value": "true"
+ },
+ "AppInsightsThrottlingLimitThreshold": {
+ "value": "32000"
+ },
+ "AppInsightsThrottlingLimitFailingPeriods": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitEvaluationPeriods": {
+ "value": "1"
+ },
+ "AppInsightsThrottlingLimitPolicyEffect": {
+ "value": "deployIfNotExists"
+ },
+ "AppInsightsThrottlingLimitAlertState": {
+ "value": "false"
+ },
+ "activityAppInsightsDeletePolicyEffect": {
+ "value": "deployIfNotExists"
+ },
+ "activityAppInsightsDeleteAlertState": {
+ "value": "false"
}
}
}
diff --git a/patterns/alz/policyDefinitions/policies-Automation.json b/patterns/alz/policyDefinitions/policies-Automation.json
index 6b6174435..0ef00ae79 100644
--- a/patterns/alz/policyDefinitions/policies-Automation.json
+++ b/patterns/alz/policyDefinitions/policies-Automation.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "10001095019586829330"
+ "version": "0.32.4.45862",
+ "templateHash": "10530905569433825957"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-Compute.json b/patterns/alz/policyDefinitions/policies-Compute.json
index 7b9c13f1c..3cade1ac7 100644
--- a/patterns/alz/policyDefinitions/policies-Compute.json
+++ b/patterns/alz/policyDefinitions/policies-Compute.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "5171477523449090733"
+ "version": "0.32.4.45862",
+ "templateHash": "1173048230693308025"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-Hybrid.json b/patterns/alz/policyDefinitions/policies-Hybrid.json
index 265ad9a3f..0c089cef4 100644
--- a/patterns/alz/policyDefinitions/policies-Hybrid.json
+++ b/patterns/alz/policyDefinitions/policies-Hybrid.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "3790906364926990204"
+ "version": "0.32.4.45862",
+ "templateHash": "1310885253957432604"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-KeyManagement.json b/patterns/alz/policyDefinitions/policies-KeyManagement.json
index 6aaab7484..d30a886e2 100644
--- a/patterns/alz/policyDefinitions/policies-KeyManagement.json
+++ b/patterns/alz/policyDefinitions/policies-KeyManagement.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "72757054326075040"
+ "version": "0.32.4.45862",
+ "templateHash": "14869777702741806183"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-Monitoring.json b/patterns/alz/policyDefinitions/policies-Monitoring.json
index fe92ae11a..4bc00ded3 100644
--- a/patterns/alz/policyDefinitions/policies-Monitoring.json
+++ b/patterns/alz/policyDefinitions/policies-Monitoring.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "3342767412473884252"
+ "version": "0.32.4.45862",
+ "templateHash": "6543928731183555607"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-NotificationAssets.json b/patterns/alz/policyDefinitions/policies-NotificationAssets.json
index 826ada7ae..7694146d2 100644
--- a/patterns/alz/policyDefinitions/policies-NotificationAssets.json
+++ b/patterns/alz/policyDefinitions/policies-NotificationAssets.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "13990384610618582047"
+ "version": "0.32.4.45862",
+ "templateHash": "13822163595010851058"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-RecoveryServices.json b/patterns/alz/policyDefinitions/policies-RecoveryServices.json
index b41a10a10..1e06c10ef 100644
--- a/patterns/alz/policyDefinitions/policies-RecoveryServices.json
+++ b/patterns/alz/policyDefinitions/policies-RecoveryServices.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "4026295181729512686"
+ "version": "0.32.4.45862",
+ "templateHash": "16404316663146583246"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-Storage.json b/patterns/alz/policyDefinitions/policies-Storage.json
index 2373b9e94..ff3ea9de9 100644
--- a/patterns/alz/policyDefinitions/policies-Storage.json
+++ b/patterns/alz/policyDefinitions/policies-Storage.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "7230601166858169199"
+ "version": "0.32.4.45862",
+ "templateHash": "3955992142944331035"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policyDefinitions/policies-Web.json b/patterns/alz/policyDefinitions/policies-Web.json
index 5f0aa513a..cd38b5cbc 100644
--- a/patterns/alz/policyDefinitions/policies-Web.json
+++ b/patterns/alz/policyDefinitions/policies-Web.json
@@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.32.4.45862",
- "templateHash": "5774059420150938158"
+ "templateHash": "5050404746341542476"
}
},
"parameters": {
@@ -119,7 +119,9 @@
"$fxv#1": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_DiskQueueLength_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Disk Queue Length Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Disk Queue Length Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"DiskQueueLength\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DiskQueueLengthAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Disk Queue Length\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"DiskQueueLength\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
"$fxv#2": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_HttpQueueLength_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Http Queue Length Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Http Queue Length Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"HttpQueueLength\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-HttpQueueLengthAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Http Queue Length\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"HttpQueueLength\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
"$fxv#3": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_MemoryPercentage_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Memory Percentage Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Memory Percentage Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.1\",\r\n \"category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"85\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"MemoryPercentage\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-MemoryPercentage')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Memory Percentage\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"MemoryPercentage\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"MemoryPercentage\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
- "$fxv#4": {
+ "$fxv#4": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AppInsightsThrottlingLimit_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Application Insights Throttling Limit Reached Alert (Preview)\",\r\n \"description\": \"Policy to audit/deploy Application Insights Throttling Limit Reached Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.0.0\",\r\n \"category\": \"Monitoring\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"UAMIResourceId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"\",\r\n \"metadata\": {\r\n \"description\": \"The resource Id of the user assigned managed identity.\",\r\n \"displayName\": \"User Assigned managed Identity resource Id.\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"operator\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Operator\"\r\n },\r\n \"allowedValues\": [\r\n \"GreaterThan\",\r\n \"GreaterThanOrEqual\"\r\n ],\r\n \"defaultValue\": \"GreaterThan\"\r\n },\r\n \"timeAggregation\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"TimeAggregation\"\r\n },\r\n \"allowedValues\": [\r\n \"Count\"\r\n ],\r\n \"defaultValue\": \"Count\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT10M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT45M\",\r\n \"PT1H\",\r\n \"PT2H\",\r\n \"PT3H\",\r\n \"PT4H\",\r\n \"PT5H\",\r\n \"PT6H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"P1D\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT5M\",\r\n \"PT10M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT45M\",\r\n \"PT1H\",\r\n \"PT2H\",\r\n \"PT3H\",\r\n \"PT4H\",\r\n \"PT5H\",\r\n \"PT6H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"32000\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"1\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"1\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Insights/components\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/scheduledQueryRules\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].threshold\",\r\n \"equals\": 0\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].operator\",\r\n \"equals\": \"[[parameters('operator')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].timeAggregation\",\r\n \"equals\": \"[[parameters('timeAggregation')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].query\",\r\n \"equals\": \"[[format('let policyThresholdString = \\\"{2}\\\"; let overridenResource = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | project _ResourceId = tolower(id), tags | where tags contains \\\"_amba-Throttling-threshold-override_\\\"); let excludedResources = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | where parse_json(tostring(tags.[\\\"{0}\\\"])) in~ (\\\"{1}\\\") | project _ResourceId = tolower(id)); let appInsightsResources = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | project _ResourceId = tolower(id), name); AppSystemEvents | where _ResourceId =~ \\\"{3}\\\" | where _ResourceId !in~ (excludedResources) | summarize numOfEvents = sum(toint(Measurements[\\\"BillingTelemetryCount\\\"])) by _ResourceId, Type, bin(TimeGenerated, 1h) | join hint.remote=left kind=leftouter overridenResource on _ResourceId | project-away _ResourceId1 | extend appliedThresholdString = iif(tags contains \\\"_amba-Throttling-threshold-override_\\\", tags.[\\\"_amba-Throttling-threshold-override_\\\"], policyThresholdString) | extend appliedThreshold = toint(appliedThresholdString) | where numOfEvents > appliedThreshold | join hint.remote=left kind=inner appInsightsResources on _ResourceId | project TimeGenerated, _ResourceId, name, numOfEvents', parameters('MonitorDisableTagName'), join(parameters('MonitorDisableTagValues'), '\\\",\\\"'), parameters('threshold'), field('id'))]\"\r\n },\r\n {\r\n \"field\": \"identity.userAssignedIdentities\",\r\n \"containsKey\": \"[[parameters('UAMIResourceId')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"resourceLocation\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceLocation\",\r\n \"description\": \"Location of the resource\"\r\n }\r\n },\r\n \"UAMIResourceId\": {\r\n \"type\": \"string\"\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n },\r\n \"operator\": {\r\n \"type\": \"String\"\r\n },\r\n \"timeAggregation\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/scheduledQueryRules\",\r\n \"apiVersion\": \"2022-08-01-preview\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-ApplicationInsightsThrottlingLimitReachedAlert')]\",\r\n \"location\": \"[[parameters('resourceLocation')]\",\r\n \"identity\": {\r\n \"type\": \"UserAssigned\",\r\n \"userAssignedIdentities\": {\r\n \"[[parameters('UAMIResourceId')]\": {}\r\n }\r\n },\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"displayName\": \"[[concat(parameters('resourceName'), '-Application Insights Throttling Limit Reached (Preview)')]\",\r\n \"description\": \"Log Alert for Application Insights Throttling Limit Reached\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[reference(parameters('resourceId'),'2020-02-02').WorkspaceResourceId]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"query\": \"[[format('let policyThresholdString = \\\"{2}\\\"; let overridenResource = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | project _ResourceId = tolower(id), tags | where tags contains \\\"_amba-Throttling-threshold-override_\\\"); let excludedResources = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | where parse_json(tostring(tags.[\\\"{0}\\\"])) in~ (\\\"{1}\\\") | project _ResourceId = tolower(id)); let appInsightsResources = (arg(\\\"\\\").resources | where type =~ \\\"Microsoft.Insights/components\\\" | project _ResourceId = tolower(id), name); AppSystemEvents | where _ResourceId =~ \\\"{3}\\\" | where _ResourceId !in~ (excludedResources) | summarize numOfEvents = sum(toint(Measurements[\\\"BillingTelemetryCount\\\"])) by _ResourceId, Type, bin(TimeGenerated, 1h) | join hint.remote=left kind=leftouter overridenResource on _ResourceId | project-away _ResourceId1 | extend appliedThresholdString = iif(tags contains \\\"_amba-Throttling-threshold-override_\\\", tags.[\\\"_amba-Throttling-threshold-override_\\\"], policyThresholdString) | extend appliedThreshold = toint(appliedThresholdString) | where numOfEvents > appliedThreshold | join hint.remote=left kind=inner appInsightsResources on _ResourceId | project TimeGenerated, _ResourceId, name, numOfEvents', parameters('MonitorDisableTagName'), join(parameters('MonitorDisableTagValues'), '\\\",\\\"'), parameters('threshold'), parameters('resourceId'))]\",\r\n \"threshold\": 0,\r\n \"operator\": \"[[parameters('operator')]\",\r\n \"dimensions\": [\r\n {\r\n \"name\": \"name\",\r\n \"operator\": \"Include\",\r\n \"values\": [\r\n \"*\"\r\n ]\r\n }\r\n ],\r\n \"resourceIdColumn\": \"_ResourceId\",\r\n \"timeAggregation\": \"[[parameters('timeAggregation')]\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n }\r\n }\r\n ]\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"UAMIResourceId\": {\r\n \"value\": \"[[parameters('UAMIResourceId')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n },\r\n \"operator\": {\r\n \"value\": \"[[parameters('operator')]\"\r\n },\r\n \"timeAggregation\": {\r\n \"value\": \"[[parameters('timeAggregation')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"value\": \"[[parameters('MonitorDisableTagName')]\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"value\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"resourceLocation\": {\r\n \"value\": \"[[field('location')]\"\r\n },\r\n \"UAMIResourceId\": {\r\n \"value\": \"[[parameters('UAMIResourceId')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n },\r\n \"operator\": {\r\n \"value\": \"[[parameters('operator')]\"\r\n },\r\n \"timeAggregation\": {\r\n \"value\": \"[[parameters('timeAggregation')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"value\": \"[[parameters('MonitorDisableTagName')]\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"value\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
+ "$fxv#5": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ActivityLog_AppInsights_Delete\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Activity Log Application Insights Delete Alert (Preview)\",\r\n \"description\": \"Policy to Deploy Activity Log Application Insights Delete Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.0.0\",\r\n \"category\": \"Monitoring\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Name\",\r\n \"description\": \"Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": \"rg-amba-monitoring-001\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"type\": \"Object\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Tags\",\r\n \"description\": \"Tags on the Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": {\r\n \"_deployed_by_amba\": true\r\n }\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Location\",\r\n \"description\": \"Location of the Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": \"centralus\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"microsoft.insights/components\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/activityLogAlerts\",\r\n \"name\": \"ActivityAppInsightsDelete\",\r\n \"existenceScope\": \"resourcegroup\",\r\n \"resourceGroupName\": \"[[parameters('alertResourceGroupName')]\",\r\n \"deploymentScope\": \"subscription\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"count\": {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*]\",\r\n \"where\": {\r\n \"anyOf\": [\r\n {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].field\",\r\n \"equals\": \"category\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].equals\",\r\n \"equals\": \"Administrative\"\r\n }\r\n ]\r\n },\r\n {\r\n \"allOf\": [\r\n {\r\n \"field\": \"microsoft.insights/activityLogAlerts/condition.allOf[*].field\",\r\n \"equals\": \"operationName\"\r\n },\r\n {\r\n \"field\": \"microsoft.insights/activityLogAlerts/condition.allOf[*].equals\",\r\n \"equals\": \"Microsoft.Insights/Components/Delete\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n },\r\n \"equals\": 2\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"location\": \"northeurope\",\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"alertResourceGroupName\": {\r\n \"type\": \"string\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"type\": \"object\"\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"type\": \"string\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"string\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Resources/resourceGroups\",\r\n \"apiVersion\": \"2021-04-01\",\r\n \"name\": \"[[parameters('alertResourceGroupName')]\",\r\n \"location\": \"[[parameters('alertResourceGroupLocation')]\",\r\n \"tags\": \"[[parameters('alertResourceGroupTags')]\"\r\n },\r\n {\r\n \"type\": \"Microsoft.Resources/deployments\",\r\n \"apiVersion\": \"2019-10-01\",\r\n \"name\": \"ActivityAppInsightsDeleteAlert\",\r\n \"resourceGroup\": \"[[parameters('alertResourceGroupName')]\",\r\n \"dependsOn\": [\r\n \"[[concat('Microsoft.Resources/resourceGroups/', parameters('alertResourceGroupName'))]\"\r\n ],\r\n \"properties\": {\r\n \"mode\": \"Incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"type\": \"string\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"type\": \"string\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"microsoft.insights/activityLogAlerts\",\r\n \"apiVersion\": \"2020-10-01\",\r\n \"name\": \"ActivityAppInsightsDelete\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"displayName\": \"Application Insights Resource Delete Alert (Preview)\",\r\n \"description\": \"Activity Log Application Insights Delete Alert\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[subscription().id]\"\r\n ],\r\n \"condition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"category\",\r\n \"equals\": \"Administrative\"\r\n },\r\n {\r\n \"field\": \"operationName\",\r\n \"equals\": \"Microsoft.Insights/Components/Delete\"\r\n },\r\n {\r\n \"field\": \"status\",\r\n \"containsAny\": [\r\n \"succeeded\"\r\n ]\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"value\": \"[[parameters('alertResourceGroupName')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"value\": \"[[parameters('alertResourceGroupName')]\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"value\": \"[[parameters('alertResourceGroupTags')]\"\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"value\": \"[[parameters('alertResourceGroupLocation')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
+ "$fxv#6": {
"type": "Microsoft.Authorization/policySetDefinitions",
"apiVersion": "2021-06-01",
"name": "Alerting-Web",
@@ -127,7 +129,7 @@
"displayName": "Deploy Azure Monitor Baseline Alerts for Web",
"description": "This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services.",
"metadata": {
- "version": "1.0.0",
+ "version": "1.1.0",
"category": "Monitoring",
"source": "https://github.com/Azure/azure-monitor-baseline-alerts/",
"alzCloudEnvironments": [
@@ -136,6 +138,32 @@
"_deployed_by_amba": true
},
"parameters": {
+ "ALZMonitorResourceGroupName": {
+ "type": "String",
+ "defaultValue": "rg-amba-monitoring-001",
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Name",
+ "description": "Name of the resource group to deploy the ALZ monitoring resources to"
+ }
+ },
+ "ALZMonitorResourceGroupTags": {
+ "type": "Object",
+ "defaultValue": {
+ "_deployed_by_alz_monitor": true
+ },
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Tags",
+ "description": "Tags to apply to the resource group"
+ }
+ },
+ "ALZMonitorResourceGroupLocation": {
+ "type": "String",
+ "defaultValue": "centralus",
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Location",
+ "description": "Location of the resource group"
+ }
+ },
"ALZMonitorDisableTagName": {
"type": "String",
"metadata": {
@@ -157,6 +185,29 @@
"Sandbox"
]
},
+ "ALZUserAssignedManagedIdentityName": {
+ "type": "string",
+ "defaultValue": "id-AMBA-ARG-Reader-001",
+ "metadata": {
+ "description": "The name of the user assigned managed identity to be created for monitoring purpose.",
+ "displayName": "Name of the user assigned managed identity to be created."
+ }
+ },
+ "ALZManagementSubscriptionId": {
+ "type": "string",
+ "defaultValue": "",
+ "metadata": {
+ "description": "The subscription ID of the management subscription where the user assigned managed identity will be created."
+ }
+ },
+ "BYOUserAssignedManagedIdentityResourceId": {
+ "type": "string",
+ "defaultValue": "",
+ "metadata": {
+ "description": "The resource Id of the user assigned managed identity provided by the customer.",
+ "displayName": "Customer defined User Assigned managed Identity resource Id."
+ }
+ },
"WSFCPUPercentageAlertSeverity": {
"type": "String",
"defaultValue": "2",
@@ -476,6 +527,163 @@
"displayName": "WSF HTTP Queue Lenght Evaluation Periods",
"description": "The number of aggregated lookback points."
}
+ },
+ "AppInsightsThrottlingLimitSeverity": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Severity",
+ "description": "Severity of the Alert"
+ },
+ "allowedValues": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "defaultValue": "2"
+ },
+ "AppInsightsThrottlingLimitOperator": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Operator"
+ },
+ "allowedValues": [
+ "GreaterThan",
+ "GreaterThanOrEqual"
+ ],
+ "defaultValue": "GreaterThan"
+ },
+ "AppInsightsThrottlingLimitTimeAggregation": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert TimeAggregation"
+ },
+ "allowedValues": [
+ "Count"
+ ],
+ "defaultValue": "Count"
+ },
+ "AppInsightsThrottlingLimitWindowSize": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Window Size",
+ "description": "Window size for the alert"
+ },
+ "allowedValues": [
+ "PT1M",
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "P1D"
+ },
+ "AppInsightsThrottlingLimitEvaluationFrequency": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Evaluation Frequency",
+ "description": "Evaluation frequency for the alert"
+ },
+ "allowedValues": [
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "PT1H"
+ },
+ "AppInsightsThrottlingLimitAutoMitigate": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Auto Mitigate",
+ "description": "Auto Mitigate for the alert"
+ },
+ "allowedValues": [
+ "true",
+ "false"
+ ],
+ "defaultValue": "true"
+ },
+ "AppInsightsThrottlingLimitThreshold": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Threshold",
+ "description": "Threshold for the alert"
+ },
+ "defaultValue": "32000"
+ },
+ "AppInsightsThrottlingLimitFailingPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Failing Periods",
+ "description": "Number of failing periods before alert is fired"
+ },
+ "defaultValue": "1"
+ },
+ "AppInsightsThrottlingLimitEvaluationPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Evaluation Periods",
+ "description": "The number of aggregated lookback points."
+ },
+ "defaultValue": "1"
+ },
+ "AppInsightsThrottlingLimitPolicyEffect": {
+ "type": "string",
+ "defaultValue": "deployIfNotExists",
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Policy Effect",
+ "description": "Policy effect for the alert, deployIfNotExists will create the alert if it does not exist, disabled will not create the alert"
+ }
+ },
+ "AppInsightsThrottlingLimitAlertState": {
+ "type": "string",
+ "defaultValue": "true",
+ "metadata": {
+ "displayName": "AApplication Insights Throttling Limit Reached Alert State",
+ "description": "Alert state for the alert"
+ }
+ },
+ "activityAppInsightsDeletePolicyEffect": {
+ "type": "string",
+ "defaultValue": "deployIfNotExists",
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "metadata": {
+ "displayName": "Activity Log Application Insights Alert Delete Policy Effect",
+ "description": "Policy effect for the alert, deployIfNotExists will create the alert if it does not exist, disabled will not create the alert"
+ }
+ },
+ "activityAppInsightsDeleteAlertState": {
+ "type": "string",
+ "defaultValue": "true",
+ "metadata": {
+ "displayName": "Activity Log Application Insights Alert Delete Alert State",
+ "description": "Alert state for the alert"
+ }
}
},
"policyDefinitions": [
@@ -604,6 +812,81 @@
"value": "[[[parameters('ALZMonitorDisableTagValues')]"
}
}
+ },
+ {
+ "policyDefinitionReferenceId": "ALZ_AppInsightsThrottlingLimitReached_Alert",
+ "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Authorization/policyDefinitions/Deploy_AppInsightsThrottlingLimit_Alert",
+ "parameters": {
+ "UAMIResourceId": {
+ "value": "[[[if(empty(parameters('BYOUserAssignedManagedIdentityResourceId')), concat('/subscriptions/', parameters('ALZManagementSubscriptionId'), '/resourceGroups/', parameters('ALZMonitorResourceGroupName'), '/providers/Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('ALZUserAssignedManagedIdentityName')),parameters('BYOUserAssignedManagedIdentityResourceId'))]"
+ },
+ "severity": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitSeverity')]"
+ },
+ "operator": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitOperator')]"
+ },
+ "timeAggregation": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitTimeAggregation')]"
+ },
+ "windowSize": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitWindowSize')]"
+ },
+ "evaluationFrequency": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitEvaluationFrequency')]"
+ },
+ "autoMitigate": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitAutoMitigate')]"
+ },
+ "threshold": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitThreshold')]"
+ },
+ "failingPeriods": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitFailingPeriods')]"
+ },
+ "evaluationPeriods": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitEvaluationPeriods')]"
+ },
+ "effect": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitPolicyEffect')]"
+ },
+ "enabled": {
+ "value": "[[[parameters('AppInsightsThrottlingLimitAlertState')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[[parameters('ALZMonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[[parameters('ALZMonitorDisableTagValues')]"
+ }
+ }
+ },
+ {
+ "policyDefinitionReferenceId": "ALZ_activityAppInsightsDelete",
+ "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Authorization/policyDefinitions/Deploy_ActivityLog_AppInsights_Delete",
+ "parameters": {
+ "effect": {
+ "value": "[[[parameters('activityAppInsightsDeletePolicyEffect')]"
+ },
+ "enabled": {
+ "value": "[[[parameters('activityAppInsightsDeleteAlertState')]"
+ },
+ "alertResourceGroupName": {
+ "value": "[[[parameters('ALZMonitorResourceGroupName')]"
+ },
+ "alertResourceGroupTags": {
+ "value": "[[[parameters('ALZMonitorResourceGroupTags')]"
+ },
+ "alertResourceGroupLocation": {
+ "value": "[[[parameters('ALZMonitorResourceGroupLocation')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[[parameters('ALZMonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[[parameters('ALZMonitorDisableTagValues')]"
+ }
+ }
}
],
"policyType": "Custom",
@@ -632,7 +915,9 @@
"[variables('$fxv#0')]",
"[variables('$fxv#1')]",
"[variables('$fxv#2')]",
- "[variables('$fxv#3')]"
+ "[variables('$fxv#3')]",
+ "[variables('$fxv#4')]",
+ "[variables('$fxv#5')]"
],
"AzureCloud": [],
"AzureChinaCloud": [],
@@ -640,7 +925,7 @@
},
"loadPolicySetDefinitions": {
"All": [
- "[string(variables('$fxv#4'))]"
+ "[string(variables('$fxv#6'))]"
],
"AzureCloud": [],
"AzureChinaCloud": [],
diff --git a/patterns/alz/policyDefinitions/policySets.json b/patterns/alz/policyDefinitions/policySets.json
index 81a78d592..f4faf5bb3 100644
--- a/patterns/alz/policyDefinitions/policySets.json
+++ b/patterns/alz/policyDefinitions/policySets.json
@@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.19.5.34762",
- "templateHash": "2780282705340805752"
+ "version": "0.32.4.45862",
+ "templateHash": "15242230497958403084"
}
},
"parameters": {
@@ -13,8 +13,8 @@
"type": "string",
"defaultValue": "alz",
"metadata": {
- "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\"",
- "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!"
+ "message": "The JSON version of this file is programatically generated from Bicep. PLEASE DO NOT UPDATE MANUALLY!!",
+ "description": "Provide a prefix (unique at tenant-scope) for the Management Group hierarchy and other resources created as part of an Azure landing zone. DEFAULT VALUE = \"alz\""
}
},
"location": {
diff --git a/patterns/alz/policySetDefinitions/Deploy-Web-Alerts.json b/patterns/alz/policySetDefinitions/Deploy-Web-Alerts.json
index d821a189b..85e0b0826 100644
--- a/patterns/alz/policySetDefinitions/Deploy-Web-Alerts.json
+++ b/patterns/alz/policySetDefinitions/Deploy-Web-Alerts.json
@@ -6,7 +6,7 @@
"displayName": "Deploy Azure Monitor Baseline Alerts for Web",
"description": "This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services.",
"metadata": {
- "version": "1.0.0",
+ "version": "1.1.0",
"category": "Monitoring",
"source": "https://github.com/Azure/azure-monitor-baseline-alerts/",
"alzCloudEnvironments": [
@@ -15,6 +15,32 @@
"_deployed_by_amba": true
},
"parameters": {
+ "ALZMonitorResourceGroupName": {
+ "type": "String",
+ "defaultValue": "rg-amba-monitoring-001",
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Name",
+ "description": "Name of the resource group to deploy the ALZ monitoring resources to"
+ }
+ },
+ "ALZMonitorResourceGroupTags": {
+ "type": "Object",
+ "defaultValue": {
+ "_deployed_by_alz_monitor": true
+ },
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Tags",
+ "description": "Tags to apply to the resource group"
+ }
+ },
+ "ALZMonitorResourceGroupLocation": {
+ "type": "String",
+ "defaultValue": "centralus",
+ "metadata": {
+ "displayName": "ALZ Monitoring Resource Group Location",
+ "description": "Location of the resource group"
+ }
+ },
"ALZMonitorDisableTagName": {
"type": "String",
"metadata": {
@@ -36,6 +62,29 @@
"Sandbox"
]
},
+ "ALZUserAssignedManagedIdentityName": {
+ "type": "string",
+ "defaultValue": "id-AMBA-ARG-Reader-001",
+ "metadata": {
+ "description": "The name of the user assigned managed identity to be created for monitoring purpose.",
+ "displayName": "Name of the user assigned managed identity to be created."
+ }
+ },
+ "ALZManagementSubscriptionId": {
+ "type": "string",
+ "defaultValue": "",
+ "metadata": {
+ "description": "The subscription ID of the management subscription where the user assigned managed identity will be created."
+ }
+ },
+ "BYOUserAssignedManagedIdentityResourceId": {
+ "type": "string",
+ "defaultValue": "",
+ "metadata": {
+ "description": "The resource Id of the user assigned managed identity provided by the customer.",
+ "displayName": "Customer defined User Assigned managed Identity resource Id."
+ }
+ },
"WSFCPUPercentageAlertSeverity": {
"type": "String",
"defaultValue": "2",
@@ -355,6 +404,163 @@
"displayName": "WSF HTTP Queue Lenght Evaluation Periods",
"description": "The number of aggregated lookback points."
}
+ },
+ "AppInsightsThrottlingLimitSeverity": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Severity",
+ "description": "Severity of the Alert"
+ },
+ "allowedValues": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "defaultValue": "2"
+ },
+ "AppInsightsThrottlingLimitOperator": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Operator"
+ },
+ "allowedValues": [
+ "GreaterThan",
+ "GreaterThanOrEqual"
+ ],
+ "defaultValue": "GreaterThan"
+ },
+ "AppInsightsThrottlingLimitTimeAggregation": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert TimeAggregation"
+ },
+ "allowedValues": [
+ "Count"
+ ],
+ "defaultValue": "Count"
+ },
+ "AppInsightsThrottlingLimitWindowSize": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Window Size",
+ "description": "Window size for the alert"
+ },
+ "allowedValues": [
+ "PT1M",
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "P1D"
+ },
+ "AppInsightsThrottlingLimitEvaluationFrequency": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Evaluation Frequency",
+ "description": "Evaluation frequency for the alert"
+ },
+ "allowedValues": [
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "PT1H"
+ },
+ "AppInsightsThrottlingLimitAutoMitigate": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Auto Mitigate",
+ "description": "Auto Mitigate for the alert"
+ },
+ "allowedValues": [
+ "true",
+ "false"
+ ],
+ "defaultValue": "true"
+ },
+ "AppInsightsThrottlingLimitThreshold": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Threshold",
+ "description": "Threshold for the alert"
+ },
+ "defaultValue": "32000"
+ },
+ "AppInsightsThrottlingLimitFailingPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Failing Periods",
+ "description": "Number of failing periods before alert is fired"
+ },
+ "defaultValue": "1"
+ },
+ "AppInsightsThrottlingLimitEvaluationPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Evaluation Periods",
+ "description": "The number of aggregated lookback points."
+ },
+ "defaultValue": "1"
+ },
+ "AppInsightsThrottlingLimitPolicyEffect": {
+ "type": "string",
+ "defaultValue": "deployIfNotExists",
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "metadata": {
+ "displayName": "Application Insights Throttling Limit Reached Alert Policy Effect",
+ "description": "Policy effect for the alert, deployIfNotExists will create the alert if it does not exist, disabled will not create the alert"
+ }
+ },
+ "AppInsightsThrottlingLimitAlertState": {
+ "type": "string",
+ "defaultValue": "true",
+ "metadata": {
+ "displayName": "AApplication Insights Throttling Limit Reached Alert State",
+ "description": "Alert state for the alert"
+ }
+ },
+ "activityAppInsightsDeletePolicyEffect": {
+ "type": "string",
+ "defaultValue": "deployIfNotExists",
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "metadata": {
+ "displayName": "Activity Log Application Insights Alert Delete Policy Effect",
+ "description": "Policy effect for the alert, deployIfNotExists will create the alert if it does not exist, disabled will not create the alert"
+ }
+ },
+ "activityAppInsightsDeleteAlertState": {
+ "type": "string",
+ "defaultValue": "true",
+ "metadata": {
+ "displayName": "Activity Log Application Insights Alert Delete Alert State",
+ "description": "Alert state for the alert"
+ }
}
},
"policyDefinitions": [
@@ -483,6 +689,81 @@
"value": "[[parameters('ALZMonitorDisableTagValues')]"
}
}
+ },
+ {
+ "policyDefinitionReferenceId": "ALZ_AppInsightsThrottlingLimitReached_Alert",
+ "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Authorization/policyDefinitions/Deploy_AppInsightsThrottlingLimit_Alert",
+ "parameters": {
+ "UAMIResourceId": {
+ "value": "[[if(empty(parameters('BYOUserAssignedManagedIdentityResourceId')), concat('/subscriptions/', parameters('ALZManagementSubscriptionId'), '/resourceGroups/', parameters('ALZMonitorResourceGroupName'), '/providers/Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('ALZUserAssignedManagedIdentityName')),parameters('BYOUserAssignedManagedIdentityResourceId'))]"
+ },
+ "severity": {
+ "value": "[[parameters('AppInsightsThrottlingLimitSeverity')]"
+ },
+ "operator": {
+ "value": "[[parameters('AppInsightsThrottlingLimitOperator')]"
+ },
+ "timeAggregation": {
+ "value": "[[parameters('AppInsightsThrottlingLimitTimeAggregation')]"
+ },
+ "windowSize": {
+ "value": "[[parameters('AppInsightsThrottlingLimitWindowSize')]"
+ },
+ "evaluationFrequency": {
+ "value": "[[parameters('AppInsightsThrottlingLimitEvaluationFrequency')]"
+ },
+ "autoMitigate": {
+ "value": "[[parameters('AppInsightsThrottlingLimitAutoMitigate')]"
+ },
+ "threshold": {
+ "value": "[[parameters('AppInsightsThrottlingLimitThreshold')]"
+ },
+ "failingPeriods": {
+ "value": "[[parameters('AppInsightsThrottlingLimitFailingPeriods')]"
+ },
+ "evaluationPeriods": {
+ "value": "[[parameters('AppInsightsThrottlingLimitEvaluationPeriods')]"
+ },
+ "effect": {
+ "value": "[[parameters('AppInsightsThrottlingLimitPolicyEffect')]"
+ },
+ "enabled": {
+ "value": "[[parameters('AppInsightsThrottlingLimitAlertState')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[parameters('ALZMonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[parameters('ALZMonitorDisableTagValues')]"
+ }
+ }
+ },
+ {
+ "policyDefinitionReferenceId": "ALZ_activityAppInsightsDelete",
+ "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Authorization/policyDefinitions/Deploy_ActivityLog_AppInsights_Delete",
+ "parameters": {
+ "effect": {
+ "value": "[[parameters('activityAppInsightsDeletePolicyEffect')]"
+ },
+ "enabled": {
+ "value": "[[parameters('activityAppInsightsDeleteAlertState')]"
+ },
+ "alertResourceGroupName": {
+ "value": "[[parameters('ALZMonitorResourceGroupName')]"
+ },
+ "alertResourceGroupTags": {
+ "value": "[[parameters('ALZMonitorResourceGroupTags')]"
+ },
+ "alertResourceGroupLocation": {
+ "value": "[[parameters('ALZMonitorResourceGroupLocation')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[parameters('ALZMonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[parameters('ALZMonitorDisableTagValues')]"
+ }
+ }
}
],
"policyType": "Custom",
diff --git a/patterns/alz/templates/policies-Web.bicep b/patterns/alz/templates/policies-Web.bicep
index 76bd9b953..a30c7585d 100644
--- a/patterns/alz/templates/policies-Web.bicep
+++ b/patterns/alz/templates/policies-Web.bicep
@@ -72,6 +72,8 @@ var loadPolicyDefinitions = {
loadTextContent('../../../services/Web/serverFarms/Deploy-WSF-DiskQueueLength-Alert.json')
loadTextContent('../../../services/Web/serverFarms/Deploy-WSF-HttpQueueLength-Alert.json')
loadTextContent('../../../services/Web/serverFarms/Deploy-WSF-MemoryPercentage-Alert.json')
+ loadTextContent('../../../services/Insights/components/Deploy-AppInsightsThrottlingLimit-Alert.json')
+ loadTextContent('../../../services/Insights/components/Deploy-ActivityLog-AppInsights-Del.json')
]
AzureCloud: []
AzureChinaCloud: []
diff --git a/services/Insights/components/Deploy-ActivityLog-AppInsights-Del.json b/services/Insights/components/Deploy-ActivityLog-AppInsights-Del.json
new file mode 100644
index 000000000..91b145883
--- /dev/null
+++ b/services/Insights/components/Deploy-ActivityLog-AppInsights-Del.json
@@ -0,0 +1,285 @@
+{
+ "type": "Microsoft.Authorization/policyDefinitions",
+ "apiVersion": "2021-06-01",
+ "name": "Deploy_ActivityLog_AppInsights_Delete",
+ "properties": {
+ "policyType": "Custom",
+ "mode": "All",
+ "displayName": "Deploy Activity Log Application Insights Delete Alert (Preview)",
+ "description": "Policy to Deploy Activity Log Application Insights Delete Alert",
+ "metadata": {
+ "version": "1.0.0",
+ "category": "Monitoring",
+ "source": "https://github.com/Azure/azure-monitor-baseline-alerts/",
+ "alzCloudEnvironments": [
+ "AzureCloud"
+ ],
+ "_deployed_by_amba": "True"
+ },
+ "parameters": {
+ "enabled": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Alert State",
+ "description": "Alert state for the alert"
+ },
+ "allowedValues": [
+ "true",
+ "false"
+ ],
+ "defaultValue": "true"
+ },
+ "alertResourceGroupName": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Resource Group Name",
+ "description": "Resource group the alert is placed in"
+ },
+ "defaultValue": "rg-amba-monitoring-001"
+ },
+ "alertResourceGroupTags": {
+ "type": "Object",
+ "metadata": {
+ "displayName": "Resource Group Tags",
+ "description": "Tags on the Resource group the alert is placed in"
+ },
+ "defaultValue": {
+ "_deployed_by_amba": true
+ }
+ },
+ "alertResourceGroupLocation": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Resource Group Location",
+ "description": "Location of the Resource group the alert is placed in"
+ },
+ "defaultValue": "centralus"
+ },
+ "effect": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Effect",
+ "description": "Effect of the policy"
+ },
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "defaultValue": "deployIfNotExists"
+ },
+ "MonitorDisableTagName": {
+ "type": "String",
+ "metadata": {
+ "displayName": "ALZ Monitoring disabled tag name",
+ "description": "Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled."
+ },
+ "defaultValue": "MonitorDisable"
+ },
+ "MonitorDisableTagValues": {
+ "type": "Array",
+ "metadata": {
+ "displayName": "ALZ Monitoring disabled tag values(s)",
+ "description": "Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled."
+ },
+ "defaultValue": [
+ "true",
+ "Test",
+ "Dev",
+ "Sandbox"
+ ]
+ }
+ },
+ "policyRule": {
+ "if": {
+ "allOf": [
+ {
+ "field": "type",
+ "equals": "microsoft.insights/components"
+ },
+ {
+ "field": "[[concat('tags[', parameters('MonitorDisableTagName'), ']')]",
+ "notIn": "[[parameters('MonitorDisableTagValues')]"
+ }
+ ]
+ },
+ "then": {
+ "effect": "[[parameters('effect')]",
+ "details": {
+ "roleDefinitionIds": [
+ "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
+ ],
+ "type": "Microsoft.Insights/activityLogAlerts",
+ "name": "ActivityAppInsightsDelete",
+ "existenceScope": "resourcegroup",
+ "resourceGroupName": "[[parameters('alertResourceGroupName')]",
+ "deploymentScope": "subscription",
+ "existenceCondition": {
+ "allOf": [
+ {
+ "field": "Microsoft.Insights/ActivityLogAlerts/enabled",
+ "equals": "[[parameters('enabled')]"
+ },
+ {
+ "count": {
+ "field": "Microsoft.Insights/ActivityLogAlerts/condition.allOf[*]",
+ "where": {
+ "anyOf": [
+ {
+ "allOf": [
+ {
+ "field": "Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].field",
+ "equals": "category"
+ },
+ {
+ "field": "Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].equals",
+ "equals": "Administrative"
+ }
+ ]
+ },
+ {
+ "allOf": [
+ {
+ "field": "microsoft.insights/activityLogAlerts/condition.allOf[*].field",
+ "equals": "operationName"
+ },
+ {
+ "field": "microsoft.insights/activityLogAlerts/condition.allOf[*].equals",
+ "equals": "Microsoft.Insights/Components/Delete"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "equals": 2
+ }
+ ]
+ },
+ "deployment": {
+ "location": "northeurope",
+ "properties": {
+ "mode": "incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "alertResourceGroupName": {
+ "type": "string"
+ },
+ "alertResourceGroupTags": {
+ "type": "object"
+ },
+ "alertResourceGroupLocation": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "string"
+ }
+ },
+ "variables": {},
+ "resources": [
+ {
+ "type": "Microsoft.Resources/resourceGroups",
+ "apiVersion": "2021-04-01",
+ "name": "[[parameters('alertResourceGroupName')]",
+ "location": "[[parameters('alertResourceGroupLocation')]",
+ "tags": "[[parameters('alertResourceGroupTags')]"
+ },
+ {
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2019-10-01",
+ "name": "ActivityAppInsightsDeleteAlert",
+ "resourceGroup": "[[parameters('alertResourceGroupName')]",
+ "dependsOn": [
+ "[[concat('Microsoft.Resources/resourceGroups/', parameters('alertResourceGroupName'))]"
+ ],
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "enabled": {
+ "type": "string"
+ },
+ "alertResourceGroupName": {
+ "type": "string"
+ }
+ },
+ "variables": {},
+ "resources": [
+ {
+ "type": "microsoft.insights/activityLogAlerts",
+ "apiVersion": "2020-10-01",
+ "name": "ActivityAppInsightsDelete",
+ "location": "global",
+ "tags": {
+ "_deployed_by_amba": true
+ },
+ "properties": {
+ "displayName": "Application Insights Resource Delete Alert (Preview)",
+ "description": "Activity Log Application Insights Delete Alert",
+ "enabled": "[[parameters('enabled')]",
+ "scopes": [
+ "[[subscription().id]"
+ ],
+ "condition": {
+ "allOf": [
+ {
+ "field": "category",
+ "equals": "Administrative"
+ },
+ {
+ "field": "operationName",
+ "equals": "Microsoft.Insights/Components/Delete"
+ },
+ {
+ "field": "status",
+ "containsAny": [
+ "succeeded"
+ ]
+ }
+ ]
+ },
+ "parameters": {
+ "enabled": {
+ "value": "[[parameters('enabled')]"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "parameters": {
+ "enabled": {
+ "value": "[[parameters('enabled')]"
+ },
+ "alertResourceGroupName": {
+ "value": "[[parameters('alertResourceGroupName')]"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "parameters": {
+ "enabled": {
+ "value": "[[parameters('enabled')]"
+ },
+ "alertResourceGroupName": {
+ "value": "[[parameters('alertResourceGroupName')]"
+ },
+ "alertResourceGroupTags": {
+ "value": "[[parameters('alertResourceGroupTags')]"
+ },
+ "alertResourceGroupLocation": {
+ "value": "[[parameters('alertResourceGroupLocation')]"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/services/Insights/components/Deploy-AppInsightsThrottlingLimit-Alert.json b/services/Insights/components/Deploy-AppInsightsThrottlingLimit-Alert.json
new file mode 100644
index 000000000..ca971fae6
--- /dev/null
+++ b/services/Insights/components/Deploy-AppInsightsThrottlingLimit-Alert.json
@@ -0,0 +1,483 @@
+{
+ "type": "Microsoft.Authorization/policyDefinitions",
+ "apiVersion": "2021-06-01",
+ "name": "Deploy_AppInsightsThrottlingLimit_Alert",
+ "properties": {
+ "policyType": "Custom",
+ "mode": "All",
+ "displayName": "Deploy Application Insights Throttling Limit Reached Alert (Preview)",
+ "description": "Policy to audit/deploy Application Insights Throttling Limit Reached Alert",
+ "metadata": {
+ "version": "1.0.0",
+ "category": "Monitoring",
+ "source": "https://github.com/Azure/azure-monitor-baseline-alerts/",
+ "alzCloudEnvironments": [
+ "AzureCloud"
+ ],
+ "_deployed_by_amba": "True"
+ },
+ "parameters": {
+ "UAMIResourceId": {
+ "type": "string",
+ "defaultValue": "",
+ "metadata": {
+ "description": "The resource Id of the user assigned managed identity.",
+ "displayName": "User Assigned managed Identity resource Id."
+ }
+ },
+ "severity": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Severity",
+ "description": "Severity of the Alert"
+ },
+ "allowedValues": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "defaultValue": "2"
+ },
+ "operator": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Operator"
+ },
+ "allowedValues": [
+ "GreaterThan",
+ "GreaterThanOrEqual"
+ ],
+ "defaultValue": "GreaterThan"
+ },
+ "timeAggregation": {
+ "type": "String",
+ "metadata": {
+ "displayName": "TimeAggregation"
+ },
+ "allowedValues": [
+ "Count"
+ ],
+ "defaultValue": "Count"
+ },
+ "windowSize": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Window Size",
+ "description": "Window size for the alert"
+ },
+ "allowedValues": [
+ "PT1M",
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "P1D"
+ },
+ "evaluationFrequency": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Evaluation Frequency",
+ "description": "Evaluation frequency for the alert"
+ },
+ "allowedValues": [
+ "PT5M",
+ "PT10M",
+ "PT15M",
+ "PT30M",
+ "PT45M",
+ "PT1H",
+ "PT2H",
+ "PT3H",
+ "PT4H",
+ "PT5H",
+ "PT6H",
+ "P1D"
+ ],
+ "defaultValue": "PT1H"
+ },
+ "autoMitigate": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Auto Mitigate",
+ "description": "Auto Mitigate for the alert"
+ },
+ "allowedValues": [
+ "true",
+ "false"
+ ],
+ "defaultValue": "true"
+ },
+ "enabled": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Alert State",
+ "description": "Alert state for the alert"
+ },
+ "allowedValues": [
+ "true",
+ "false"
+ ],
+ "defaultValue": "true"
+ },
+ "threshold": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Threshold",
+ "description": "Threshold for the alert"
+ },
+ "defaultValue": "32000"
+ },
+ "failingPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Failing Periods",
+ "description": "Number of failing periods before alert is fired"
+ },
+ "defaultValue": "1"
+ },
+ "evaluationPeriods": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Evaluation Periods",
+ "description": "The number of aggregated lookback points."
+ },
+ "defaultValue": "1"
+ },
+ "effect": {
+ "type": "String",
+ "metadata": {
+ "displayName": "Effect",
+ "description": "Effect of the policy"
+ },
+ "allowedValues": [
+ "deployIfNotExists",
+ "disabled"
+ ],
+ "defaultValue": "deployIfNotExists"
+ },
+ "MonitorDisableTagName": {
+ "type": "String",
+ "metadata": {
+ "displayName": "ALZ Monitoring disabled tag name",
+ "description": "Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled."
+ },
+ "defaultValue": "MonitorDisable"
+ },
+ "MonitorDisableTagValues": {
+ "type": "Array",
+ "metadata": {
+ "displayName": "ALZ Monitoring disabled tag values(s)",
+ "description": "Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled."
+ },
+ "defaultValue": [
+ "true",
+ "Test",
+ "Dev",
+ "Sandbox"
+ ]
+ }
+ },
+ "policyRule": {
+ "if": {
+ "allOf": [
+ {
+ "field": "type",
+ "equals": "Microsoft.Insights/components"
+ },
+ {
+ "field": "[[concat('tags[', parameters('MonitorDisableTagName'), ']')]",
+ "notIn": "[[parameters('MonitorDisableTagValues')]"
+ }
+ ]
+ },
+ "then": {
+ "effect": "[[parameters('effect')]",
+ "details": {
+ "roleDefinitionIds": [
+ "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
+ ],
+ "type": "Microsoft.Insights/scheduledQueryRules",
+ "existenceCondition": {
+ "allOf": [
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/enabled",
+ "equals": "[[parameters('enabled')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/evaluationFrequency",
+ "equals": "[[parameters('evaluationFrequency')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/windowSize",
+ "equals": "[[parameters('windowSize')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/severity",
+ "equals": "[[parameters('severity')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/autoMitigate",
+ "equals": "[[parameters('autoMitigate')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].threshold",
+ "equals": 0
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].operator",
+ "equals": "[[parameters('operator')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].timeAggregation",
+ "equals": "[[parameters('timeAggregation')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].failingPeriods.numberOfEvaluationPeriods",
+ "equals": "[[parameters('evaluationPeriods')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].failingPeriods.minFailingPeriodsToAlert",
+ "equals": "[[parameters('failingPeriods')]"
+ },
+ {
+ "field": "Microsoft.Insights/scheduledQueryRules/criteria.allOf[*].query",
+ "equals": "[[format('let policyThresholdString = \"{2}\"; let overridenResource = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | project _ResourceId = tolower(id), tags | where tags contains \"_amba-Throttling-threshold-override_\"); let excludedResources = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | where parse_json(tostring(tags.[\"{0}\"])) in~ (\"{1}\") | project _ResourceId = tolower(id)); let appInsightsResources = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | project _ResourceId = tolower(id), name); AppSystemEvents | where _ResourceId =~ \"{3}\" | where _ResourceId !in~ (excludedResources) | summarize numOfEvents = sum(toint(Measurements[\"BillingTelemetryCount\"])) by _ResourceId, Type, bin(TimeGenerated, 1h) | join hint.remote=left kind=leftouter overridenResource on _ResourceId | project-away _ResourceId1 | extend appliedThresholdString = iif(tags contains \"_amba-Throttling-threshold-override_\", tags.[\"_amba-Throttling-threshold-override_\"], policyThresholdString) | extend appliedThreshold = toint(appliedThresholdString) | where numOfEvents > appliedThreshold | join hint.remote=left kind=inner appInsightsResources on _ResourceId | project TimeGenerated, _ResourceId, name, numOfEvents', parameters('MonitorDisableTagName'), join(parameters('MonitorDisableTagValues'), '\",\"'), parameters('threshold'), field('id'))]"
+ },
+ {
+ "field": "identity.userAssignedIdentities",
+ "containsKey": "[[parameters('UAMIResourceId')]"
+ }
+ ]
+ },
+ "deployment": {
+ "properties": {
+ "mode": "incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "resourceName": {
+ "type": "String",
+ "metadata": {
+ "displayName": "resourceName",
+ "description": "Name of the resource"
+ }
+ },
+ "resourceId": {
+ "type": "String",
+ "metadata": {
+ "displayName": "resourceId",
+ "description": "Resource ID of the resource emitting the metric that will be used for the comparison"
+ }
+ },
+ "resourceLocation": {
+ "type": "String",
+ "metadata": {
+ "displayName": "resourceLocation",
+ "description": "Location of the resource"
+ }
+ },
+ "UAMIResourceId": {
+ "type": "string"
+ },
+ "severity": {
+ "type": "String"
+ },
+ "windowSize": {
+ "type": "String"
+ },
+ "evaluationFrequency": {
+ "type": "String"
+ },
+ "autoMitigate": {
+ "type": "String"
+ },
+ "enabled": {
+ "type": "String"
+ },
+ "threshold": {
+ "type": "String"
+ },
+ "operator": {
+ "type": "String"
+ },
+ "timeAggregation": {
+ "type": "String"
+ },
+ "failingPeriods": {
+ "type": "String"
+ },
+ "evaluationPeriods": {
+ "type": "String"
+ },
+ "MonitorDisableTagName": {
+ "type": "String"
+ },
+ "MonitorDisableTagValues": {
+ "type": "Array"
+ }
+ },
+ "variables": {},
+ "resources": [
+ {
+ "type": "Microsoft.Insights/scheduledQueryRules",
+ "apiVersion": "2022-08-01-preview",
+ "name": "[[concat(parameters('resourceName'), '-ApplicationInsightsThrottlingLimitReachedAlert')]",
+ "location": "[[parameters('resourceLocation')]",
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "[[parameters('UAMIResourceId')]": {}
+ }
+ },
+ "tags": {
+ "_deployed_by_amba": true
+ },
+ "properties": {
+ "displayName": "[[concat(parameters('resourceName'), '-Application Insights Throttling Limit Reached (Preview)')]",
+ "description": "Log Alert for Application Insights Throttling Limit Reached",
+ "severity": "[[parameters('severity')]",
+ "enabled": "[[parameters('enabled')]",
+ "scopes": [
+ "[[reference(parameters('resourceId'),'2020-02-02').WorkspaceResourceId]"
+ ],
+ "evaluationFrequency": "[[parameters('evaluationFrequency')]",
+ "windowSize": "[[parameters('windowSize')]",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "[[format('let policyThresholdString = \"{2}\"; let overridenResource = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | project _ResourceId = tolower(id), tags | where tags contains \"_amba-Throttling-threshold-override_\"); let excludedResources = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | where parse_json(tostring(tags.[\"{0}\"])) in~ (\"{1}\") | project _ResourceId = tolower(id)); let appInsightsResources = (arg(\"\").resources | where type =~ \"Microsoft.Insights/components\" | project _ResourceId = tolower(id), name); AppSystemEvents | where _ResourceId =~ \"{3}\" | where _ResourceId !in~ (excludedResources) | summarize numOfEvents = sum(toint(Measurements[\"BillingTelemetryCount\"])) by _ResourceId, Type, bin(TimeGenerated, 1h) | join hint.remote=left kind=leftouter overridenResource on _ResourceId | project-away _ResourceId1 | extend appliedThresholdString = iif(tags contains \"_amba-Throttling-threshold-override_\", tags.[\"_amba-Throttling-threshold-override_\"], policyThresholdString) | extend appliedThreshold = toint(appliedThresholdString) | where numOfEvents > appliedThreshold | join hint.remote=left kind=inner appInsightsResources on _ResourceId | project TimeGenerated, _ResourceId, name, numOfEvents', parameters('MonitorDisableTagName'), join(parameters('MonitorDisableTagValues'), '\",\"'), parameters('threshold'), parameters('resourceId'))]",
+ "threshold": 0,
+ "operator": "[[parameters('operator')]",
+ "dimensions": [
+ {
+ "name": "name",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "resourceIdColumn": "_ResourceId",
+ "timeAggregation": "[[parameters('timeAggregation')]",
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": "[[parameters('evaluationPeriods')]",
+ "minFailingPeriodsToAlert": "[[parameters('failingPeriods')]"
+ }
+ }
+ ]
+ },
+ "autoMitigate": "[[parameters('autoMitigate')]",
+ "parameters": {
+ "UAMIResourceId": {
+ "value": "[[parameters('UAMIResourceId')]"
+ },
+ "severity": {
+ "value": "[[parameters('severity')]"
+ },
+ "windowSize": {
+ "value": "[[parameters('windowSize')]"
+ },
+ "evaluationFrequency": {
+ "value": "[[parameters('evaluationFrequency')]"
+ },
+ "autoMitigate": {
+ "value": "[[parameters('autoMitigate')]"
+ },
+ "enabled": {
+ "value": "[[parameters('enabled')]"
+ },
+ "threshold": {
+ "value": "[[parameters('threshold')]"
+ },
+ "operator": {
+ "value": "[[parameters('operator')]"
+ },
+ "timeAggregation": {
+ "value": "[[parameters('timeAggregation')]"
+ },
+ "failingPeriods": {
+ "value": "[[parameters('failingPeriods')]"
+ },
+ "evaluationPeriods": {
+ "value": "[[parameters('evaluationPeriods')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[parameters('MonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[parameters('MonitorDisableTagValues')]"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "parameters": {
+ "resourceName": {
+ "value": "[[field('name')]"
+ },
+ "resourceId": {
+ "value": "[[field('id')]"
+ },
+ "resourceLocation": {
+ "value": "[[field('location')]"
+ },
+ "UAMIResourceId": {
+ "value": "[[parameters('UAMIResourceId')]"
+ },
+ "severity": {
+ "value": "[[parameters('severity')]"
+ },
+ "windowSize": {
+ "value": "[[parameters('windowSize')]"
+ },
+ "evaluationFrequency": {
+ "value": "[[parameters('evaluationFrequency')]"
+ },
+ "autoMitigate": {
+ "value": "[[parameters('autoMitigate')]"
+ },
+ "enabled": {
+ "value": "[[parameters('enabled')]"
+ },
+ "threshold": {
+ "value": "[[parameters('threshold')]"
+ },
+ "operator": {
+ "value": "[[parameters('operator')]"
+ },
+ "timeAggregation": {
+ "value": "[[parameters('timeAggregation')]"
+ },
+ "failingPeriods": {
+ "value": "[[parameters('failingPeriods')]"
+ },
+ "evaluationPeriods": {
+ "value": "[[parameters('evaluationPeriods')]"
+ },
+ "MonitorDisableTagName": {
+ "value": "[[parameters('MonitorDisableTagName')]"
+ },
+ "MonitorDisableTagValues": {
+ "value": "[[parameters('MonitorDisableTagValues')]"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}