Search in sources :

Example 1 with Trace

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;
}
Also used : Trace(org.apache.skywalking.apm.collector.storage.ui.trace.Trace) ArrayList(java.util.ArrayList) TraceSegmentObject(org.apache.skywalking.apm.network.proto.TraceSegmentObject) Span(org.apache.skywalking.apm.collector.storage.ui.trace.Span) LinkedList(java.util.LinkedList)

Aggregations

ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 Span (org.apache.skywalking.apm.collector.storage.ui.trace.Span)1 Trace (org.apache.skywalking.apm.collector.storage.ui.trace.Trace)1 TraceSegmentObject (org.apache.skywalking.apm.network.proto.TraceSegmentObject)1