private Conditions ParseConditions() { Conditions conditions = new Conditions(); if (SeverityCondition != null) { conditions.Severity = new Condition( operatorProperty: SeverityCondition.Split(':')[0], values: SeverityCondition.Split(':')[1].Split(',')); } if (MonitorServiceCondition != null) { conditions.MonitorService = new Condition( operatorProperty: MonitorServiceCondition.Split(':')[0], values: MonitorServiceCondition.Split(':')[1].Split(',')); } if (MonitorCondition != null) { conditions.MonitorCondition = new Condition( operatorProperty: MonitorCondition.Split(':')[0], values: MonitorCondition.Split(':')[1].Split(',')); } if (TargetResourceTypeCondition != null) { conditions.MonitorCondition = new Condition( operatorProperty: TargetResourceTypeCondition.Split(':')[0], values: TargetResourceTypeCondition.Split(':')[1].Split(',')); } if (DescriptionCondition != null) { conditions.Description = new Condition( operatorProperty: DescriptionCondition.Split(':')[0], values: DescriptionCondition.Split(':')[1].Split(',')); } if (AlertRuleIdCondition != null) { conditions.AlertRuleId = new Condition( operatorProperty: AlertRuleIdCondition.Split(':')[0], values: AlertRuleIdCondition.Split(':')[1].Split(',')); } if (AlertContextCondition != null) { conditions.AlertContext = new Condition( operatorProperty: AlertContextCondition.Split(':')[0], values: AlertContextCondition.Split(':')[1].Split(',')); } return(conditions); }
private void ValidateMetricAnomalyAlertConfiguration(MetricAnomalyAlertConfiguration configuration) { Assert.That(configuration.DetectionConfigurationId, Is.Not.Null.And.Not.Empty); Assert.That(configuration.AlertScope, Is.Not.Null); if (configuration.AlertScope.ScopeType == MetricAnomalyAlertScopeType.WholeSeries) { Assert.That(configuration.AlertScope.SeriesGroupInScope, Is.Null); Assert.That(configuration.AlertScope.TopNGroupInScope, Is.Null); } else if (configuration.AlertScope.ScopeType == MetricAnomalyAlertScopeType.SeriesGroup) { Assert.That(configuration.AlertScope.TopNGroupInScope, Is.Null); ValidateGroupKey(configuration.AlertScope.SeriesGroupInScope); } else if (configuration.AlertScope.ScopeType == MetricAnomalyAlertScopeType.TopN) { Assert.That(configuration.AlertScope.SeriesGroupInScope, Is.Null); Assert.That(configuration.AlertScope.TopNGroupInScope, Is.Not.Null); } else { throw new ArgumentOutOfRangeException("Invalid ScopeType value!"); } Assert.That(configuration.AlertConditions, Is.Not.Null); MetricBoundaryCondition boundaryCondition = configuration.AlertConditions.MetricBoundaryCondition; SeverityCondition severityCondition = configuration.AlertConditions.SeverityCondition; if (boundaryCondition != null) { if (boundaryCondition.Direction == BoundaryDirection.Up) { Assert.That(boundaryCondition.UpperBound, Is.Not.Null); Assert.That(boundaryCondition.LowerBound, Is.Null); } else if (boundaryCondition.Direction == BoundaryDirection.Down) { Assert.That(boundaryCondition.UpperBound, Is.Null); Assert.That(boundaryCondition.LowerBound, Is.Not.Null); } else if (boundaryCondition.Direction == BoundaryDirection.Both) { Assert.That(boundaryCondition.UpperBound, Is.Not.Null); Assert.That(boundaryCondition.LowerBound, Is.Not.Null); } else { throw new ArgumentOutOfRangeException("Invalid BoundaryDirection value!"); } if (boundaryCondition.CompanionMetricId != null) { Assert.That(boundaryCondition.CompanionMetricId, Is.Not.Empty); } Assert.That(boundaryCondition.ShouldAlertIfDataPointMissing, Is.Not.Null); } if (severityCondition != null) { Assert.That(severityCondition.MinimumAlertSeverity, Is.Not.EqualTo(default(AnomalySeverity))); Assert.That(severityCondition.MaximumAlertSeverity, Is.Not.EqualTo(default(AnomalySeverity))); } if (configuration.AlertSnoozeCondition != null) { Assert.That(configuration.AlertSnoozeCondition.SnoozeScope, Is.Not.EqualTo(default(SnoozeScope))); } Assert.That(configuration.UseDetectionResultToFilterAnomalies, Is.Not.Null); }