public void DeleteAlertConfigurationValidatesArguments() { MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(); Assert.That(() => adminClient.DeleteAlertConfigurationAsync(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => adminClient.DeleteAlertConfigurationAsync(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => adminClient.DeleteAlertConfigurationAsync("configId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); Assert.That(() => adminClient.DeleteAlertConfiguration(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => adminClient.DeleteAlertConfiguration(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => adminClient.DeleteAlertConfiguration("configId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); }
public void DeleteAlertConfigurationRespectsTheCancellationToken() { MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(); using var cancellationSource = new CancellationTokenSource(); cancellationSource.Cancel(); Assert.That(() => adminClient.DeleteAlertConfigurationAsync(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); Assert.That(() => adminClient.DeleteAlertConfiguration(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); }
public async Task CreateAndDeleteAlertConfigurationAsync() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential); #region Snippet:CreateAlertConfigurationAsync #if SNIPPET string hookId = "<hookId>"; string anomalyDetectionConfigurationId = "<anomalyDetectionConfigurationId>"; string configurationName = "<configurationName>"; #else string hookId = HookId; string anomalyDetectionConfigurationId = DetectionConfigurationId; string configurationName = GetUniqueName(); #endif AnomalyAlertConfiguration alertConfiguration = new AnomalyAlertConfiguration() { Name = configurationName }; alertConfiguration.IdsOfHooksToAlert.Add(hookId); var scope = MetricAnomalyAlertScope.GetScopeForWholeSeries(); var metricAlertConfiguration = new MetricAnomalyAlertConfiguration(anomalyDetectionConfigurationId, scope); alertConfiguration.MetricAlertConfigurations.Add(metricAlertConfiguration); Response <AnomalyAlertConfiguration> response = await adminClient.CreateAlertConfigurationAsync(alertConfiguration); AnomalyAlertConfiguration createdAlertConfiguration = response.Value; Console.WriteLine($"Alert configuration ID: {createdAlertConfiguration.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.DeleteAlertConfigurationAsync(createdAlertConfiguration.Id); }
public async Task CreateAndDeleteAlertConfigurationAsync() { 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:CreateAlertConfigurationAsync //@@ 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 <string> response = await adminClient.CreateAlertConfigurationAsync(alertConfiguration); string alertConfigurationId = response.Value; Console.WriteLine($"Alert configuration ID: {alertConfigurationId}"); #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.DeleteAlertConfigurationAsync(alertConfigurationId); }
public async Task MetricsAdvisorKeyCredentialSendsSecretInMetricsAdvisorAdministrationClient() { MockResponse response = new MockResponse(204); MockTransport mockTransport = new MockTransport(response); string expectedSubscriptionKey = "fakeSubscriptionKey"; string expectedApiKey = "fakeApiKey"; MetricsAdvisorKeyCredential credential = new MetricsAdvisorKeyCredential(expectedSubscriptionKey, expectedApiKey); MetricsAdvisorAdministrationClient adminClient = CreateInstrumentedAdministrationClient(mockTransport, credential); await adminClient.DeleteAlertConfigurationAsync(FakeGuid); MockRequest request = mockTransport.Requests.First(); Assert.That(request.Headers.TryGetValue(Constants.SubscriptionAuthorizationHeader, out string subscriptionKey)); Assert.That(request.Headers.TryGetValue(Constants.ApiAuthorizationHeader, out string apiKey)); Assert.That(subscriptionKey, Is.EqualTo(expectedSubscriptionKey)); Assert.That(apiKey, Is.EqualTo(expectedApiKey)); }
public async Task DeleteAlertConfiguration(bool useTokenCredential) { MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(useTokenCredential); await using DisposableDataFeed disposableDataFeed = await CreateTempDataFeedAsync(adminClient); string metricId = disposableDataFeed.DataFeed.MetricIds[TempDataFeedMetricName]; await using DisposableDetectionConfiguration disposableDetectionConfig = await CreateTempDetectionConfigurationAsync(adminClient, metricId); string configName = Recording.GenerateAlphaNumericId("config"); var detectionConfigId = disposableDetectionConfig.Configuration.Id; var scope = MetricAnomalyAlertScope.GetScopeForWholeSeries(); var configToCreate = new AnomalyAlertConfiguration() { Name = configName, MetricAlertConfigurations = { new(detectionConfigId, scope) } }; string configId = null; try { AnomalyAlertConfiguration createdConfig = await adminClient.CreateAlertConfigurationAsync(configToCreate); configId = createdConfig.Id; Assert.That(configId, Is.Not.Null.And.Not.Empty); } finally { if (configId != null) { await adminClient.DeleteAlertConfigurationAsync(configId); var errorCause = "Not Found"; Assert.That(async() => await adminClient.GetAlertConfigurationAsync(configId), Throws.InstanceOf <RequestFailedException>().With.Message.Contains(errorCause)); } } }
/// <summary> /// Deletes the configuration this instance is associated with. /// </summary> public async ValueTask DisposeAsync() => await _adminClient.DeleteAlertConfigurationAsync(Id);