az monitor metrics alert

Manage near-realtime metric alert rules.

Commands

Name Description Type Status
az monitor metrics alert condition

Manage near-realtime metric alert rule conditions.

Core GA
az monitor metrics alert condition create

Build a metric alert rule condition.

Core Preview
az monitor metrics alert create

Create a metric-based alert rule.

Core GA
az monitor metrics alert delete

Delete a metrics-based alert rule.

Core GA
az monitor metrics alert dimension

Manage near-realtime metric alert rule dimensions.

Core GA
az monitor metrics alert dimension create

Build a metric alert rule dimension.

Core Preview
az monitor metrics alert list

List metric-based alert rules.

Core GA
az monitor metrics alert show

Show a metrics-based alert rule.

Core GA
az monitor metrics alert update

Update a metric-based alert rule.

Core GA

az monitor metrics alert create

Create a metric-based alert rule.

az monitor metrics alert create --condition
                                --name
                                --resource-group
                                --scopes
                                [--action]
                                [--auto-mitigate {false, true}]
                                [--description]
                                [--disabled {false, true}]
                                [--evaluation-frequency]
                                [--region]
                                [--severity]
                                [--tags]
                                [--target-resource-type]
                                [--window-size]

Examples

Create a high CPU usage alert on a VM with no action.

az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID} --condition "avg Percentage CPU > 90" --description "High CPU"

Create a high CPU usage alert on a VM with email and webhook actions.

az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID} \
    --condition "avg Percentage CPU > 90" --window-size 5m --evaluation-frequency 1m \
    --action "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Insights/actionGroups/<actionGroupName>" apiKey={APIKey} type=HighCPU \
    --description "High CPU"

Create an alert when a storage account shows a high number of slow transactions, using multi-dimensional filters.

az monitor metrics alert create -g {ResourceGroup} -n alert1 --scopes {StorageAccountId} \
    --description "Storage Slow Transactions" \
    --condition "total transactions > 5 where ResponseType includes Success" \
    --condition "avg SuccessE2ELatency > 250 where ApiName includes GetBlob"

Create a metric-based alert rule that monitors a custom metric.

az monitor metrics alert create -n "metric alert rule on a custom metric" -g "Demos" --scopes {VirtualMachineID} \
    --condition "max Azure.VM.Windows.GuestMetrics.Memory\Available Bytes > 90" \
    --window-size 5m --evaluation-frequency 1m

Create a high CPU usage alert on several VMs with no actions.

az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID1} {VirtualMachineID2} {VirtualMachineID3} \
    --condition "avg Percentage CPU > 90" --description "High CPU" --region westus

Create a dynamic CPU usage alert on several VMs with no actions.

az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID1} {VirtualMachineID2} {VirtualMachineID3} \
    --condition "avg Percentage CPU > dynamic medium 2 of 4 since 2020-10-01T10:23:00.000Z"
    --description "Dynamic CPU"
    --window-size 5m
    --region westus

Required Parameters

--condition

The condition which triggers the rule. It can be created by 'az monitor metrics alert condition create' command.

Usage: --condition {avg,min,max,total,count} [NAMESPACE.]METRIC [{=,!=,>,>=,<,<=} THRESHOLD] [{<,>,><} dynamic SENSITIVITY VIOLATIONS of EVALUATIONS [since DATETIME]] [where DIMENSION {includes,excludes} VALUE [or VALUE ...] [and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]] [with skipmetricvalidation]

Sensitivity can be 'low', 'medium', 'high'.

Violations can be the number of violations to trigger an alert. It should be smaller or equal to evaluation.

Evaluations can be the number of evaluation periods for dynamic threshold.

Datetime can be the date from which to start learning the metric historical data and calculate the dynamic thresholds (in ISO8601 format).

Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword.

Values for METRIC, DIMENSION and appropriate THRESHOLD values can be obtained from az monitor metrics list-definitions command.

Due to server limitation, when an alert rule contains multiple criterias, the use of dimensions is limited to one value per dimension within each criterion.

Multiple conditions can be specified by using more than one --condition argument.

--name -n

Name of the alert rule.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--scopes

Space-separated list of scopes the rule applies to. The resources specified in this parameter must be of the same type and exist in the same location.

Optional Parameters

--action -a

Add an action group and optional webhook properties to fire when the alert is triggered.

Usage: --action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]]

Multiple action groups can be specified by using more than one --action argument.

--auto-mitigate

Automatically resolve the alert.

accepted values: false, true
--description

Free-text description of the rule.

--disabled

Create the rule in a disabled state.

accepted values: false, true
default value: False
--evaluation-frequency

Frequency with which to evaluate the rule in "##h##m##s" format.

default value: 1m
--region --target-resource-region

The region of the target resource(s) in scopes. This must be provided when scopes is resource group or subscription.

--severity

Severity of the alert from 0 (critical) to 4 (verbose).

default value: 2
--tags

Space-separated tags: key[=value] [key[=value] ...]. Use "" to clear existing tags.

--target-resource-type --type

The resource type of the target resource(s) in scopes. This must be provided when scopes is resource group or subscription.

--window-size

Time over which to aggregate metrics in "##h##m##s" format.

default value: 5m
Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az monitor metrics alert delete

Delete a metrics-based alert rule.

az monitor metrics alert delete [--ids]
                                [--name]
                                [--resource-group]
                                [--subscription]

Examples

Delete a metrics-based alert rule.

az monitor metrics alert delete --name MyAlertRule --resource-group MyResourceGroup

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

Name of the alert rule.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az monitor metrics alert list

List metric-based alert rules.

az monitor metrics alert list [--resource-group]

Examples

List metric-based alert rules.

az monitor metrics alert list --resource-group MyResourceGroup

Optional Parameters

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az monitor metrics alert show

Show a metrics-based alert rule.

az monitor metrics alert show [--ids]
                              [--name]
                              [--resource-group]
                              [--subscription]

Examples

Show a metrics-based alert rule.

az --name MyAlertRule --resource-group MyResourceGroup

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

Name of the alert rule.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az monitor metrics alert update

Update a metric-based alert rule.

az monitor metrics alert update [--add]
                                [--add-action]
                                [--add-condition]
                                [--auto-mitigate {0, 1, f, false, n, no, t, true, y, yes}]
                                [--description]
                                [--enabled {0, 1, f, false, n, no, t, true, y, yes}]
                                [--evaluation-frequency]
                                [--force-string {0, 1, f, false, n, no, t, true, y, yes}]
                                [--ids]
                                [--name]
                                [--remove]
                                [--remove-actions]
                                [--remove-conditions]
                                [--resource-group]
                                [--scopes]
                                [--set]
                                [--severity]
                                [--subscription]
                                [--tags]
                                [--window-size]

Examples

Disable/Enable a metric-based alert rule.

az monitor metrics alert update --enabled false --name MyAlertRule --resource-group MyResourceGroup

Optional Parameters

--add

Add an object to a list of objects by specifying a path and key value pairs. Example: --add property.listProperty <key=value, string or JSON string>.

--add-action --add-actions

Add an action group and optional webhook properties to fire when the alert is triggered.

Usage: --add-action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]]

Multiple action groups can be specified by using more than one --add-action argument. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--add-condition --add-conditions

Add a condition which triggers the rule.

Usage: --add-condition {avg,min,max,total,count} [NAMESPACE.]METRIC [{=,!=,>,>=,<,<=} THRESHOLD] [{<,>,><} dynamic SENSITIVITY VIOLATIONS of EVALUATIONS [since DATETIME]] [where DIMENSION {includes,excludes} VALUE [or VALUE ...] [and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]]

Sensitivity can be 'low', 'medium', 'high'.

Violations can be the number of violations to trigger an alert. It should be smaller or equal to evaluation.

Evaluations can be the number of evaluation periods for dynamic threshold.

Datetime can be the date from which to start learning the metric historical data and calculate the dynamic thresholds (in ISO8601 format).

Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword.

Values for METRIC, DIMENSION and appropriate THRESHOLD values can be obtained from az monitor metrics list-definitions command.

Due to server limitation, when an alert rule contains multiple criterias, the use of dimensions is limited to one value per dimension within each criterion.

Multiple conditions can be specified by using more than one --add-condition argument. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--auto-mitigate

Automatically resolve the alert.

accepted values: 0, 1, f, false, n, no, t, true, y, yes
--description

Free-text description of the rule.

--enabled

Whether the metric alert rule is enabled.

accepted values: 0, 1, f, false, n, no, t, true, y, yes
--evaluation-frequency

Frequency with which to evaluate the rule in ##h##m##s format.

--force-string

When using 'set' or 'add', preserve string literals instead of attempting to convert to JSON.

accepted values: 0, 1, f, false, n, no, t, true, y, yes
--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

Name of the alert rule.

--remove

Remove a property or an element from a list. Example: --remove property.list OR --remove propertyToRemove.

--remove-actions

Space-separated list of action group names to remove. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--remove-conditions

Space-separated list of condition names to remove. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--scopes

Space-separated list of scopes the rule applies to. The resources specified in this parameter must be of the same type and exist in the same location. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--set

Update an object by specifying a property path and value to set. Example: --set property1.property2=.

--severity

Severity of the alert from 0 (critical) to 4 (verbose).

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--tags

Space-separated tags: key[=value] [key[=value] ...]. Support shorthand-syntax, json-file and yaml-file. Try "??" to show more.

--window-size

Time over which to aggregate metrics in ##h##m##s format.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.