public void GetAlertConfigurationsValidatesArguments()
        {
            MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient();

            Assert.That(() => adminClient.GetAlertConfigurationsAsync(null), Throws.InstanceOf <ArgumentNullException>());
            Assert.That(() => adminClient.GetAlertConfigurationsAsync(""), Throws.InstanceOf <ArgumentException>());
            Assert.That(() => adminClient.GetAlertConfigurationsAsync("metricId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException)));

            Assert.That(() => adminClient.GetAlertConfigurations(null), Throws.InstanceOf <ArgumentNullException>());
            Assert.That(() => adminClient.GetAlertConfigurations(""), Throws.InstanceOf <ArgumentException>());
            Assert.That(() => adminClient.GetAlertConfigurations("metricId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException)));
        }
        public async Task GetAlertConfigurationsAsync()
        {
            string endpoint        = MetricsAdvisorUri;
            string subscriptionKey = MetricsAdvisorSubscriptionKey;
            string apiKey          = MetricsAdvisorApiKey;
            var    credential      = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey);

            var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential);

            string detectionConfigurationId = DetectionConfigurationId;

            int configCount = 0;

            await foreach (AnomalyAlertConfiguration alertConfiguration in adminClient.GetAlertConfigurationsAsync(detectionConfigurationId))
            {
                Console.WriteLine($"Alert configuration ID: {alertConfiguration.Id}");
                Console.WriteLine($"Name: {alertConfiguration.Name}");
                Console.WriteLine($"Description: {alertConfiguration.Description}");
                Console.WriteLine();

                // Print at most 5 alert configurations.
                if (++configCount >= 5)
                {
                    break;
                }
            }
        }
示例#3
0
        public async Task GetAlertConfigurations(bool useTokenCredential)
        {
            MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(useTokenCredential);

            var configCount = 0;

            await foreach (AnomalyAlertConfiguration config in adminClient.GetAlertConfigurationsAsync(DetectionConfigurationId))
            {
                Assert.That(config.Id, Is.Not.Null.And.Not.Empty);
                Assert.That(config.Name, Is.Not.Null.And.Not.Empty);
                Assert.That(config.Description, Is.Not.Null);
                Assert.That(config.IdsOfHooksToAlert, Is.Not.Null);
                Assert.That(config.DimensionsToSplitAlert, Is.Not.Null);
                Assert.That(config.MetricAlertConfigurations, Is.Not.Null.And.Not.Empty);

                if (config.MetricAlertConfigurations.Count == 1)
                {
                    Assert.That(config.CrossMetricsOperator, Is.Null);
                }
                else if (config.MetricAlertConfigurations.Count == 2)
                {
                    Assert.That(config.CrossMetricsOperator, Is.Not.Null);
                    Assert.That(config.CrossMetricsOperator, Is.Not.EqualTo(default(MetricAlertConfigurationsOperator)));
                }
                else
                {
                    Assert.That(config.CrossMetricsOperator, Is.Not.Null);
                    Assert.That(config.CrossMetricsOperator, Is.Not.EqualTo(default(MetricAlertConfigurationsOperator)));
                    Assert.That(config.CrossMetricsOperator, Is.Not.EqualTo(MetricAlertConfigurationsOperator.Xor));
                }

                foreach (string hookId in config.IdsOfHooksToAlert)
                {
                    Assert.That(hookId, Is.Not.Null.And.Not.Empty);
                }

                foreach (MetricAlertConfiguration metricConfig in config.MetricAlertConfigurations)
                {
                    ValidateMetricAlertConfiguration(metricConfig);
                }

                if (++configCount >= MaximumSamplesCount)
                {
                    break;
                }
            }

            Assert.That(configCount, Is.GreaterThan(0));
        }
        public void GetAlertConfigurationsRespectsTheCancellationToken()
        {
            MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient();

            using var cancellationSource = new CancellationTokenSource();
            cancellationSource.Cancel();

            IAsyncEnumerator <AnomalyAlertConfiguration> asyncEnumerator = adminClient.GetAlertConfigurationsAsync(FakeGuid, cancellationSource.Token).GetAsyncEnumerator();

            Assert.That(async() => await asyncEnumerator.MoveNextAsync(), Throws.InstanceOf <OperationCanceledException>());

            IEnumerator <AnomalyAlertConfiguration> enumerator = adminClient.GetAlertConfigurations(FakeGuid, cancellationSource.Token).GetEnumerator();

            Assert.That(() => enumerator.MoveNext(), Throws.InstanceOf <OperationCanceledException>());
        }