diff --git a/skywalking-sniffer/skywalking-agent/pom.xml b/skywalking-sniffer/skywalking-agent/pom.xml index c96971753aa221ae43b854d33478a71334f19671..611871c3cd0007fc4dfb6f9be343c846851b7628 100644 --- a/skywalking-sniffer/skywalking-agent/pom.xml +++ b/skywalking-sniffer/skywalking-agent/pom.xml @@ -53,6 +53,7 @@ + ${artifactId} org.apache.maven.plugins diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/conf/Constants.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/conf/Constants.java index 98b352f6f6022978a73874195de5bcc3d8ebff02..4fe66ee507ae368a0d24d0149fb2d41b3280321b 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/conf/Constants.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/conf/Constants.java @@ -6,7 +6,5 @@ public class Constants { */ public static int SDK_VERSION = 202016; - public static final String HEALTH_DATA_SPILT_PATTERN = "^~"; - - public static final String DATA_SPILT = "#&"; + public static final String CONTEXT_DATA_SEGMENT_SPILT_CHAR = "#&"; } diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/ContextData.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/ContextData.java index e0cefb1a96e1eb97caea78c7eb191e9056239a81..03fd4e3ece1c9662edceaca6b0b1dc14131826ac 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/ContextData.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/ContextData.java @@ -4,6 +4,8 @@ package com.a.eye.skywalking.model; import com.a.eye.skywalking.api.Tracing; import com.a.eye.skywalking.network.grpc.TraceId; +import static com.a.eye.skywalking.conf.Constants.CONTEXT_DATA_SEGMENT_SPILT_CHAR; + public class ContextData { private TraceId traceId; private String parentLevel; @@ -29,12 +31,12 @@ public class ContextData { public ContextData(String contextDataStr) { // 反序列化参数 - String[] value = contextDataStr.split("-"); + String[] value = contextDataStr.split(CONTEXT_DATA_SEGMENT_SPILT_CHAR); if (value == null || value.length != 4) { throw new IllegalArgumentException("illegal context"); } String traceIdStr = value[0]; - String[] traceIdSegments = traceIdStr.split(","); + String[] traceIdSegments = traceIdStr.split("\\."); if(traceIdSegments == null || traceIdSegments.length != 6){ throw new IllegalArgumentException("illegal traceid in context"); } @@ -71,15 +73,15 @@ public class ContextData { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(Tracing.formatTraceId(traceId)); - stringBuilder.append("-"); + stringBuilder.append(CONTEXT_DATA_SEGMENT_SPILT_CHAR); if (parentLevel == null || parentLevel.length() == 0) { stringBuilder.append(" "); } else { stringBuilder.append(parentLevel); } - stringBuilder.append("-"); + stringBuilder.append(CONTEXT_DATA_SEGMENT_SPILT_CHAR); stringBuilder.append(levelId); - stringBuilder.append("-"); + stringBuilder.append(CONTEXT_DATA_SEGMENT_SPILT_CHAR); stringBuilder.append(routeKey); return stringBuilder.toString(); } diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java index 31de4ca470dfaf484b8c68d5a2d8d0010c3c343f..2a7c6443fc7bd272b4f6f35388fd428cdc5713d9 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java @@ -4,6 +4,7 @@ package com.a.eye.skywalking.model; import com.a.eye.skywalking.network.grpc.AckSpan; import com.a.eye.skywalking.network.grpc.RequestSpan; import com.a.eye.skywalking.network.grpc.TraceId; +import com.a.eye.skywalking.util.RoutingKeyGenerator; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -76,12 +77,14 @@ public class Span { this.parentLevel = ""; } - public Span(TraceId traceId, String parentLevel, int levelId, String applicationId, String userId) { + public Span(TraceId traceId, String parentLevel, int levelId, String applicationId, String userId, String viewPointId) { this.traceId = traceId; this.parentLevel = parentLevel; this.levelId = levelId; this.applicationId = applicationId; this.userId = userId; + this.viewPointId = viewPointId; + this.routeKey = RoutingKeyGenerator.generate(viewPointId); } public TraceId getTraceId() { diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java index 7370f4fdcd6f0e772e2b422817185964402a8b2d..2ff7ee4f86341d21d3f951e5f06da94d0b548210 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java @@ -28,7 +28,8 @@ public final class ContextGenerator { public static Span generateSpanFromContextData(ContextData context, Identification id) { Span spanData = CurrentThreadSpanStack.peek(); if (context != null && context.getTraceId() != null && spanData == null) { - spanData = new Span(context.getTraceId(), context.getParentLevel(), context.getLevelId(), Config.SkyWalking.APPLICATION_CODE, Config.SkyWalking.USER_ID); + spanData = new Span(context.getTraceId(), context.getParentLevel(), context.getLevelId(), + Config.SkyWalking.APPLICATION_CODE, Config.SkyWalking.USER_ID, id.getViewPoint()); } else { spanData = getSpanFromThreadLocal(id); }