Enable/Disable AppInsights Availability Tests with Powershell Azure ARM

Question:

Simple question, trying to use Powershell Azure ARM to Disable/Enable my Application Insights Availability Tests. We have scheduled reboots of our servers, and I want to black out those times so we don’t record errors.

I tried the following

https://learn.microsoft.com/en-us/powershell/module/azurerm.insights/add-azurermwebtestalertrule?view=azurermps-6.8.1

But I get Back

WARNING: 3:34:18 PM – The namespace for all the model classes will
change from Microsoft.Azure.Management.Monitor.Management.Models to
Microsoft.Azure.Management.Monitor.Models in future releases.

WARNING: 3:34:18 PM – The namespace for output classes will be uniform for all classes in future releases to make it independent of
modifications in the model classes.

VERBOSE: Performing the operation “Create/update an alert rule” on target “Create/update an alert rule: azecdag02 isalive-sitecore
production-2c06a496-3567-4871-a57c-2c516c0ccfef from resource group:
OAT_Website”.

VERBOSE: 3:34:18 PM – CreateRuleCondition: Creating location threshold rule condition (webtest rule)

VERBOSE: 3:34:18 PM – CreateSdkCallParameters: Creating rule object

Add-AzureRmWebtestAlertRule : Exception type: ErrorResponseException, Message: The setting already exists., Code:
SettingAlreadyExists, Status code:Conflict, Reason phrase: Conflict
At line:1 char:1
+ Add-AzureRmWebtestAlertRule
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Add-AzureRmWebtestAlertRule], PSInvalidOperationException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Insights.Alerts.AddAzureRmWebtestAlertRuleCommand

And if I try Resolve-AzureRmError -Last I get

HistoryId: 80

Message : Exception type: ErrorResponseException, Message: The
setting already exists., Code: SettingAlreadyExists, Status
code:Conflict, Reason phrase: Conflict StackTrace : at
Microsoft.Azure.Commands.Insights.MonitorCmdletBase.ExecuteCmdlet()
at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord()
Exception :
System.Management.Automation.PSInvalidOperationException
InvocationInfo : {Add-AzureRmWebtestAlertRule} Line :
Add-AzureRmWebtestAlertRule

Position : At line:1 char:1
+ Add-AzureRmWebtestAlertRule
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HistoryId : 80

Message : Operation returned an invalid status code ‘Conflict’
StackTrace : at
Microsoft.Azure.Management.Monitor.AlertRulesOperations.d__5.MoveNext()
Exception :
Microsoft.Azure.Management.Monitor.Models.ErrorResponseException
InvocationInfo : {Add-AzureRmWebtestAlertRule} Line :
Add-AzureRmWebtestAlertRule `
Position : At line:1 char:1
+ Add-AzureRmWebtestAlertRule
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HistoryId : 80

Answer:

I finally was able to get this working, see the below script.

https://feedback.azure.com/forums/357324-application-insights/suggestions/16304431-possibility-to-enable-disable-availability-web-tes

Source:

Enable/Disable AppInsights Availability Tests with Powershell Azure ARM by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply