Skip to content

Commit 1e6161b

Browse files
authored
[Metrics Advisor] Fix datafeed ingestion failing live test (Azure#23122)
1 parent 57f7a22 commit 1e6161b

20 files changed

+539
-3564
lines changed

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyAlertAsyncTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public void updateAnomalyAlertHappyPath(HttpClient httpClient, MetricsAdvisorSer
252252
= new MetricAlertConfiguration(DETECTION_CONFIGURATION_ID,
253253
MetricAnomalyAlertScope.forWholeSeries());
254254
final MetricAlertConfiguration metricAnomalyAlertConfiguration2
255-
= new MetricAlertConfiguration("e17f32d4-3ddf-4dc7-84ee-b4130c7e1777",
255+
= new MetricAlertConfiguration(DETECTION_CONFIGURATION_ID,
256256
MetricAnomalyAlertScope.forWholeSeries());
257257

258258
// Act & Assert

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyAlertTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
import com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient;
77
import com.azure.ai.metricsadvisor.administration.models.AnomalyAlertConfiguration;
8-
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
98
import com.azure.ai.metricsadvisor.administration.models.ListAnomalyAlertConfigsOptions;
109
import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfiguration;
1110
import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfigurationsOperator;
1211
import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertScope;
12+
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
1313
import com.azure.core.http.HttpClient;
1414
import com.azure.core.http.rest.Response;
1515
import com.azure.core.test.TestBase;
@@ -241,7 +241,7 @@ public void updateAnomalyAlertHappyPath(HttpClient httpClient, MetricsAdvisorSer
241241
= new MetricAlertConfiguration(DETECTION_CONFIGURATION_ID,
242242
MetricAnomalyAlertScope.forWholeSeries());
243243
final MetricAlertConfiguration metricAnomalyAlertConfiguration2
244-
= new MetricAlertConfiguration("e17f32d4-3ddf-4dc7-84ee-b4130c7e1777",
244+
= new MetricAlertConfiguration(DETECTION_CONFIGURATION_ID,
245245
MetricAnomalyAlertScope.forWholeSeries());
246246

247247
// Act & Assert

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedAsyncClientTest.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ void testListDataFeed(HttpClient httpClient, MetricsAdvisorServiceVersion servic
119119

120120
/**
121121
* Verifies the result of the list data feed method to return only 3 results using
122-
* {@link ListDataFeedOptions#setMaxPageSize(int)}.
122+
* {@link ListDataFeedOptions#setMaxPageSize(Integer)}.
123123
*/
124124
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
125125
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@@ -156,9 +156,13 @@ void testListDataFeedFilterByCreator(HttpClient httpClient, MetricsAdvisorServic
156156

157157
// Act & Assert
158158
StepVerifier.create(client.listDataFeeds(new ListDataFeedOptions()
159-
.setListDataFeedFilter(new ListDataFeedFilter()
160-
.setCreator(createdDataFeed.getCreator()))))
161-
.thenConsumeWhile(dataFeed -> createdDataFeed.getCreator().equals(dataFeed.getCreator()))
159+
.setListDataFeedFilter(new ListDataFeedFilter()
160+
.setCreator(createdDataFeed.getCreator()))).byPage().take(4))
161+
.thenConsumeWhile(dataFeedPagedResponse -> {
162+
dataFeedPagedResponse.getValue()
163+
.forEach(dataFeed -> createdDataFeed.getCreator().equals(dataFeed.getCreator()));
164+
return true;
165+
})
162166
.verifyComplete();
163167
}, POSTGRE_SQL_DB);
164168
} finally {
@@ -227,8 +231,11 @@ void testListDataFeedFilterByStatus(HttpClient httpClient, MetricsAdvisorService
227231
StepVerifier.create(client.listDataFeeds(
228232
new ListDataFeedOptions()
229233
.setListDataFeedFilter(new ListDataFeedFilter()
230-
.setDataFeedStatus(ACTIVE))))
231-
.thenConsumeWhile(dataFeed -> ACTIVE.equals(dataFeed.getStatus()))
234+
.setDataFeedStatus(ACTIVE))).byPage().take(4))
235+
.thenConsumeWhile(dataFeedPagedResponse -> {
236+
dataFeedPagedResponse.getValue().forEach(dataFeed -> ACTIVE.equals(dataFeed.getStatus()));
237+
return true;
238+
})
232239
.verifyComplete();
233240
}
234241

@@ -244,9 +251,12 @@ void testListDataFeedFilterByGranularityType(HttpClient httpClient, MetricsAdvis
244251

245252
// Act & Assert
246253
StepVerifier.create(client.listDataFeeds(new ListDataFeedOptions()
247-
.setListDataFeedFilter(new ListDataFeedFilter()
248-
.setDataFeedGranularityType(DAILY))))
249-
.thenConsumeWhile(dataFeed -> DAILY.equals(dataFeed.getGranularity().getGranularityType()))
254+
.setListDataFeedFilter(new ListDataFeedFilter().setDataFeedGranularityType(DAILY))).byPage().take(4))
255+
.thenConsumeWhile(dataFeedPagedResponse -> {
256+
dataFeedPagedResponse.getValue()
257+
.forEach(dataFeed -> DAILY.equals(dataFeed.getGranularity().getGranularityType()));
258+
return true;
259+
})
250260
.verifyComplete();
251261
}
252262

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedClientTest.java

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ void testListDataFeedFilterByCreator(HttpClient httpClient, MetricsAdvisorServic
155155
final AtomicReference<String> dataFeedId = new AtomicReference<>();
156156
try {
157157
// Arrange
158+
final int[] pageCount = {0};
158159
client = getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildClient();
159160
creatDataFeedRunner(expectedDataFeed -> {
160161
// Act & Assert
@@ -164,13 +165,21 @@ void testListDataFeedFilterByCreator(HttpClient httpClient, MetricsAdvisorServic
164165
dataFeedId.set(createdDataFeed.getId());
165166

166167
// Act & Assert
167-
client.listDataFeeds(new ListDataFeedOptions()
168-
.setListDataFeedFilter(new ListDataFeedFilter()
168+
for (PagedResponse<DataFeed> dataFeedPagedResponse : client.listDataFeeds(new ListDataFeedOptions()
169+
.setListDataFeedFilter(new ListDataFeedFilter()
169170
.setCreator(createdDataFeed.getCreator())),
170171
Context.NONE)
171-
.forEach(dataFeed -> assertEquals(createdDataFeed.getCreator(), dataFeed.getCreator()));
172-
172+
.iterableByPage()) {
173+
List<DataFeed> dataFeedList = dataFeedPagedResponse.getValue();
174+
dataFeedList.forEach(dataFeed -> assertEquals(createdDataFeed.getCreator(), dataFeed.getCreator()));
175+
pageCount[0]++;
176+
if (pageCount[0] > 4) {
177+
// Stop after 4 pages since there can be large number of feeds.
178+
break;
179+
}
180+
}
173181
}, POSTGRE_SQL_DB);
182+
174183
} finally {
175184
if (!CoreUtils.isNullOrEmpty(dataFeedId.get())) {
176185
client.deleteDataFeed(dataFeedId.get());
@@ -227,10 +236,18 @@ void testListDataFeedFilterByStatus(HttpClient httpClient, MetricsAdvisorService
227236
client = getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildClient();
228237

229238
// Act & Assert
230-
client.listDataFeeds(
231-
new ListDataFeedOptions().setListDataFeedFilter(new ListDataFeedFilter()
232-
.setDataFeedStatus(ACTIVE)), Context.NONE)
233-
.stream().iterator().forEachRemaining(dataFeed -> assertEquals(ACTIVE, dataFeed.getStatus()));
239+
int pageCount = 0;
240+
for (PagedResponse<DataFeed> dataFeedPagedResponse : client.listDataFeeds(
241+
new ListDataFeedOptions().setListDataFeedFilter(new ListDataFeedFilter().setDataFeedStatus(ACTIVE)),
242+
Context.NONE)
243+
.iterableByPage()) {
244+
dataFeedPagedResponse.getValue().forEach((dataFeed -> assertEquals(ACTIVE, dataFeed.getStatus())));
245+
pageCount++;
246+
if (pageCount > 4) {
247+
// Stop after 4 pages since there can be large number of feeds.
248+
break;
249+
}
250+
}
234251
}
235252

236253
/**
@@ -244,11 +261,20 @@ void testListDataFeedFilterByGranularityType(HttpClient httpClient, MetricsAdvis
244261
client = getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildClient();
245262

246263
// Act & Assert
247-
client.listDataFeeds(
248-
new ListDataFeedOptions().setListDataFeedFilter(new ListDataFeedFilter()
249-
.setDataFeedGranularityType(DAILY)), Context.NONE)
250-
.stream().iterator()
251-
.forEachRemaining(dataFeed -> assertEquals(DAILY, dataFeed.getGranularity().getGranularityType()));
264+
int[] pageCount = new int[] {0};
265+
266+
for (PagedResponse<DataFeed> dataFeedPagedResponse : client.listDataFeeds(
267+
new ListDataFeedOptions().setListDataFeedFilter(new ListDataFeedFilter()
268+
.setDataFeedGranularityType(DAILY)), Context.NONE)
269+
.iterableByPage()) {
270+
dataFeedPagedResponse.getValue()
271+
.forEach(dataFeed -> assertEquals(DAILY, dataFeed.getGranularity().getGranularityType()));
272+
pageCount[0]++;
273+
if (pageCount[0] > 4) {
274+
// Stop after 4 pages since there can be large number of feeds.
275+
break;
276+
}
277+
}
252278
}
253279

254280
/**

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedIngestionOperationTestBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
import java.time.OffsetDateTime;
1414

1515
import static com.azure.ai.metricsadvisor.MetricsSeriesTestBase.TIME_SERIES_END_TIME;
16-
import static com.azure.ai.metricsadvisor.MetricsSeriesTestBase.TIME_SERIES_START_TIME;
1716

1817
public abstract class DataFeedIngestionOperationTestBase extends MetricsAdvisorAdministrationClientTestBase {
1918
public abstract void listIngestionStatus(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion);
2019
static final String DATA_FEED_ID = "9860df01-e740-40ec-94a2-6351813552ba";
20+
static final OffsetDateTime TIME_SERIES_START_TIME = OffsetDateTime.parse("2020-09-09T00:00:00Z");
2121

2222
// Pre-configured test resource.
2323
protected static class ListIngestionStatusInput {

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/FeedbackAsyncTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,11 @@ void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion
8181
.setTimeMode(FeedbackQueryTimeMode.FEEDBACK_CREATED_TIME)
8282
.setStartTime(firstFeedbackCreatedTime.minusDays(1))
8383
.setEndTime(firstFeedbackCreatedTime.plusDays(1))),
84-
Context.NONE))
85-
.thenConsumeWhile(actualMetricFeedbackList::add)
84+
Context.NONE).byPage().take(4))
85+
.thenConsumeWhile(metricFeedbackPagedResponse -> {
86+
metricFeedbackPagedResponse.getValue().forEach(actualMetricFeedbackList::add);
87+
return true;
88+
})
8689
.verifyComplete();
8790

8891
final List<String> expectedMetricFeedbackIdList = expectedMetricFeedbackList.stream()
@@ -96,7 +99,8 @@ void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion
9699

97100
// Assert
98101
assertEquals(inputMetricFeedbackList.size(), actualList.size());
99-
expectedMetricFeedbackList.sort(Comparator.comparing(metricFeedback -> metricFeedback.getFeedbackType().toString()));
102+
expectedMetricFeedbackList.sort(Comparator.comparing(metricFeedback
103+
-> metricFeedback.getFeedbackType().toString()));
100104
actualList.sort(Comparator.comparing(metricFeedback -> metricFeedback.getFeedbackType().toString()));
101105
final AtomicInteger i = new AtomicInteger(-1);
102106
final List<FeedbackType> metricFeedbackTypes = Arrays.asList(COMMENT, COMMENT);

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/FeedbackTest.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.azure.ai.metricsadvisor.models.ListMetricFeedbackOptions;
1111
import com.azure.ai.metricsadvisor.models.MetricFeedback;
1212
import com.azure.core.http.HttpClient;
13+
import com.azure.core.http.rest.PagedResponse;
1314
import com.azure.core.http.rest.Response;
1415
import com.azure.core.util.Context;
1516
import io.netty.handler.codec.http.HttpResponseStatus;
@@ -72,14 +73,21 @@ void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion
7273
final OffsetDateTime firstFeedbackCreatedTime = firstFeedback.getCreatedTime();
7374

7475
// Act & Assert
75-
client.listFeedback(METRIC_ID,
76+
int pageCount = 0;
77+
for (PagedResponse<MetricFeedback> metricFeedbackPagedResponse : client.listFeedback(METRIC_ID,
7678
new ListMetricFeedbackOptions()
7779
.setFilter(new ListMetricFeedbackFilter()
7880
.setTimeMode(FeedbackQueryTimeMode.FEEDBACK_CREATED_TIME)
7981
.setStartTime(firstFeedbackCreatedTime.minusDays(1))
8082
.setEndTime(firstFeedbackCreatedTime.plusDays(1))),
81-
Context.NONE)
82-
.forEach(actualMetricFeedbackList::add);
83+
Context.NONE).iterableByPage()) {
84+
metricFeedbackPagedResponse.getValue()
85+
.forEach(actualMetricFeedbackList::add);
86+
pageCount++;
87+
if (pageCount > 4) {
88+
break;
89+
}
90+
}
8391

8492
final List<String> expectedMetricFeedbackIdList = expectedMetricFeedbackList.stream()
8593
.map(MetricFeedback::getId)

sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/MetricEnrichedSeriesDataTestBase.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.ArrayList;
1313
import java.util.List;
1414

15+
import static com.azure.ai.metricsadvisor.AnomalyAlertTestBase.DETECTION_CONFIGURATION_ID;
16+
1517
public abstract class MetricEnrichedSeriesDataTestBase extends MetricsAdvisorClientTestBase {
1618
public abstract void getEnrichedSeriesData(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion);
1719

@@ -21,7 +23,7 @@ protected static class GetEnrichedSeriesDataInput {
2123
final DimensionKey seriesKey = new DimensionKey()
2224
.put("city", "Miami")
2325
.put("category", "Health & Personal Care");
24-
final String detectionConfigurationId = "e17f32d4-3ddf-4dc7-84ee-b4130c7e1777";
26+
final String detectionConfigurationId = DETECTION_CONFIGURATION_ID;
2527
final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-22T00:00:00Z");
2628
final OffsetDateTime endTime = OffsetDateTime.parse("2020-10-22T00:00:00Z");
2729

0 commit comments

Comments
 (0)