From 223b4de2a42839f4dfc362998c76907d572948c8 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Thu, 2 Mar 2017 15:09:30 +0800 Subject: [PATCH 1/2] fix context data cannot transport to provider side issue --- .../skywalking/toolkit/opentracing/SkyWalkingTracer.java | 2 +- .../java/com/a/eye/skywalking/api/util/StringUtil.java | 9 ++++++++- .../plugin/motan/MotanConsumerInvokeInterceptor.java | 2 +- .../log/log4j/v1/x/PrintTraceIdInterceptor.java | 4 +--- .../log/log4j/v2/x/PrintTraceIdInterceptor.java | 4 +--- .../log/logback/v1/x/PrintTraceIdInterceptor.java | 9 +++------ ...acerExtractCrossProcessTextMapContextInterceptor.java | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/skywalking-application-toolkit/skywalking-toolkit-opentracing/src/main/java/com/a/eye/skywalking/toolkit/opentracing/SkyWalkingTracer.java b/skywalking-application-toolkit/skywalking-toolkit-opentracing/src/main/java/com/a/eye/skywalking/toolkit/opentracing/SkyWalkingTracer.java index eb3f851be..4a62c6a82 100644 --- a/skywalking-application-toolkit/skywalking-toolkit-opentracing/src/main/java/com/a/eye/skywalking/toolkit/opentracing/SkyWalkingTracer.java +++ b/skywalking-application-toolkit/skywalking-toolkit-opentracing/src/main/java/com/a/eye/skywalking/toolkit/opentracing/SkyWalkingTracer.java @@ -15,7 +15,7 @@ import java.nio.ByteBuffer; * Created by wusheng on 2016/12/20. */ public class SkyWalkingTracer implements Tracer { - private static String TRACE_HEAD_NAME = "SkyWalking-TRACING-NAME"; + private static String TRACE_HEAD_NAME = "SW-TRACING-NAME"; public static Tracer INSTANCE = new SkyWalkingTracer(); diff --git a/skywalking-commons/skywalking-util/src/main/java/com/a/eye/skywalking/api/util/StringUtil.java b/skywalking-commons/skywalking-util/src/main/java/com/a/eye/skywalking/api/util/StringUtil.java index d448a3802..4ffe5b154 100644 --- a/skywalking-commons/skywalking-util/src/main/java/com/a/eye/skywalking/api/util/StringUtil.java +++ b/skywalking-commons/skywalking-util/src/main/java/com/a/eye/skywalking/api/util/StringUtil.java @@ -17,13 +17,20 @@ public final class StringUtil { } int length = strings.length - 1; for (final String s : strings) { + if (s == null) { + continue; + } length += s.length(); } final StringBuilder sb = new StringBuilder(length); - sb.append(strings[0]); + if (strings[0] != null) { + sb.append(strings[0]); + } for (int i = 1; i < strings.length; ++i) { if (!isEmpty(strings[i])) { sb.append(delimiter).append(strings[i]); + } else { + sb.append(delimiter); } } return sb.toString(); diff --git a/skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanConsumerInvokeInterceptor.java b/skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanConsumerInvokeInterceptor.java index c24b056e2..cb384ebe1 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanConsumerInvokeInterceptor.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanConsumerInvokeInterceptor.java @@ -29,7 +29,7 @@ public class MotanConsumerInvokeInterceptor implements InstanceMethodsAroundInte /** * Attachment key of the serialized context data. */ - private static final String ATTACHMENT_KEY_OF_CONTEXT_DATA = "contextData"; + private static final String ATTACHMENT_KEY_OF_CONTEXT_DATA = "SWTraceContext"; /** * Motan component diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java index 9c9091445..83a46851c 100644 --- a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java +++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java @@ -26,9 +26,7 @@ public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor */ @Override public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { - ContextCarrier carrier = new ContextCarrier(); - ContextManager.INSTANCE.inject(carrier); - return "TID:" + carrier.getTraceSegmentId(); + return "TID:" + ContextManager.INSTANCE.getTraceSegmentId(); } @Override diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java index d8faef9e7..fa848a18c 100644 --- a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java +++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java @@ -19,9 +19,7 @@ public class PrintTraceIdInterceptor implements StaticMethodsAroundInterceptor { */ @Override public void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result) { - ContextCarrier carrier = new ContextCarrier(); - ContextManager.INSTANCE.inject(carrier); - ((StringBuilder) interceptorContext.allArguments()[0]).append("TID:" + carrier.getTraceSegmentId()); + ((StringBuilder) interceptorContext.allArguments()[0]).append("TID:" + ContextManager.INSTANCE.getTraceSegmentId()); //make sure origin method do not invoke. result.defineReturnValue(null); diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java index acc17953c..f1d4c52c6 100644 --- a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java +++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java @@ -1,6 +1,5 @@ package com.a.eye.skywalking.toolkit.activation.log.logback.v1.x; -import com.a.eye.skywalking.api.context.ContextCarrier; import com.a.eye.skywalking.api.context.ContextManager; import com.a.eye.skywalking.api.plugin.interceptor.EnhancedClassInstanceContext; import com.a.eye.skywalking.api.plugin.interceptor.enhance.InstanceMethodInvokeContext; @@ -19,16 +18,14 @@ public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor /** * Override com.a.eye.skywalking.toolkit.log.logback.v1.x.LogbackPatternConverter.convert(), * - * @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance. + * @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance. * @param interceptorContext method context, includes class name, method name, etc. - * @param ret the method's original return value. + * @param ret the method's original return value. * @return the traceId */ @Override public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { - ContextCarrier carrier = new ContextCarrier(); - ContextManager.INSTANCE.inject(carrier); - return "TID:" + carrier.getTraceSegmentId(); + return "TID:" + ContextManager.INSTANCE.getTraceSegmentId(); } @Override diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java index ca1e71c98..5541a219f 100644 --- a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java +++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java @@ -16,7 +16,7 @@ import java.util.Map; */ public class TracerExtractCrossProcessTextMapContextInterceptor implements InstanceMethodsAroundInterceptor { - public static final String SKY_WALKING_TRACING_NAME = "SkyWalking-TRACING-NAME"; + public static final String SKY_WALKING_TRACING_NAME = "SW-TRACING-NAME"; @Override public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, From 7e701394fc571f58092df97de005a4b5fa4d65ad Mon Sep 17 00:00:00 2001 From: ascrutae Date: Thu, 2 Mar 2017 15:19:32 +0800 Subject: [PATCH 2/2] fix test issue --- .../a/eye/skywalking/plugin/dubbo/DubboInterceptorTest.java | 2 +- .../plugin/dubbo/RequestParamForTestBelow283.java | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/DubboInterceptorTest.java b/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/DubboInterceptorTest.java index d964fb79a..f0714dfc0 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/DubboInterceptorTest.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/DubboInterceptorTest.java @@ -89,7 +89,7 @@ public class DubboInterceptorTest { public void call(TraceSegment traceSegment) { assertThat(traceSegment.getSpans().size(), is(1)); assertConsumerSpan(traceSegment.getSpans().get(0)); - testParam.assertSelf("0", "127.0.0.1"); + testParam.assertSelf("127.0.0.1"); } }); } diff --git a/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/RequestParamForTestBelow283.java b/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/RequestParamForTestBelow283.java index 3a0173903..ff259fb8a 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/RequestParamForTestBelow283.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/a/eye/skywalking/plugin/dubbo/RequestParamForTestBelow283.java @@ -14,11 +14,9 @@ public class RequestParamForTestBelow283 extends SWBaseBean { /** * This method assert that {@link SWBaseBean#getTraceContext()} if it's not null and context data * will end with the expect span id. - * - * @param expectSpanId expect span id */ - public void assertSelf(String expectSpanId, String expectHost) { + public void assertSelf(String expectHost) { assertNotNull(getTraceContext()); - assertThat(getTraceContext(), endsWith(expectSpanId + "|" + expectHost)); + assertThat(getTraceContext(), endsWith(expectHost)); } }