private MetricAlertResource GetSampleMultiResourceDynamicMetricRuleResourceParams()
        {
            MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = GetSampleDynamicMetricCriteria();

            return(new MetricAlertResource(
                       description: "alert description",
                       severity: 3,
                       location: "global",
                       enabled: true,
                       targetResourceRegion: "southcentralus",
                       targetResourceType: "Microsoft.Compute/virtualMachines",
                       scopes: new List <string>()
            {
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/SanjaychResourceGroup/providers/Microsoft.Compute/virtualMachines/SCCMDemo2",
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/SanjaychResourceGroup/providers/Microsoft.Compute/virtualMachines/SCCMDemo3"
            },
                       evaluationFrequency: new TimeSpan(hours: 0, minutes: 5, seconds: 0),
                       windowSize: new TimeSpan(hours: 0, minutes: 5, seconds: 0),
                       criteria: metricCriteria,
                       actions: new List <MetricAlertAction>()
            {
                new MetricAlertAction()
                {
                    ActionGroupId = "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourcegroups/default-activitylogalerts/providers/microsoft.insights/actiongroups/anashah"
                }
            }
                       ));
        }
Example #2
0
        private MetricAlertResource GetCreateOrUpdateMultiResSubscriptionLevelDynamicRuleParameters()
        {
            MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
                allOf: new List <MultiMetricCriteria>()
            {
                this.GetDynamicMetricCriteria()
            }
                );

            return(new MetricAlertResource(
                       description: " This is for Multi Resource Metric Alert SDK Scenario Test (ResourceGroup Level)",
                       severity: 3,
                       location: "global",
                       enabled: true,
                       scopes: new List <string>()
            {
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6"
            },
                       targetResourceRegion: "southcentralus",
                       targetResourceType: "Microsoft.Compute/virtualMachines",
                       evaluationFrequency: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       windowSize: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       criteria: metricCriteria,
                       actions: new List <MetricAlertAction>()
            {
                new MetricAlertAction()
                {
                    ActionGroupId = "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourcegroups/default-activitylogalerts/providers/microsoft.insights/actiongroups/anashah"
                }
            }
                       ));
        }
        private MetricAlertResource GetSampleDynamicMetricRuleResourceParams()
        {
            MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = GetSampleDynamicMetricCriteria();

            return(new MetricAlertResource(
                       description: "alert description",
                       severity: 3,
                       location: "Location",
                       enabled: true,
                       scopes: new List <string>()
            {
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/SanjaychResourceGroup/providers/Microsoft.Compute/virtualMachines/SCCMDemo2"
            },
                       evaluationFrequency: new TimeSpan(hours: 0, minutes: 5, seconds: 0),
                       windowSize: new TimeSpan(hours: 0, minutes: 5, seconds: 0),
                       criteria: metricCriteria,
                       actions: new List <MetricAlertAction>()
            {
                new MetricAlertAction()
                {
                    ActionGroupId = "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourcegroups/custommetricdemo/providers/microsoft.insights/actiongroups/scactiongroup"
                }
            }
                       ));
        }
Example #4
0
        ///GENMHASH:0202A00A1DCF248D2647DBDBEF2CA865:3D3357BF7A9E06A99BB65E3E9DAF00FD
        public override async Task <Microsoft.Azure.Management.Monitor.Fluent.IMetricAlert> CreateResourceAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            if (!this.conditions.Any() && !this.dynamicConditions.Any())
            {
                throw new ArgumentException("Condition cannot be empty");
            }
            else if (this.conditions.Any() && this.dynamicConditions.Any())
            {
                throw new ArgumentException("Static condition and dynamic condition cannot co-exist");
            }

            this.Inner.Location = "global";
            if (this.conditions.Any())
            {
                if (!multipleResource)
                {
                    var crit = new MetricAlertSingleResourceMultipleMetricCriteria();
                    crit.AllOf = new List <MetricCriteria>();
                    foreach (var mc in conditions.Values)
                    {
                        crit.AllOf.Add(mc.Inner);
                    }
                    this.Inner.Criteria = crit;
                }
                else
                {
                    var crit = new MetricAlertMultipleResourceMultipleMetricCriteria();
                    crit.AllOf = new List <MultiMetricCriteria>();
                    foreach (var mc in conditions.Values)
                    {
                        crit.AllOf.Add(mc.Inner);
                    }
                    this.Inner.Criteria = crit;
                }
            }
            else if (this.dynamicConditions.Any())
            {
                var crit = new MetricAlertMultipleResourceMultipleMetricCriteria();
                crit.AllOf = new List <MultiMetricCriteria>();
                foreach (var mc in dynamicConditions.Values)
                {
                    crit.AllOf.Add(mc.Inner);
                }
                this.Inner.Criteria = crit;
            }
            SetInner(await this.Manager.Inner.MetricAlerts.CreateOrUpdateAsync(this.ResourceGroupName, this.Name, this.Inner, cancellationToken));
            return(this);
        }
Example #5
0
        private MetricAlertResource GetCreateOrUpdateDynamicRuleParameters()
        {
            MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
                allOf: new List <MultiMetricCriteria>()
            {
                new DynamicMetricCriteria
                {
                    MetricName       = "Transactions",
                    MetricNamespace  = "Microsoft.Storage/storageAccounts",
                    Name             = "metric1",
                    Dimensions       = new MetricDimension[0],
                    OperatorProperty = "GreaterThan",
                    TimeAggregation  = "Total",
                    AlertSensitivity = "High",
                    IgnoreDataBefore = null,
                    FailingPeriods   = new DynamicThresholdFailingPeriods()
                    {
                        MinFailingPeriodsToAlert  = 4,
                        NumberOfEvaluationPeriods = 4
                    },
                }
            }
                );

            return(new MetricAlertResource(
                       description: " This is for Dynamic Metric Alert SDK Scenario Test",
                       severity: 3,
                       location: "global",
                       enabled: true,
                       scopes: new List <string>()
            {
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/SanjaychResourceGroup/providers/Microsoft.Storage/storageAccounts/metricalertsdktestacc"
            },
                       evaluationFrequency: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       windowSize: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       criteria: metricCriteria,
                       actions: new List <MetricAlertAction>()
            {
                new MetricAlertAction()
                {
                    ActionGroupId = "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourcegroups/sanjaychresourcegroup/providers/microsoft.insights/actiongroups/scnewactiongroup"
                }
            }
                       ));
        }
Example #6
0
        private MetricAlertResource GetCreateOrUpdateMultiResResourceGroupLevelRuleParameters()
        {
            MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
                allOf: new List <MultiMetricCriteria>()
            {
                new MetricCriteria()
                {
                    MetricName       = "Percentage CPU",
                    MetricNamespace  = "microsoft.compute/virtualmachines",
                    Name             = "metric1",
                    Dimensions       = new MetricDimension[0],
                    Threshold        = 100,
                    OperatorProperty = "GreaterThan",
                    TimeAggregation  = "Average",
                }
            }
                );

            return(new MetricAlertResource(
                       description: " This is for Multi Resource Metric Alert SDK Scenario Test (ResourceGroup Level)",
                       severity: 3,
                       location: "global",
                       enabled: true,
                       scopes: new List <string>()
            {
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/SanjaychResourceGroup",
                "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourceGroups/RG2"
            },
                       targetResourceRegion: "southcentralus",
                       targetResourceType: "Microsoft.Compute/virtualMachines",
                       evaluationFrequency: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       windowSize: new TimeSpan(hours: 0, minutes: 15, seconds: 0),
                       criteria: metricCriteria,
                       actions: new List <MetricAlertAction>()
            {
                new MetricAlertAction()
                {
                    ActionGroupId = "/subscriptions/80430018-24ee-4b28-a7bd-fb23b5a221d6/resourcegroups/default-activitylogalerts/providers/microsoft.insights/actiongroups/anashah"
                }
            }
                       ));
        }
 protected override void ProcessRecordInternal()
 {
     if (this.TargetResourceScope == null)//Single Resource Metric Alert Rule
     {
         var scopes = new List <string>();
         scopes.Add(this.TargetResourceId);
         var metricCriteria = new List <MetricCriteria>();
         foreach (var condition in this.Condition)
         {
             metricCriteria.Add(new MetricCriteria(name: condition.Name, metricName: condition.MetricName, operatorProperty: condition.OperatorProperty.ToString(), timeAggregation: condition.TimeAggregation.ToString(), threshold: condition.Threshold, metricNamespace: condition.MetricNamespace, dimensions: condition.Dimensions));
         }
         var criteria = new MetricAlertSingleResourceMultipleMetricCriteria(
             allOf: metricCriteria
             );
         var actions = new List <MetricAlertAction>();
         foreach (var actionGroup in this.ActionGroup)
         {
             actions.Add(new MetricAlertAction(actionGroupId: actionGroup.ActionGroupId, webhookProperties: actionGroup.WebhookProperties));
         }
         var metricAlertResource = new MetricAlertResource(
             description: this.Description ?? Utilities.GetDefaultDescription("new Metric alert rule"),
             severity: this.Severity,
             location: "global",
             enabled: !this.DisableRule,
             scopes: scopes,
             evaluationFrequency: this.Frequency,
             windowSize: this.WindowSize,
             criteria: criteria,
             actions: actions
             );
         if (ShouldProcess(
                 target: string.Format("Create/update an alert rule: {0} from resource group: {1}", this.Name, this.ResourceGroupName),
                 action: "Create/update an alert rule"))
         {
             var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
             WriteObject(result);
         }
     }
     else// Multi Resource Metric Alert Rule
     {
         List <MultiMetricCriteria> multiMetricCriterias = new List <MultiMetricCriteria>();
         foreach (var condition in this.Condition)
         {
             multiMetricCriterias.Add(new MetricCriteria(name: condition.Name, metricName: condition.MetricName, operatorProperty: condition.OperatorProperty.ToString(), timeAggregation: condition.TimeAggregation.ToString(), threshold: condition.Threshold, metricNamespace: condition.MetricNamespace, dimensions: condition.Dimensions));
         }
         MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
             allOf: multiMetricCriterias
             );
         var actions = new List <MetricAlertAction>();
         foreach (var actionGroup in this.ActionGroup)
         {
             actions.Add(new MetricAlertAction(actionGroupId: actionGroup.ActionGroupId, webhookProperties: actionGroup.WebhookProperties));
         }
         var metricAlertResource = new MetricAlertResource(
             description: this.Description ?? Utilities.GetDefaultDescription("New multi resource Metric alert rule"),
             severity: this.Severity,
             location: "global",
             enabled: !this.DisableRule,
             scopes: this.TargetResourceScope,
             targetResourceRegion: this.TargetResourceRegion,
             targetResourceType: this.TargetResourceType,
             evaluationFrequency: this.Frequency,
             windowSize: this.WindowSize,
             criteria: metricCriteria,
             actions: actions
             );
         if (ShouldProcess(
                 target: string.Format("Create/update an alert rule: {0} from resource group: {1}", this.Name, this.ResourceGroupName),
                 action: "Create/update an alert rule"))
         {
             var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
             WriteObject(result);
         }
     }
 }
        protected override void ProcessRecordInternal()
        {
            var actions = new List <MetricAlertAction>();

            if (this.ActionGroup != null && this.ActionGroup.Length > 0)
            {
                actions.AddRange(this.ActionGroup.Select(actionGroup => new MetricAlertAction(actionGroupId: actionGroup.ActionGroupId, webHookProperties: actionGroup.WebhookProperties)));
            }

            if (this.ActionGroupId != null && this.ActionGroupId.Length > 0)
            {
                var newActionGroupIds = this.ActionGroupId.Where(id => !actions.Exists(action => action.ActionGroupId == id));
                actions.AddRange(newActionGroupIds.Select(actionGroupId => new MetricAlertAction(actionGroupId: actionGroupId)));
            }

            if (this.Condition.Any(c => c.CriterionType == CriterionType.DynamicThresholdCriterion))
            {
                this.TargetResourceScope = this.TargetResourceScope ?? new string[] { this.TargetResourceId };
            }

            IDictionary <string, string> tags = null;

            if (this.TargetResourceScope == null)//Single Resource Metric Alert Rule
            {
                var scopes = new List <string> {
                    this.TargetResourceId
                };

                MetricAlertCriteria criteria;

                if (this.Condition.Any(c => c.CriterionType == CriterionType.WebtestLocationAvailabilityCriterion))
                {
                    if (this.Condition.Count > 1)
                    {
                        throw new ArgumentException("Only single Webtest location availability criterion is supported");
                    }

                    var psWebtestCriteria = this.Condition.First() as PSWebtestLocationAvailabilityCriteria;

                    criteria = new WebtestLocationAvailabilityCriteria(psWebtestCriteria.WebTestId, psWebtestCriteria.ComponentId, psWebtestCriteria.FailedLocationCount);
                    scopes.Add(psWebtestCriteria.ComponentId);

                    tags = new Dictionary <string, string>()
                    {
                        { $"hidden-link:{psWebtestCriteria.WebTestId}", "Resource" },
                        { $"hidden-link:{psWebtestCriteria.ComponentId}", "Resource" }
                    };
                }
                else
                {
                    var metricCriteria = new List <MetricCriteria>();
                    foreach (var metricCondition in this.Condition)
                    {
                        var condition = metricCondition as PSMetricCriteria;
                        metricCriteria.Add(new MetricCriteria(name: condition.Name, metricName: condition.MetricName, operatorProperty: condition.OperatorProperty.ToString(), timeAggregation: condition.TimeAggregation.ToString(), threshold: condition.Threshold, metricNamespace: condition.MetricNamespace, dimensions: condition.Dimensions, skipMetricValidation: condition.SkipMetricValidation));
                    }
                    criteria = new MetricAlertSingleResourceMultipleMetricCriteria(
                        allOf: metricCriteria
                        );
                }

                var metricAlertResource = new MetricAlertResource(
                    description: this.Description ?? Utilities.GetDefaultDescription("new Metric alert rule"),
                    severity: this.Severity,
                    location: "global",
                    enabled: !this.DisableRule,
                    scopes: scopes,
                    evaluationFrequency: this.Frequency,
                    windowSize: this.WindowSize,
                    criteria: criteria,
                    actions: actions,
                    tags: tags
                    );
                if (ShouldProcess(
                        target: $"Create/update an alert rule: {this.Name} from resource group: {this.ResourceGroupName}",
                        action: "Create/update an alert rule"))
                {
                    var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
                    WriteObject(result);
                }
            }
            else// Multi Resource Metric Alert Rule
            {
                List <MultiMetricCriteria> multiMetricCriteria = new List <MultiMetricCriteria>();
                foreach (var condition in this.Condition)
                {
                    if (condition is PSMetricCriteria)
                    {
                        var psStaticMetricCriteria = condition as PSMetricCriteria;
                        multiMetricCriteria.Add(new MetricCriteria(name: psStaticMetricCriteria.Name, metricName: psStaticMetricCriteria.MetricName, operatorProperty: psStaticMetricCriteria.OperatorProperty.ToString(), timeAggregation: psStaticMetricCriteria.TimeAggregation.ToString(), threshold: psStaticMetricCriteria.Threshold, metricNamespace: psStaticMetricCriteria.MetricNamespace, dimensions: psStaticMetricCriteria.Dimensions, skipMetricValidation: psStaticMetricCriteria.SkipMetricValidation));
                    }
                    else
                    {
                        var psDynamicMetricCriteria = condition as PSDynamicMetricCriteria;
                        multiMetricCriteria.Add(new DynamicMetricCriteria(name: psDynamicMetricCriteria.Name, metricName: psDynamicMetricCriteria.MetricName, operatorProperty: psDynamicMetricCriteria.OperatorProperty.ToString(), timeAggregation: psDynamicMetricCriteria.TimeAggregation.ToString(), metricNamespace: psDynamicMetricCriteria.MetricNamespace, dimensions: psDynamicMetricCriteria.Dimensions, alertSensitivity: psDynamicMetricCriteria.AlertSensitivity, failingPeriods: psDynamicMetricCriteria.FailingPeriods, ignoreDataBefore: psDynamicMetricCriteria.IgnoreDataBefore, skipMetricValidation: psDynamicMetricCriteria.SkipMetricValidation));
                    }
                }

                MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
                    allOf: multiMetricCriteria
                    );
                var metricAlertResource = new MetricAlertResource(
                    description: this.Description ?? Utilities.GetDefaultDescription("New multi resource Metric alert rule"),
                    severity: this.Severity,
                    location: "global",
                    enabled: !this.DisableRule,
                    scopes: this.TargetResourceScope,
                    targetResourceRegion: this.TargetResourceRegion,
                    targetResourceType: this.TargetResourceType,
                    evaluationFrequency: this.Frequency,
                    windowSize: this.WindowSize,
                    criteria: metricCriteria,
                    actions: actions
                    );
                if (ShouldProcess(
                        target: string.Format("Create/update an alert rule: {0} from resource group: {1}", this.Name, this.ResourceGroupName),
                        action: "Create/update an alert rule"))
                {
                    var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
                    WriteObject(result);
                }
            }
        }
        protected override void ProcessRecordInternal()
        {
            if (this.Condition.Any(c => c.CriterionType == CriterionType.DynamicThresholdCriterion))
            {
                this.TargetResourceScope = this.TargetResourceScope ?? new string[] { this.TargetResourceId };
            }

            var actions = new List <MetricAlertAction>();

            if (this.ActionGroup != null)
            {
                actions.AddRange(this.ActionGroup.Select(actionGroup => new MetricAlertAction(actionGroupId: actionGroup.ActionGroupId, webhookProperties: actionGroup.WebhookProperties)));
            }

            if (this.ActionGroupId != null)
            {
                actions.AddRange(this.ActionGroupId.Select(actionGroupId => new MetricAlertAction(actionGroupId: actionGroupId)));
            }

            if (this.TargetResourceScope == null)//Single Resource Metric Alert Rule
            {
                var scopes = new List <string>();
                scopes.Add(this.TargetResourceId);
                var metricCriteria = new List <MetricCriteria>();
                foreach (var metricCondition in this.Condition)
                {
                    var condition = metricCondition as PSMetricCriteria;
                    metricCriteria.Add(new MetricCriteria(name: condition.Name, metricName: condition.MetricName, operatorProperty: condition.OperatorProperty.ToString(), timeAggregation: condition.TimeAggregation.ToString(), threshold: condition.Threshold, metricNamespace: condition.MetricNamespace, dimensions: condition.Dimensions));
                }
                var criteria = new MetricAlertSingleResourceMultipleMetricCriteria(
                    allOf: metricCriteria
                    );
                var metricAlertResource = new MetricAlertResource(
                    description: this.Description ?? Utilities.GetDefaultDescription("new Metric alert rule"),
                    severity: this.Severity,
                    location: "global",
                    enabled: !this.DisableRule,
                    scopes: scopes,
                    evaluationFrequency: this.Frequency,
                    windowSize: this.WindowSize,
                    criteria: criteria,
                    actions: actions
                    );
                if (ShouldProcess(
                        target: string.Format("Create/update an alert rule: {0} from resource group: {1}", this.Name, this.ResourceGroupName),
                        action: "Create/update an alert rule"))
                {
                    var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
                    WriteObject(result);
                }
            }
            else// Multi Resource Metric Alert Rule
            {
                List <MultiMetricCriteria> multiMetricCriteria = new List <MultiMetricCriteria>();
                foreach (var condition in this.Condition)
                {
                    if (condition is PSMetricCriteria)
                    {
                        var psStaticMetricCriteria = condition as PSMetricCriteria;
                        multiMetricCriteria.Add(new MetricCriteria(name: psStaticMetricCriteria.Name, metricName: psStaticMetricCriteria.MetricName, operatorProperty: psStaticMetricCriteria.OperatorProperty.ToString(), timeAggregation: psStaticMetricCriteria.TimeAggregation.ToString(), threshold: psStaticMetricCriteria.Threshold, metricNamespace: psStaticMetricCriteria.MetricNamespace, dimensions: psStaticMetricCriteria.Dimensions));
                    }
                    else
                    {
                        var psDynamicMetricCriteria = condition as PSDynamicMetricCriteria;
                        multiMetricCriteria.Add(new DynamicMetricCriteria(name: psDynamicMetricCriteria.Name, metricName: psDynamicMetricCriteria.MetricName, operatorProperty: psDynamicMetricCriteria.OperatorProperty.ToString(), timeAggregation: psDynamicMetricCriteria.TimeAggregation.ToString(), metricNamespace: psDynamicMetricCriteria.MetricNamespace, dimensions: psDynamicMetricCriteria.Dimensions, alertSensitivity: psDynamicMetricCriteria.AlertSensitivity, failingPeriods: psDynamicMetricCriteria.FailingPeriods, ignoreDataBefore: psDynamicMetricCriteria.IgnoreDataBefore));
                    }
                }

                MetricAlertMultipleResourceMultipleMetricCriteria metricCriteria = new MetricAlertMultipleResourceMultipleMetricCriteria(
                    allOf: multiMetricCriteria
                    );
                var metricAlertResource = new MetricAlertResource(
                    description: this.Description ?? Utilities.GetDefaultDescription("New multi resource Metric alert rule"),
                    severity: this.Severity,
                    location: "global",
                    enabled: !this.DisableRule,
                    scopes: this.TargetResourceScope,
                    targetResourceRegion: this.TargetResourceRegion,
                    targetResourceType: this.TargetResourceType,
                    evaluationFrequency: this.Frequency,
                    windowSize: this.WindowSize,
                    criteria: metricCriteria,
                    actions: actions
                    );
                if (ShouldProcess(
                        target: string.Format("Create/update an alert rule: {0} from resource group: {1}", this.Name, this.ResourceGroupName),
                        action: "Create/update an alert rule"))
                {
                    var result = this.MonitorManagementClient.MetricAlerts.CreateOrUpdateAsync(resourceGroupName: this.ResourceGroupName, ruleName: this.Name, parameters: metricAlertResource).Result;
                    WriteObject(result);
                }
            }
        }