From b69e61a6599c00a0aa7dc272e86eaf22b973e95b Mon Sep 17 00:00:00 2001 From: wusheng Date: Sat, 2 Jul 2016 20:48:20 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=A4=A7=E9=87=8F=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=8E=9F=E6=9C=89=E7=9A=84?= =?UTF-8?q?=E5=A4=A7=E9=87=8F=E5=9F=BA=E7=A1=80=E7=B1=BB=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=92=8C=E6=96=B9=E6=B3=95=E5=90=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dubbo/impl/AccountMaintainImpl.java | 2 +- .../skywalking/api/BusinessKeyAppender.java | 4 +- .../skywalking/api/IBuriedPointReceiver.java | 10 --- .../skywalking/api/IBuriedPointSender.java | 10 --- .../skywalking/api/IExceptionHandler.java | 5 -- .../com/ai/cloud/skywalking/api/Tracing.java | 6 +- .../buriedpoint/ThreadBuriedPointSender.java | 69 ------------------- .../ThreadFactoryBuriedPointSender.java | 39 ----------- ...ntext.java => CurrentThreadSpanStack.java} | 44 ++++++------ .../BaseTracer.java} | 20 +++--- .../LocalMethodTracer.java} | 22 +++--- .../RPCClientTracer.java} | 27 ++++---- .../RPCServerTracer.java} | 31 +++++---- .../skywalking/util/ContextGenerator.java | 4 +- .../test/java/test/ai/cloud/api/TimeTest.java | 8 +-- .../plugin/dubbo/SWDubboEnhanceFilter.java | 24 +++---- .../plugin/HttpClientExecuteInterceptor.java | 10 +-- .../plugin/jdbc/CallableStatementTracing.java | 10 +-- .../plugin/jdbc/ConnectionTracing.java | 10 +-- .../plugin/jdbc/PreparedStatementTracing.java | 10 +-- .../plugin/jdbc/StatementTracing.java | 10 +-- .../jedis/v2/plugin/JedisBaseInterceptor.java | 10 +-- .../plugin/spring/TracingAspect.java | 10 +-- .../plugin/web/SkyWalkingFilter.java | 12 ++-- 24 files changed, 142 insertions(+), 265 deletions(-) delete mode 100644 skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java delete mode 100644 skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java delete mode 100644 skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java delete mode 100644 skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java delete mode 100644 skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java rename skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/{Context.java => CurrentThreadSpanStack.java} (67%) rename skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/{buriedpoint/BuriedPointInvoker.java => tracer/BaseTracer.java} (84%) rename skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/{buriedpoint/LocalBuriedPointSender.java => tracer/LocalMethodTracer.java} (64%) rename skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/{buriedpoint/RPCBuriedPointSender.java => tracer/RPCClientTracer.java} (73%) rename skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/{buriedpoint/RPCBuriedPointReceiver.java => tracer/RPCServerTracer.java} (60%) diff --git a/samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java b/samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java index 2278866f5a..c23c539598 100644 --- a/samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java +++ b/samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.example.account.dubbo.impl; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCBuriedPointSender; import com.ai.cloud.skywalking.example.account.dubbo.interfaces.IAccountMaintain; import com.ai.cloud.skywalking.example.account.dubbo.interfaces.param.AccountInfo; import com.ai.cloud.skywalking.example.account.exception.BusinessException; diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java index efe9cc94e4..522e9c7fa4 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java @@ -2,7 +2,7 @@ package com.ai.cloud.skywalking.api; import com.ai.cloud.skywalking.conf.AuthDesc; import com.ai.cloud.skywalking.conf.Config; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.protocol.Span; public final class BusinessKeyAppender { @@ -20,7 +20,7 @@ public final class BusinessKeyAppender { if (!AuthDesc.isAuth()) return; - Span spanData = Context.getLastSpan(); + Span spanData = CurrentThreadSpanStack.peek(); if (spanData == null) { return; } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java deleted file mode 100644 index a08caf00b8..0000000000 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.ai.cloud.skywalking.api; - -import com.ai.cloud.skywalking.model.ContextData; -import com.ai.cloud.skywalking.model.Identification; - -public interface IBuriedPointReceiver extends IExceptionHandler { - void afterReceived(); - - void beforeReceived(ContextData contextData, Identification id); -} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java deleted file mode 100644 index d2fb762239..0000000000 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.ai.cloud.skywalking.api; - -import com.ai.cloud.skywalking.model.Identification; -import com.ai.cloud.skywalking.model.ContextData; - -public interface IBuriedPointSender extends IExceptionHandler { - ContextData beforeSend(Identification id); - - void afterSend(); -} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java deleted file mode 100644 index 6bdfb0395e..0000000000 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.ai.cloud.skywalking.api; - -public interface IExceptionHandler { - void handleException(Throwable th); -} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java index 375570833d..1c190ee740 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java @@ -1,7 +1,7 @@ package com.ai.cloud.skywalking.api; import com.ai.cloud.skywalking.conf.AuthDesc; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.model.ContextData; import com.ai.cloud.skywalking.protocol.Span; @@ -15,7 +15,7 @@ public class Tracing { if (!AuthDesc.isAuth()) return ""; - Span spanData = Context.getLastSpan(); + Span spanData = CurrentThreadSpanStack.peek(); if (spanData == null) { return ""; } @@ -27,7 +27,7 @@ public class Tracing { if (!AuthDesc.isAuth()) return null; - Span spanData = Context.getLastSpan(); + Span spanData = CurrentThreadSpanStack.peek(); if (spanData == null) { return null; } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java deleted file mode 100644 index 928652fe26..0000000000 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.ai.cloud.skywalking.buriedpoint; - -import com.ai.cloud.skywalking.api.IBuriedPointSender; -import com.ai.cloud.skywalking.conf.AuthDesc; -import com.ai.cloud.skywalking.conf.Config; -import com.ai.cloud.skywalking.context.Context; -import com.ai.cloud.skywalking.logging.LogManager; -import com.ai.cloud.skywalking.logging.Logger; -import com.ai.cloud.skywalking.model.ContextData; -import com.ai.cloud.skywalking.model.EmptyContextData; -import com.ai.cloud.skywalking.model.Identification; -import com.ai.cloud.skywalking.protocol.Span; -import com.ai.cloud.skywalking.util.BuriedPointMachineUtil; -import com.ai.cloud.skywalking.util.TraceIdGenerator; - -/** - * 暂不确定多线程的实现方式 - * - * @author wusheng - */ -@Deprecated -public class ThreadBuriedPointSender extends BuriedPointInvoker - implements IBuriedPointSender { - private static Logger logger = LogManager - .getLogger(ThreadBuriedPointSender.class); - - private Span span; - - public ThreadBuriedPointSender(int threadSeqId) { - if (!AuthDesc.isAuth()) - return; - Span spanData; - // 从ThreadLocal中取出上下文 - final Span parentSpanData = Context.getLastSpan(); - if (parentSpanData == null) { - spanData = new Span(TraceIdGenerator.generate(), - Config.SkyWalking.APPLICATION_CODE, - Config.SkyWalking.USER_ID); - } else { - // 如果不为空,则将当前的Context存放到上下文 - spanData = new Span(parentSpanData.getTraceId(), - Config.SkyWalking.APPLICATION_CODE, - Config.SkyWalking.USER_ID); - spanData.setParentLevel(parentSpanData.getParentLevel() + "." - + parentSpanData.getLevelId()); - spanData.setLevelId(threadSeqId); - } - this.span = spanData; - } - - public ContextData beforeSend(Identification id) { - if (!AuthDesc.isAuth()) - return new EmptyContextData(); - - if (this.span == null) { - return null; - } - span.setStartDate(System.currentTimeMillis()); - span.setViewPointId(id.getViewPoint()); - span.setProcessNo(BuriedPointMachineUtil.getProcessNo()); - Context.append(span); - return new ContextData(span); - } - - public void afterSend() { - super.afterInvoker(); - } - -} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java deleted file mode 100644 index 48fcd99e78..0000000000 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.ai.cloud.skywalking.buriedpoint; - -import com.ai.cloud.skywalking.api.IBuriedPointSender; -import com.ai.cloud.skywalking.conf.AuthDesc; -import com.ai.cloud.skywalking.context.Context; -import com.ai.cloud.skywalking.logging.LogManager; -import com.ai.cloud.skywalking.logging.Logger; -import com.ai.cloud.skywalking.model.ContextData; -import com.ai.cloud.skywalking.model.EmptyContextData; -import com.ai.cloud.skywalking.model.Identification; -import com.ai.cloud.skywalking.protocol.Span; -import com.ai.cloud.skywalking.util.ContextGenerator; - -/** - * 暂不确定多线程的实现方式 - * - * @author wusheng - */ -@Deprecated -public class ThreadFactoryBuriedPointSender extends BuriedPointInvoker - implements IBuriedPointSender { - private static Logger logger = LogManager - .getLogger(ThreadBuriedPointSender.class); - - public ContextData beforeSend(Identification id) { - if (!AuthDesc.isAuth()) - return new EmptyContextData(); - - Span spanData = ContextGenerator.generateSpanFromThreadLocal(id); - // 将新创建的Context存放到ThreadLocal栈中。 - Context.append(spanData); - // 并将当前的Context返回回去 - return new ContextData(spanData); - } - - public void afterSend() { - super.afterInvoker(); - } -} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/Context.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/CurrentThreadSpanStack.java similarity index 67% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/Context.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/CurrentThreadSpanStack.java index a0468a222e..216fb1743d 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/Context.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/CurrentThreadSpanStack.java @@ -5,56 +5,60 @@ import com.ai.cloud.skywalking.protocol.Span; import java.util.ArrayList; import java.util.List; -public class Context { +public class CurrentThreadSpanStack { private static ThreadLocal nodes = new ThreadLocal(); - private Context() { + private CurrentThreadSpanStack() { } - public static void append(Span span) { + public static void push(Span span) { if (nodes.get() == null) { nodes.set(new SpanNodeStack()); } nodes.get().push(span); } - public static Span getLastSpan() { + public static Span peek() { if (nodes.get() == null) { return null; } return nodes.get().peek(); } - public static Span removeLastSpan() { + public static Span pop() { if (nodes.get() == null) { return null; } return nodes.get().pop(); } - public static void invalidateAllSpan() { + public static void invalidatePresentSpans() { if (nodes.get() == null) { nodes.set(new SpanNodeStack()); } - nodes.get().invalidateAllCurrentSpan(); + nodes.get().invalidatePresentSpans(); } static class SpanNodeStack { - private List spans = new ArrayList(); + /** + * 单JVM的单线程,埋点数量一般不会超过20. + * 超过20会影响性能,不推荐使用 + */ + private List spans = new ArrayList(20); public Span pop() { - Span span = listPop(); + Span span = spans.remove(getTopElementIdx()).getData(); if (!isEmpty()) { - listPeek().incrementNextSubSpanLevelId(); + spans.get(getTopElementIdx()).incrementNextSubSpanLevelId(); } return span; } public void push(Span span) { if (!isEmpty()) { - listPush(new SpanNode(span, listPeek().getNextSubSpanLevelId())); + listPush(new SpanNode(span, spans.get(getTopElementIdx()).getNextSubSpanLevelId())); } else { listPush(new SpanNode(span)); } @@ -65,26 +69,22 @@ public class Context { if (spans.isEmpty()) { return null; } - return listPeek().getData(); + return spans.get(getTopElementIdx()).getData(); } - public boolean isEmpty() { - return spans.isEmpty(); - } - - private Span listPop() { - return spans.remove(spans.size() - 1).getData(); + private int getTopElementIdx() { + return spans.size() - 1; } - private SpanNode listPeek() { - return spans.get(spans.size() - 1); + private boolean isEmpty() { + return spans.isEmpty(); } private void listPush(SpanNode spanNode) { spans.add(spans.size(), spanNode); } - public void invalidateAllCurrentSpan() { + public void invalidatePresentSpans() { for (SpanNode spanNode : spans) { spanNode.getData().setIsInvalidate(true); } @@ -93,7 +93,7 @@ public class Context { static class SpanNode { private Span data; - // + private int nextSubSpanLevelId = 0; public SpanNode(Span data) { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/BuriedPointInvoker.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/BaseTracer.java similarity index 84% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/BuriedPointInvoker.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/BaseTracer.java index 7eca3cd257..fc76e5229d 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/BuriedPointInvoker.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/BaseTracer.java @@ -1,9 +1,9 @@ -package com.ai.cloud.skywalking.buriedpoint; +package com.ai.cloud.skywalking.tracer; import com.ai.cloud.skywalking.buffer.ContextBuffer; import com.ai.cloud.skywalking.conf.AuthDesc; import com.ai.cloud.skywalking.conf.Config; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; import com.ai.cloud.skywalking.model.ContextData; @@ -14,17 +14,17 @@ import java.util.Set; import static com.ai.cloud.skywalking.conf.Config.BuriedPoint.EXCLUSIVE_EXCEPTIONS; -public class BuriedPointInvoker { +public abstract class BaseTracer { private static Logger logger = LogManager - .getLogger(BuriedPointInvoker.class); + .getLogger(BaseTracer.class); private static String EXCEPTION_SPLIT = ","; private static Set exclusiveExceptionSet = null; - public ContextData beforeInvoker(Span spanData) { + protected ContextData traceBeforeInvoke(Span spanData) { if (Config.BuriedPoint.PRINTF) { logger.debug("TraceId:" + spanData.getTraceId() + "\tviewpointId:" + spanData.getViewPointId() @@ -33,18 +33,18 @@ public class BuriedPointInvoker { } // 将新创建的Context存放到ThreadLocal栈中。 - Context.append(spanData); + CurrentThreadSpanStack.push(spanData); // 并将当前的Context返回回去 return new ContextData(spanData); } - public void afterInvoker() { + protected void traceAfterInvoke() { try { if (!AuthDesc.isAuth()) return; // 弹出上下文的栈顶中的元素 - Span spanData = Context.removeLastSpan(); + Span spanData = CurrentThreadSpanStack.pop(); if (spanData == null || spanData.isInvalidate()) { return; } @@ -67,7 +67,7 @@ public class BuriedPointInvoker { } } - public void handleException(Throwable th) { + protected void occurException(Throwable th) { try { if (exclusiveExceptionSet == null) { Set exclusiveExceptions = new HashSet(); @@ -80,7 +80,7 @@ public class BuriedPointInvoker { exclusiveExceptionSet = exclusiveExceptions; } - Span span = Context.getLastSpan(); + Span span = CurrentThreadSpanStack.peek(); span.handleException(th, exclusiveExceptionSet, Config.BuriedPoint.MAX_EXCEPTION_STACK_LENGTH); } catch (Throwable t) { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/LocalBuriedPointSender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/LocalMethodTracer.java similarity index 64% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/LocalBuriedPointSender.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/LocalMethodTracer.java index 97c466fb89..e2da503d06 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/LocalBuriedPointSender.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/LocalMethodTracer.java @@ -1,6 +1,5 @@ -package com.ai.cloud.skywalking.buriedpoint; +package com.ai.cloud.skywalking.tracer; -import com.ai.cloud.skywalking.api.IBuriedPointSender; import com.ai.cloud.skywalking.conf.AuthDesc; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; @@ -10,27 +9,32 @@ import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.protocol.Span; import com.ai.cloud.skywalking.util.ContextGenerator; -public class LocalBuriedPointSender extends BuriedPointInvoker - implements IBuriedPointSender { +public class LocalMethodTracer extends BaseTracer { private static Logger logger = LogManager - .getLogger(LocalBuriedPointSender.class); + .getLogger(LocalMethodTracer.class); - public ContextData beforeSend(Identification id) { + public ContextData traceBeforeInvoke(Identification id) { try { if (!AuthDesc.isAuth()) return new EmptyContextData(); Span spanData = ContextGenerator.generateSpanFromThreadLocal(id); - return super.beforeInvoker(spanData); + return super.traceBeforeInvoke(spanData); } catch (Throwable t) { logger.error(t.getMessage(), t); return new EmptyContextData(); } } - public void afterSend() { - super.afterInvoker(); + public void traceAfterInvoke(){ + super.traceAfterInvoke(); } + + + public void occurException(Throwable th){ + super.occurException(th); + } + } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointSender.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCClientTracer.java similarity index 73% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointSender.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCClientTracer.java index a803b05e4a..e03505ea18 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointSender.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCClientTracer.java @@ -1,8 +1,7 @@ -package com.ai.cloud.skywalking.buriedpoint; +package com.ai.cloud.skywalking.tracer; -import com.ai.cloud.skywalking.api.IBuriedPointSender; import com.ai.cloud.skywalking.conf.AuthDesc; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; import com.ai.cloud.skywalking.model.ContextData; @@ -12,13 +11,12 @@ import com.ai.cloud.skywalking.protocol.Span; import com.ai.cloud.skywalking.protocol.SpanType; import com.ai.cloud.skywalking.util.ContextGenerator; -public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedPointSender { +public class RPCClientTracer extends BaseTracer{ private static Logger logger = LogManager - .getLogger(RPCBuriedPointSender.class); + .getLogger(RPCClientTracer.class); - @Override - public ContextData beforeSend(Identification id) { + public ContextData traceBeforeInvoke(Identification id) { try { if (!AuthDesc.isAuth()) return new EmptyContextData(); @@ -27,7 +25,7 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP //设置SpanType的类型 spanData.setSpanType(SpanType.RPC_CLIENT); - Context.append(spanData); + CurrentThreadSpanStack.push(spanData); return new ContextData(spanData.getTraceId(), generateSubParentLevelId(spanData), spanData.getCallType()); } catch (Throwable t) { @@ -36,6 +34,15 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP } } + public void traceAfterInvoke(){ + super.traceAfterInvoke(); + } + + + public void occurException(Throwable th){ + super.occurException(th); + } + private String generateSubParentLevelId(Span spanData) { if (spanData.getParentLevel() == null) { return spanData.getLevelId() + ""; @@ -44,8 +51,4 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP return spanData.getParentLevel() + "." + spanData.getLevelId(); } - @Override - public void afterSend() { - super.afterInvoker(); - } } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointReceiver.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCServerTracer.java similarity index 60% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointReceiver.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCServerTracer.java index ed4dd36000..9dac4475d6 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/RPCBuriedPointReceiver.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCServerTracer.java @@ -1,8 +1,7 @@ -package com.ai.cloud.skywalking.buriedpoint; +package com.ai.cloud.skywalking.tracer; -import com.ai.cloud.skywalking.api.IBuriedPointReceiver; import com.ai.cloud.skywalking.conf.AuthDesc; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; import com.ai.cloud.skywalking.model.ContextData; @@ -11,17 +10,12 @@ import com.ai.cloud.skywalking.protocol.Span; import com.ai.cloud.skywalking.protocol.SpanType; import com.ai.cloud.skywalking.util.ContextGenerator; -public class RPCBuriedPointReceiver extends BuriedPointInvoker - implements IBuriedPointReceiver { +public class RPCServerTracer extends BaseTracer{ private static Logger logger = LogManager - .getLogger(RPCBuriedPointReceiver.class); + .getLogger(RPCServerTracer.class); - public void afterReceived() { - super.afterInvoker(); - } - - public void beforeReceived(ContextData context, Identification id) { + public void traceBeforeInvoke(ContextData context, Identification id) { try { if (!AuthDesc.isAuth()) return; @@ -33,15 +27,24 @@ public class RPCBuriedPointReceiver extends BuriedPointInvoker invalidateAllSpanIfIsNotFirstSpan(spanData); - super.beforeInvoker(spanData); + super.traceBeforeInvoke(spanData); } catch (Throwable t) { logger.error(t.getMessage(), t); } } + public void traceAfterInvoke(){ + super.traceAfterInvoke(); + } + + + public void occurException(Throwable th){ + super.occurException(th); + } + private void invalidateAllSpanIfIsNotFirstSpan(Span spanData) { - if (!Context.getLastSpan().getTraceId().equals(spanData.getTraceId())) { - Context.invalidateAllSpan(); + if (!CurrentThreadSpanStack.peek().getTraceId().equals(spanData.getTraceId())) { + CurrentThreadSpanStack.invalidatePresentSpans(); } } } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java index b6f5e2c55d..0fca91a010 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java @@ -1,7 +1,7 @@ package com.ai.cloud.skywalking.util; import com.ai.cloud.skywalking.conf.Config; -import com.ai.cloud.skywalking.context.Context; +import com.ai.cloud.skywalking.context.CurrentThreadSpanStack; import com.ai.cloud.skywalking.model.ContextData; import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.protocol.Span; @@ -57,7 +57,7 @@ public final class ContextGenerator { private static Span getSpanFromThreadLocal() { Span span; // 1.获取Context,从ThreadLocal栈中获取中 - final Span parentSpan = Context.getLastSpan(); + final Span parentSpan = CurrentThreadSpanStack.peek(); // 2 校验Context,Context是否存在 if (parentSpan == null) { // 不存在,新创建一个Context diff --git a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java index 7083868575..fa702bf962 100644 --- a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java +++ b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java @@ -2,21 +2,21 @@ package test.ai.cloud.api; import org.junit.Test; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.model.Identification.IdentificationBuilder; public class TimeTest { @Test public void test(){ - RPCBuriedPointSender sender = new RPCBuriedPointSender(); + RPCClientTracer sender = new RPCClientTracer(); long start = System.currentTimeMillis(); for (int i = 0; i < 100; i++) { IdentificationBuilder builder = Identification .newBuilder() .viewPoint("1111"); - sender.beforeSend(builder.build()); - sender.afterSend(); + sender.traceBeforeInvoke(builder.build()); + sender.traceAfterInvoke(); } long end = System.currentTimeMillis(); System.out.println(end - start + "ms"); diff --git a/skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java b/skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java index 05d725df3d..a259c6710c 100644 --- a/skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java +++ b/skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java @@ -1,7 +1,7 @@ package com.ai.cloud.skywalking.plugin.dubbo; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointReceiver; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCServerTracer; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.conf.AuthDesc; import com.ai.cloud.skywalking.model.ContextData; import com.ai.cloud.skywalking.model.Identification; @@ -22,9 +22,9 @@ public class SWDubboEnhanceFilter implements Filter { boolean isConsumer = context.isConsumerSide(); Result result = null; if (isConsumer) { - RPCBuriedPointSender sender = new RPCBuriedPointSender(); + RPCClientTracer clientTracer = new RPCClientTracer(); - ContextData contextData = sender.beforeSend(createIdentification(invoker, invocation)); + ContextData contextData = clientTracer.traceBeforeInvoke(createIdentification(invoker, invocation)); String contextDataStr = contextData.toString(); //追加参数 @@ -53,18 +53,18 @@ public class SWDubboEnhanceFilter implements Filter { result = invoker.invoke(invocation); //结果是否包含异常 if (result.getException() != null) { - sender.handleException(result.getException()); + clientTracer.occurException(result.getException()); } } catch (RpcException e) { // 自身异常 - sender.handleException(e); + clientTracer.occurException(e); throw e; } finally { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } } else { // 读取参数 - RPCBuriedPointReceiver rpcBuriedPointReceiver = new RPCBuriedPointReceiver(); + RPCServerTracer serverTracer = new RPCServerTracer(); String contextDataStr; if (!BugFixAcitve.isActive) { @@ -78,21 +78,21 @@ public class SWDubboEnhanceFilter implements Filter { contextData = new ContextData(contextDataStr); } - rpcBuriedPointReceiver.beforeReceived(contextData, createIdentification(invoker, invocation)); + serverTracer.traceBeforeInvoke(contextData, createIdentification(invoker, invocation)); try { //执行结果 result = invoker.invoke(invocation); //结果是否包含异常 if (result.getException() != null) { - rpcBuriedPointReceiver.handleException(result.getException()); + serverTracer.occurException(result.getException()); } } catch (RpcException e) { // 自身异常 - rpcBuriedPointReceiver.handleException(e); + serverTracer.occurException(e); throw e; } finally { - rpcBuriedPointReceiver.afterReceived(); + serverTracer.traceAfterInvoke(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java index 42db63cce0..0ddbd72433 100644 --- a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java +++ b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java @@ -3,7 +3,7 @@ package org.skywalking.httpClient.v4.plugin; import org.apache.http.HttpHost; import org.apache.http.HttpRequest; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext; @@ -17,7 +17,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce */ public static String TRACE_HEAD_NAME = "SkyWalking-TRACING-NAME"; - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); @Override public void onConstruct(EnhancedClassInstanceContext context, @@ -38,7 +38,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce .setHeader( TRACE_HEAD_NAME, "ContextData=" - + sender.beforeSend( + + clientTracer.traceBeforeInvoke( Identification .newBuilder() .viewPoint( @@ -58,7 +58,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce // illegal args, can't trace. ignore. return ret; } - sender.afterSend(); + clientTracer.traceAfterInvoke(); return ret; } @@ -71,7 +71,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce // illegal args, can't trace. ignore. return; } - sender.handleException(t); + clientTracer.occurException(t); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java index 9e9a4c0626..d738875491 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java +++ b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.plugin.jdbc; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import java.sql.SQLException; @@ -11,13 +11,13 @@ import java.sql.SQLException; * @author wusheng */ public class CallableStatementTracing { - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); public static R execute(java.sql.CallableStatement realStatement, String connectInfo, String method, String sql, Executable exec) throws SQLException { try { - sender.beforeSend(Identification + clientTracer.traceBeforeInvoke(Identification .newBuilder() .viewPoint(connectInfo) .businessKey( @@ -27,10 +27,10 @@ public class CallableStatementTracing { : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realStatement, sql); } catch (SQLException e) { - sender.handleException(e); + clientTracer.occurException(e); throw e; } finally { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java index e636fb0c85..70373863c4 100755 --- a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java +++ b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.plugin.jdbc; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import java.sql.SQLException; @@ -11,13 +11,13 @@ import java.sql.SQLException; * @author wusheng */ public class ConnectionTracing { - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); public static R execute(java.sql.Connection realConnection, String connectInfo, String method, String sql, Executable exec) throws SQLException { try { - sender.beforeSend(Identification + clientTracer.traceBeforeInvoke(Identification .newBuilder() .viewPoint(connectInfo) .businessKey( @@ -27,10 +27,10 @@ public class ConnectionTracing { : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realConnection, sql); } catch (SQLException e) { - sender.handleException(e); + clientTracer.occurException(e); throw e; } finally { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java index ca4552304b..a851dbc0a7 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java +++ b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.plugin.jdbc; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import java.sql.SQLException; @@ -12,13 +12,13 @@ import java.sql.SQLException; * */ public class PreparedStatementTracing { - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); public static R execute(java.sql.PreparedStatement realStatement, String connectInfo, String method, String sql, Executable exec) throws SQLException { try { - sender.beforeSend(Identification + clientTracer.traceBeforeInvoke(Identification .newBuilder() .viewPoint(connectInfo) .businessKey( @@ -28,10 +28,10 @@ public class PreparedStatementTracing { : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realStatement, sql); } catch (SQLException e) { - sender.handleException(e); + clientTracer.occurException(e); throw e; } finally { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java index 372f7f67d5..11f39317bc 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java +++ b/skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.plugin.jdbc; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import java.sql.SQLException; @@ -11,13 +11,13 @@ import java.sql.SQLException; * @author wusheng */ public class StatementTracing { - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); public static R execute(java.sql.Statement realStatement, String connectInfo, String method, String sql, Executable exec) throws SQLException { try { - sender.beforeSend(Identification + clientTracer.traceBeforeInvoke(Identification .newBuilder() .viewPoint(connectInfo) .businessKey( @@ -27,10 +27,10 @@ public class StatementTracing { : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realStatement, sql); } catch (SQLException e) { - sender.handleException(e); + clientTracer.occurException(e); throw e; } finally { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java index c1c9e81fcf..c35eb8d7a7 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java +++ b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java @@ -1,6 +1,6 @@ package com.ai.cloud.skywalking.jedis.v2.plugin; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; +import com.ai.cloud.skywalking.tracer.RPCClientTracer; import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.assist.SimpleObjectFirstInvokeInterceptor; @@ -10,7 +10,7 @@ import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult; public abstract class JedisBaseInterceptor extends SimpleObjectFirstInvokeInterceptor { protected static final String REDIS_CONN_INFO_KEY = "redisClusterConnInfo"; - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCClientTracer clientTracer = new RPCClientTracer(); @Override public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, MethodInterceptResult result) { @@ -30,20 +30,20 @@ public abstract class JedisBaseInterceptor extends SimpleObjectFirstInvokeInterc builder.businessKey("key=" + interceptorContext.allArguments()[0]); } - sender.beforeSend(builder.build()); + clientTracer.traceBeforeInvoke(builder.build()); } } @Override public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { if (this.isLastAfterMethod(context)) { - sender.afterSend(); + clientTracer.traceAfterInvoke(); } return ret; } @Override public void handleMethodException(Throwable t, EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { - sender.handleException(t); + clientTracer.occurException(t); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java b/skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java index 3588001487..c9e61257bc 100644 --- a/skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java +++ b/skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java @@ -1,21 +1,21 @@ package com.ai.cloud.skywalking.plugin.spring; -import com.ai.cloud.skywalking.buriedpoint.LocalBuriedPointSender; +import com.ai.cloud.skywalking.tracer.LocalMethodTracer; import com.ai.cloud.skywalking.model.Identification; import org.aspectj.lang.ProceedingJoinPoint; public class TracingAspect { public Object doTracing(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { - LocalBuriedPointSender _sender = new LocalBuriedPointSender(); + LocalMethodTracer localMethodTracer = new LocalMethodTracer(); try { - _sender.beforeSend(Identification.newBuilder().viewPoint(proceedingJoinPoint.getSignature().toString()).spanType(SpringBuriedPointType.instance()).build()); + localMethodTracer.traceBeforeInvoke(Identification.newBuilder().viewPoint(proceedingJoinPoint.getSignature().toString()).spanType(SpringBuriedPointType.instance()).build()); return proceedingJoinPoint.proceed(); } catch (Throwable e) { - _sender.handleException(e); + localMethodTracer.occurException(e); throw e; } finally { - _sender.afterSend(); + localMethodTracer.traceAfterInvoke(); } } } diff --git a/skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java b/skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java index c75794cda4..9be5bac06e 100644 --- a/skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java +++ b/skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java @@ -2,7 +2,7 @@ package com.ai.cloud.skywalking.plugin.web; import com.ai.cloud.skywalking.api.Tracing; -import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointReceiver; +import com.ai.cloud.skywalking.tracer.RPCServerTracer; import com.ai.cloud.skywalking.conf.AuthDesc; import com.ai.cloud.skywalking.model.ContextData; import com.ai.cloud.skywalking.model.Identification; @@ -32,7 +32,7 @@ public class SkyWalkingFilter implements Filter { return; } - RPCBuriedPointReceiver receiver = null; + RPCServerTracer tracer = null; try { HttpServletRequest request = (HttpServletRequest) servletRequest; String tracingHeaderValue = request.getHeader(tracingName); @@ -51,17 +51,17 @@ public class SkyWalkingFilter implements Filter { contextData = new ContextData(contextDataStr); } } - receiver = new RPCBuriedPointReceiver(); - receiver.beforeReceived(contextData, generateIdentification(request)); + tracer = new RPCServerTracer(); + tracer.traceBeforeInvoke(contextData, generateIdentification(request)); filterChain.doFilter(servletRequest, servletResponse); HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse; httpServletResponse.addHeader(TRACE_ID_HEADER_NAME, Tracing.getTraceId()); } catch (Throwable e) { - receiver.handleException(e); + tracer.occurException(e); throw new ServletException(e); } finally { - receiver.afterReceived(); + tracer.traceAfterInvoke(); } } -- GitLab