blob: 2ac304f1c1444b3a9e9169b49baad2e678b69cae [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.skywalking.plugin.test.mockcollector.util;
import com.google.common.collect.Lists;
import java.util.List;
import org.apache.skywalking.apm.network.common.v3.KeyStringValuePair;
import org.apache.skywalking.apm.network.language.agent.v3.Log;
import org.apache.skywalking.apm.network.language.agent.v3.SegmentObject;
import org.apache.skywalking.apm.network.language.agent.v3.SegmentReference;
import org.apache.skywalking.apm.network.language.agent.v3.SpanObject;
import org.apache.skywalking.plugin.test.mockcollector.entity.Segment;
import org.apache.skywalking.plugin.test.mockcollector.entity.Span;
import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
public class TraceSegmentHandler {
public static void parseSegment(SegmentObject segmentObject) {
Segment.SegmentBuilder builder = Segment.builder();
List<Span> spans = Lists.newArrayList();
for (SpanObject spanObject : segmentObject.getSpansList()) {
Span.SpanBuilder spanBuilder = Span.builder();
spanBuilder.operationName(spanObject.getOperationName())
.parentSpanId(spanObject.getParentSpanId())
.spanId(spanObject.getSpanId())
.spanLayer(spanObject.getSpanLayer().name())
.startTime(spanObject.getStartTime())
.endTime(spanObject.getEndTime())
.componentId(spanObject.getComponentId())
.componentName(spanObject.getComponent())
.isError(spanObject.getIsError())
.spanType(spanObject.getSpanType().name())
.peer(spanObject.getPeer());
for (Log log : spanObject.getLogsList()) {
spanBuilder.logEvent(log.getDataList());
}
for (KeyStringValuePair tags : spanObject.getTagsList()) {
spanBuilder.tags(tags.getKey(), tags.getValue());
}
for (SegmentReference ref : spanObject.getRefsList()) {
spanBuilder.ref(new Span.SegmentRef(ref));
}
spans.add(spanBuilder.build());
}
builder.segmentId(segmentObject.getTraceSegmentId()).spans(spans);
ValidateData.INSTANCE.getSegmentItem()
.addSegmentItem(segmentObject.getService(), builder.build());
}
}