Metric alert rule with a dynamic threshold

by hutzleo
Last updated: 01-12-2020

This template creates a metric alert rule that monitors the CPU Percentage metric of a virtual machine using a dynamic threshold condition type.

This Azure Resource Manager (ARM) template was created by a member of the community and not by Microsoft. Each ARM template is licensed to you under a licence agreement by its owner, not Microsoft. Microsoft is not responsible for ARM templates provided and licensed by community members and does not screen for security, compatibility or performance. Community ARM templates are not supported under any Microsoft support programme or service and are made available AS IS without warranty of any kind.

Parameters

Parameter Name Description
alertName Name of the alert
alertDescription Description of alert
alertSeverity Severity of alert {0,1,2,3,4}
isEnabled Specifies whether the alert is enabled
resourceId Full Resource ID of the resource emitting the metric that will be used for the comparison. For example /subscriptions/00000000-0000-0000-0000-0000-00000000/resourceGroups/ResourceGroupName/providers/Microsoft.compute/virtualMachines/VM_xyz
metricName Name of the metric used in the comparison to activate the alert.
operator Operator comparing the current value with the threshold value.
alertSensitivity Tunes how 'noisy' the Dynamic Thresholds alerts will be: 'High' will result in more alerts while 'Low' will result in fewer alerts.
numberOfEvaluationPeriods The number of periods to check in the alert evaluation.
minFailingPeriodsToAlert The number of unhealthy periods to alert on (must be lower or equal to numberOfEvaluationPeriods).
ignoreDataBefore Use this option to set the date from which to start learning the metric historical data and calculate the dynamic thresholds (in ISO8601 format, e.g. '2019-12-31T22:00:00Z').
timeAggregation How the data that is collected should be combined over time.
windowSize Period of time used to monitor alert activity based on the threshold. Must be between five minutes and one hour. ISO 8601 duration format.
evaluationFrequency how often the metric alert is evaluated represented in ISO 8601 duration format

Use the template

PowerShell

New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-monitoring-dynamic-metric-alert/azuredeploy.json
Install and configure Azure PowerShell

Command line

az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
az group deployment create --resource-group <my-resource-group> --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-monitoring-dynamic-metric-alert/azuredeploy.json
Install and Configure the Azure Cross-Platform Command-Line Interface