use of org.apache.skywalking.apm.collector.storage.ui.trace.Trace in project incubator-skywalking by apache.
the class TraceStackService method load.
public Trace load(String traceId) {
Trace trace = new Trace();
List<String> segmentIds = globalTraceDAO.getSegmentIds(traceId);
if (CollectionUtils.isNotEmpty(segmentIds)) {
for (String segmentId : segmentIds) {
TraceSegmentObject segment = segmentDAO.load(segmentId);
if (ObjectUtils.isNotEmpty(segment)) {
trace.getSpans().addAll(buildSpanList(traceId, segmentId, segment.getApplicationId(), segment.getSpansList()));
}
}
}
List<Span> sortedSpans = new LinkedList<>();
if (CollectionUtils.isNotEmpty(trace.getSpans())) {
List<Span> rootSpans = findRoot(trace.getSpans());
if (CollectionUtils.isNotEmpty(rootSpans)) {
rootSpans.forEach(span -> {
List<Span> childrenSpan = new ArrayList<>();
childrenSpan.add(span);
findChildren(trace.getSpans(), span, childrenSpan);
sortedSpans.addAll(childrenSpan);
});
}
}
// minStartTime(sortedSpans);
trace.setSpans(sortedSpans);
return trace;
}
Aggregations