Web 测试中未启用 Azure ARM 模板中的警报规则
Alert rule in Azure ARM template not enabled in web test
我正在使用 ARM 模板以编程方式创建 Application Insights Web 测试和警报规则。 ARM模板基于this article。
web 测试和警报规则都已创建,但禁用了web 测试的Alerts 属性。警报规则列在 Alert rules blade,但不在 Webtests 部分,而是在 其他部分,见图:
为了在启用警报的情况下进行 Web 测试,我缺少什么?
ARM 模板(WebTest
属性 的值被 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": []
}
]
}
}
]
}
原来 resourceUri
的值是区分大小写的。解决方案:
"variables": {
...
"testName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName'))))]",
"alertRuleName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId))]"
},
我正在使用 ARM 模板以编程方式创建 Application Insights Web 测试和警报规则。 ARM模板基于this article。
web 测试和警报规则都已创建,但禁用了web 测试的Alerts 属性。警报规则列在 Alert rules blade,但不在 Webtests 部分,而是在 其他部分,见图:
为了在启用警报的情况下进行 Web 测试,我缺少什么?
ARM 模板(WebTest
属性 的值被 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": [] } ] } } ] }
原来 resourceUri
的值是区分大小写的。解决方案:
"variables": {
...
"testName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName'))))]",
"alertRuleName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId))]"
},