diff --git a/validator/src/main/java/com/amazon/aoc/services/XRayService.java b/validator/src/main/java/com/amazon/aoc/services/XRayService.java index c757aca4c..a22bee74a 100644 --- a/validator/src/main/java/com/amazon/aoc/services/XRayService.java +++ b/validator/src/main/java/com/amazon/aoc/services/XRayService.java @@ -23,6 +23,7 @@ import com.amazonaws.services.xray.model.GetTraceSummariesResult; import com.amazonaws.services.xray.model.Trace; import com.amazonaws.services.xray.model.TraceSummary; +import java.util.ArrayList; import java.util.Date; import java.util.List; import org.joda.time.DateTime; @@ -53,12 +54,21 @@ public List listTraceByIds(List traceIdList) { public List searchTraces(String traceFilter) { Date currentDate = new Date(); Date pastDate = new DateTime(currentDate).minusSeconds(SEARCH_PERIOD).toDate(); - GetTraceSummariesResult traceSummaryResult = - awsxRay.getTraceSummaries( - new GetTraceSummariesRequest() - .withStartTime(pastDate) - .withEndTime(currentDate) - .withFilterExpression(traceFilter)); - return traceSummaryResult.getTraceSummaries(); + List allSummaries = new ArrayList<>(); + String nextToken = null; + do { + GetTraceSummariesResult traceSummaryResult = + awsxRay.getTraceSummaries( + new GetTraceSummariesRequest() + .withStartTime(pastDate) + .withEndTime(currentDate) + .withFilterExpression(traceFilter) + .withNextToken(nextToken)); + + allSummaries.addAll(traceSummaryResult.getTraceSummaries()); + nextToken = traceSummaryResult.getNextToken(); + } while(nextToken != null); + + return allSummaries; } }