Merge pull request #96 from ascrutae/feature/3.0
fix context data cannot transport to provider side issue
This commit is contained in:
commit
f0a91d4546
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue