public void GetFeedbackValidatesArguments() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); Assert.That(() => client.GetFeedbackAsync(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => client.GetFeedbackAsync(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => client.GetFeedback(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => client.GetFeedback(""), Throws.InstanceOf <ArgumentException>()); }
public void GetFeedbackValidatesArguments() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); Assert.That(() => client.GetFeedbackAsync(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => client.GetFeedbackAsync(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => client.GetFeedbackAsync("feedbackId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); Assert.That(() => client.GetFeedback(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => client.GetFeedback(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => client.GetFeedback("feedbackId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); }
public async Task AddAndGetChangePointFeedback() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); var dimensionKey = new DimensionKey(); dimensionKey.AddDimensionColumn("city", "Delhi"); dimensionKey.AddDimensionColumn("category", "Handmade"); var filter = new FeedbackDimensionFilter(dimensionKey); var feedbackToAdd = new MetricChangePointFeedback(MetricId, filter, CreatedFeedbackStartTime, CreatedFeedbackEndTime, ChangePointValue.AutoDetect); string feedbackId = await client.AddFeedbackAsync(feedbackToAdd); Assert.That(feedbackId, Is.Not.Null); MetricFeedback addedFeedback = await client.GetFeedbackAsync(feedbackId); ValidateMetricFeedback(addedFeedback, feedbackId, dimensionKey); Assert.That(addedFeedback.Type, Is.EqualTo(FeedbackType.ChangePoint)); var changePointFeedback = addedFeedback as MetricChangePointFeedback; Assert.That(changePointFeedback, Is.Not.Null); Assert.That(changePointFeedback.ChangePointValue, Is.EqualTo(ChangePointValue.AutoDetect)); Assert.That(changePointFeedback.StartTime, Is.EqualTo(CreatedFeedbackStartTime)); Assert.That(changePointFeedback.EndTime, Is.EqualTo(CreatedFeedbackEndTime)); }
public async Task AddAndGetAnomalyFeedbackWithOptionalDetectionConfigurationFilter() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); var dimensionKey = new DimensionKey(); dimensionKey.AddDimensionColumn("city", "Delhi"); dimensionKey.AddDimensionColumn("category", "Handmade"); var filter = new FeedbackDimensionFilter(dimensionKey); var feedbackToAdd = new MetricAnomalyFeedback(MetricId, filter, CreatedFeedbackStartTime, CreatedFeedbackEndTime, AnomalyValue.AutoDetect) { AnomalyDetectionConfigurationId = DetectionConfigurationId }; string feedbackId = await client.AddFeedbackAsync(feedbackToAdd); Assert.That(feedbackId, Is.Not.Null); MetricFeedback addedFeedback = await client.GetFeedbackAsync(feedbackId); ValidateMetricFeedback(addedFeedback, feedbackId, dimensionKey); Assert.That(addedFeedback.Type, Is.EqualTo(FeedbackType.Anomaly)); var anomalyFeedback = addedFeedback as MetricAnomalyFeedback; Assert.That(anomalyFeedback, Is.Not.Null); Assert.That(anomalyFeedback.AnomalyValue, Is.EqualTo(AnomalyValue.AutoDetect)); Assert.That(anomalyFeedback.StartTime, Is.EqualTo(CreatedFeedbackStartTime)); Assert.That(anomalyFeedback.EndTime, Is.EqualTo(CreatedFeedbackEndTime)); Assert.That(anomalyFeedback.AnomalyDetectionConfigurationId, Is.EqualTo(DetectionConfigurationId)); // TODO: Add snapshot validation (https://github.com/azure/azure-sdk-for-net/issues/15915) }
public async Task AddAndGetAnomalyFeedbackWithMinimumSetup(bool useTokenCredential) { MetricsAdvisorClient client = GetMetricsAdvisorClient(useTokenCredential); var dimensionKey = new DimensionKey(); dimensionKey.AddDimensionColumn("city", "Delhi"); dimensionKey.AddDimensionColumn("category", "Handmade"); var filter = new FeedbackDimensionFilter(dimensionKey); var feedbackToAdd = new MetricAnomalyFeedback(MetricId, filter, CreatedFeedbackStartTime, CreatedFeedbackEndTime, AnomalyValue.AutoDetect); string feedbackId = await client.AddFeedbackAsync(feedbackToAdd); Assert.That(feedbackId, Is.Not.Null); MetricFeedback addedFeedback = await client.GetFeedbackAsync(feedbackId); ValidateMetricFeedback(addedFeedback, feedbackId, dimensionKey); Assert.That(addedFeedback.Type, Is.EqualTo(FeedbackType.Anomaly)); var anomalyFeedback = addedFeedback as MetricAnomalyFeedback; Assert.That(anomalyFeedback, Is.Not.Null); Assert.That(anomalyFeedback.AnomalyValue, Is.EqualTo(AnomalyValue.AutoDetect)); Assert.That(anomalyFeedback.StartTime, Is.EqualTo(CreatedFeedbackStartTime)); Assert.That(anomalyFeedback.EndTime, Is.EqualTo(CreatedFeedbackEndTime)); Assert.That(anomalyFeedback.AnomalyDetectionConfigurationId, Is.Null); Assert.That(anomalyFeedback.AnomalyDetectionConfigurationSnapshot, Is.Null); }
public async Task AddAndGetPeriodFeedback() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); var dimensionKey = new DimensionKey(); dimensionKey.AddDimensionColumn("city", "Delhi"); dimensionKey.AddDimensionColumn("category", "Handmade"); var filter = new FeedbackDimensionFilter(dimensionKey); var periodValue = 10; var feedbackToAdd = new MetricPeriodFeedback(MetricId, filter, PeriodType.AutoDetect, periodValue); string feedbackId = await client.AddFeedbackAsync(feedbackToAdd); Assert.That(feedbackId, Is.Not.Null); MetricFeedback addedFeedback = await client.GetFeedbackAsync(feedbackId); ValidateMetricFeedback(addedFeedback, feedbackId, dimensionKey); Assert.That(addedFeedback.Type, Is.EqualTo(FeedbackType.Period)); var periodFeedback = addedFeedback as MetricPeriodFeedback; Assert.That(periodFeedback, Is.Not.Null); Assert.That(periodFeedback.PeriodType, Is.EqualTo(PeriodType.AutoDetect)); Assert.That(periodFeedback.PeriodValue, Is.EqualTo(periodValue)); }
public async Task AddAndGetCommentFeedbackWithOptionalTimeFilters() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); var dimensionKey = new DimensionKey(); dimensionKey.AddDimensionColumn("city", "Delhi"); dimensionKey.AddDimensionColumn("category", "Handmade"); var filter = new FeedbackDimensionFilter(dimensionKey); var comment = "Feedback created in a .NET test."; var feedbackToAdd = new MetricCommentFeedback(MetricId, filter, comment) { StartTime = CreatedFeedbackStartTime, EndTime = CreatedFeedbackEndTime }; string feedbackId = await client.AddFeedbackAsync(feedbackToAdd); Assert.That(feedbackId, Is.Not.Null); MetricFeedback addedFeedback = await client.GetFeedbackAsync(feedbackId); ValidateMetricFeedback(addedFeedback, feedbackId, dimensionKey); Assert.That(addedFeedback.Type, Is.EqualTo(FeedbackType.Comment)); var commentFeedback = addedFeedback as MetricCommentFeedback; Assert.That(commentFeedback, Is.Not.Null); Assert.That(commentFeedback.Comment, Is.EqualTo(comment)); Assert.That(commentFeedback.StartTime, Is.EqualTo(CreatedFeedbackStartTime)); Assert.That(commentFeedback.EndTime, Is.EqualTo(CreatedFeedbackEndTime)); }
public void GetFeedbackRespectsTheCancellationToken() { MetricsAdvisorClient client = GetMetricsAdvisorClient(); using var cancellationSource = new CancellationTokenSource(); cancellationSource.Cancel(); Assert.That(() => client.GetFeedbackAsync(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); Assert.That(() => client.GetFeedback(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); }
public async Task MetricFeedbackGetsUnknownFeedback() { MockResponse getResponse = new MockResponse(200); getResponse.SetContent(UnknownFeedbackContent); MetricsAdvisorClient client = CreateInstrumentedClient(getResponse); MetricFeedback feedback = await client.GetFeedbackAsync(FakeGuid); Assert.That(feedback.Id, Is.EqualTo(FakeGuid)); Assert.That(feedback.CreatedOn, Is.EqualTo(DateTimeOffset.Parse("2021-01-01T00:00:00.000Z"))); Assert.That(feedback.UserPrincipal, Is.EqualTo("*****@*****.**")); Assert.That(feedback.MetricId, Is.EqualTo(FakeGuid)); Assert.That(feedback.DimensionKey.TryGetValue("city", out string city)); Assert.That(city, Is.EqualTo("Delhi")); }
public async Task GetFeedbackAsync() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var client = new MetricsAdvisorClient(new Uri(endpoint), credential); string feedbackId = FeedbackId; Response <MetricFeedback> response = await client.GetFeedbackAsync(feedbackId); MetricFeedback feedback = response.Value; Console.WriteLine($"Feedback ID: {feedback.Id}"); Console.WriteLine($"Metric ID: {feedback.MetricId}"); Console.WriteLine($"Feedback type: {feedback.Type}"); Console.WriteLine(); if (feedback.Type == FeedbackType.Anomaly) { MetricAnomalyFeedback anomalyFeedback = feedback as MetricAnomalyFeedback; Console.WriteLine($"Detection configuration ID: {anomalyFeedback.AnomalyDetectionConfigurationId}"); Console.WriteLine($"Anomaly value: {anomalyFeedback.AnomalyValue}"); } else if (feedback.Type == FeedbackType.Comment) { MetricCommentFeedback commentFeedback = feedback as MetricCommentFeedback; Console.WriteLine($"Comment: {commentFeedback.Comment}"); } else if (feedback.Type == FeedbackType.ChangePoint) { MetricChangePointFeedback changePointFeedback = feedback as MetricChangePointFeedback; Console.WriteLine($"Change point value: {changePointFeedback.ChangePointValue}"); } else if (feedback.Type == FeedbackType.Period) { MetricPeriodFeedback periodFeedback = feedback as MetricPeriodFeedback; Console.WriteLine($"Period type: {periodFeedback.PeriodType}"); Console.WriteLine($"Period value: {periodFeedback.PeriodValue}"); } }