Reputation: 4748
I am using an ARM template to programmatically create an Application Insights web test and alert rule. The ARM template is based on this article.
Both the web test and the alert rule are created, but the Alerts property of the web test is disabled. The alert rule is listed on the Alert rules blade, however not in the Webtests section, but in the Others section, see picture:
What am I missing in order to get a web test with an enabled alert?
ARM template (the value of WebTest
property was removed by SO):
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "webTestName": { "type": "string" }, "appName": { "type": "string" } }, "variables": { "url": "http://www.google.com", "testName": "[concat(parameters('webTestName'), '-', toLower(parameters('appName')))]", "alertRuleName": "[concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId)]" }, "resources": [ { "name": "[parameters('appName')]", "type": "Microsoft.Insights/components", "apiVersion": "2014-04-01", "kind": "web", "location": "Central US", "properties": { "Application_Type": "web", "Flow_Type": "Redfield", "Request_Source": "Unknown", "Name": "[parameters('appName')]", "PackageId": null, "ApplicationId": "[parameters('appName')]" }, "tags": { "applicationType": "web" } }, { "name": "[variables('testName')]", "apiVersion": "2014-04-01", "type": "microsoft.insights/webtests", "location": "Central US", "dependsOn": [ "[resourceId('Microsoft.Insights/components', parameters('appName'))]" ], "tags": { "[concat('hidden-link:', resourceId('Microsoft.Insights/components', parameters('appName')))]": "Resource" }, "properties": { "Name": "[parameters('webTestName')]", "Description": "description", "Enabled": true, "Frequency": 300, "Timeout": 120, "Kind": "ping", "RetryEnabled": true, "Locations": [ { "Id": "us-il-ch1-azr" }, { "Id": "emea-se-sto-edge" }, { "Id": "emea-nl-ams-azr" } ], "Configuration": { "WebTest": "[concat(' ')]" }, "SyntheticMonitorId": "[variables('testName')]" } }, { "name": "[variables('alertRuleName')]", "apiVersion": "2014-04-01", "type": "Microsoft.Insights/alertrules", "location": "East US", "dependsOn": [ "[resourceId('Microsoft.Insights/webtests', variables('testName'))]" ], "tags": { "[concat('hidden-link:', resourceId('microsoft.insights/components', parameters('appName')))]": "Resource", "[concat('hidden-link:', resourceId('microsoft.insights/webtests', variables('testName')))]": "Resource" }, "properties": { "name": "[variables('alertRuleName')]", "description": "Alert for availability test", "isEnabled": true, "condition": { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.LocationThresholdRuleCondition, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition", "dataSource": { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleMetricDataSource, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", "resourceUri": "[resourceId('microsoft.insights/webtests', variables('testName'))]", "metricName": "GSMT_AvRaW" }, "windowSize": "PT5M", "failedLocationCount": 2 }, "actions": [ { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleEmailAction, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", "sendToServiceOwners": true, "customEmails": [] } ] } } ] }
Upvotes: 1
Views: 1214
Reputation: 4748
It turned out the value of resourceUri
is case-sensitive. Solution:
"variables": {
...
"testName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName'))))]",
"alertRuleName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId))]"
},
Upvotes: 2