public async Task CreateAndDeleteAnomalyDetectionConfigurationAsync() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential); string metricId = MetricId; #region Snippet:CreateAnomalyDetectionConfigurationAsync //@@ string metricId = "<metricId>"; string configurationName = "Sample anomaly detection configuration"; var hardThresholdSuppressCondition = new SuppressCondition(1, 100); var hardThresholdCondition = new HardThresholdCondition(AnomalyDetectorDirection.Down, hardThresholdSuppressCondition) { LowerBound = 5.0 }; var smartDetectionSuppressCondition = new SuppressCondition(4, 50); var smartDetectionCondition = new SmartDetectionCondition(10.0, AnomalyDetectorDirection.Up, smartDetectionSuppressCondition); var detectionCondition = new MetricWholeSeriesDetectionCondition() { HardThresholdCondition = hardThresholdCondition, SmartDetectionCondition = smartDetectionCondition, CrossConditionsOperator = DetectionConditionsOperator.Or }; var detectionConfiguration = new AnomalyDetectionConfiguration(metricId, configurationName, detectionCondition); Response <AnomalyDetectionConfiguration> response = await adminClient.CreateMetricAnomalyDetectionConfigurationAsync(detectionConfiguration); detectionConfiguration = response.Value; Console.WriteLine($"Anomaly detection configuration ID: {detectionConfiguration.Id}"); #endregion // Delete the created anomaly detection configuration to clean up the Metrics Advisor resource. // Do not perform this step if you intend to keep using the configuration. await adminClient.DeleteMetricAnomalyDetectionConfigurationAsync(detectionConfiguration.Id); }
public async Task CreateAnomalyAlertConfiguration() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential); string hookId = HookId; string anomalyDetectionConfigurationId = DetectionConfigurationId; #region Snippet:CreateAnomalyAlertConfiguration //@@ string hookId = "<hookId>"; //@@ string anomalyDetectionConfigurationId = "<anomalyDetectionConfigurationId>"; string configurationName = "Sample anomaly alert configuration"; var idsOfHooksToAlert = new List <string>() { hookId }; var scope = MetricAnomalyAlertScope.GetScopeForWholeSeries(); var metricAlertConfigurations = new List <MetricAnomalyAlertConfiguration>() { new MetricAnomalyAlertConfiguration(anomalyDetectionConfigurationId, scope) }; AnomalyAlertConfiguration alertConfiguration = new AnomalyAlertConfiguration(configurationName, idsOfHooksToAlert, metricAlertConfigurations); Response <AnomalyAlertConfiguration> response = await adminClient.CreateAnomalyAlertConfigurationAsync(alertConfiguration); alertConfiguration = response.Value; Console.WriteLine($"Alert configuration ID: {alertConfiguration.Id}"); #endregion // Delete the anomaly alert configuration to clean up the Metrics Advisor resource. Do not // perform this step if you intend to keep using the configuration. await adminClient.DeleteMetricAnomalyDetectionConfigurationAsync(alertConfiguration.Id); }