Create a new alert rule using the CLI, PowerShell, or an ARM template

You can create a new alert rule using the the CLI, PowerShell, or an Azure Resource Manager template.

Create a new alert rule using the CLI

You can create a new alert rule using the Azure CLI. You can see the full list of the Azure CLI commands for Azure Monitor.

  1. Use these.

    For example, to create a metric alert rule that monitors if average Percentage CPU on a VM is greater than 90:

     az monitor metrics alert create -n {nameofthealert} -g {ResourceGroup} --scopes {VirtualMachineResourceID} --condition "avg Percentage CPU > 90" --description {descriptionofthealert}
    

Create a new alert rule using PowerShell

  • To create a metric alert rule using PowerShell, use the Add-AzMetricAlertRuleV2 cmdlet.

    Note

    When you create a metric alert on a single resource, the syntax uses the TargetResourceId. When you create a metric alert on multiple resources, the syntax contains the TargetResourceScope, TargetResourceType, and TargetResourceRegion.

  • To create a log search alert rule using PowerShell, use the New-AzScheduledQueryRule cmdlet.
  • To create an activity log alert rule using PowerShell, use the Set-AzActivityLogAlert cmdlet.

Create a new alert rule using an ARM template

You can use an Azure Resource Manager template (ARM template) to configure alert rules consistently in all of your environments.

  1. Create a new resource, using the following resource types:

    • For metric alerts: Microsoft.Insights/metricAlerts

      Note

      • We recommend that you create the metric alert using the same resource group as your target resource.
      • Metric alerts for an Azure Log Analytics workspace resource type (Microsoft.OperationalInsights/workspaces) are configured differently than other metric alerts. For more information, see Resource Template for Metric Alerts for Logs.
      • If you are creating a metric alert for a single resource, the template uses the ResourceId of the target resource. If you are creating a metric alert for multiple resources, the template uses the scope, TargetResourceType, and TargetResourceRegion for the target resources.
    • For log search alerts: Microsoft.Insights/scheduledQueryRules
    • For activity log, service health, and resource health alerts: microsoft.Insights/activityLogAlerts
  2. Copy one of the templates from these sample ARM templates.

  3. Edit the template file to contain appropriate information for your alert, and save the file as <your-alert-template-file>.json.

  4. Edit the corresponding parameters file to customize the alert, and save as <your-alert-template-file>.parameters.json.

  5. Set the metricName parameter, using one of the values in Azure Monitor supported metrics.

  6. Deploy the template using PowerShell or the CLI.

Next steps