From 8bfa648bda68ce910430a9f2515e19ca80547dc1 Mon Sep 17 00:00:00 2001 From: wusheng Date: Wed, 16 Aug 2017 23:11:39 +0800 Subject: [PATCH] Provide a new method for creating exit span. --- .../skywalking/apm/agent/core/context/ContextManager.java | 6 ++++++ .../apm/plugin/jdbc/CallableStatementTracing.java | 2 +- .../org/skywalking/apm/plugin/jdbc/ConnectionTracing.java | 2 +- .../org/skywalking/apm/plugin/jdbc/StatementTracing.java | 2 +- .../apm/plugin/jedis/v2/JedisMethodInterceptor.java | 2 +- .../span/ConstructorWithSpanBuilderInterceptor.java | 3 +-- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java index 01765f638..1954b7a85 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java @@ -108,6 +108,12 @@ public class ContextManager implements TracingContextListener, BootService, Igno return span; } + public static AbstractSpan createExitSpan(String operationName, String remotePeer) { + AbstractTracerContext context = getOrCreate(operationName, false); + AbstractSpan span = context.createExitSpan(operationName, remotePeer); + return span; + } + public static void inject(ContextCarrier carrier) { get().inject(carrier); } diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java index 30d82ae34..593581730 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java @@ -20,7 +20,7 @@ public class CallableStatementTracing { } else { remotePeer = connectInfo.getHost() + ":" + connectInfo.getPort(); } - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/CallableStatement/" + method, new ContextCarrier(), remotePeer); + AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/CallableStatement/" + method, remotePeer); Tags.DB_TYPE.set(span, "sql"); SpanLayer.asDB(span); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java index c87685ba3..21d57b1d9 100755 --- a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java @@ -20,7 +20,7 @@ public class ConnectionTracing { } else { remotePeer = connectInfo.getHost() + ":" + connectInfo.getPort(); } - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Connection/" + method, new ContextCarrier(), remotePeer); + AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Connection/" + method, remotePeer); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java index a85108647..0b6cbc741 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java @@ -20,7 +20,7 @@ public class StatementTracing { remotePeer = connectInfo.getHost() + ":" + connectInfo.getPort(); } - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Statement/" + method, new ContextCarrier(), remotePeer); + AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Statement/" + method, remotePeer); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java index 83b3c41ee..bf72ab574 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java @@ -16,7 +16,7 @@ public class JedisMethodInterceptor implements InstanceMethodsAroundInterceptor @Override public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, MethodInterceptResult result) throws Throwable { String peer = String.valueOf(objInst.getSkyWalkingDynamicField()); - AbstractSpan span = ContextManager.createExitSpan("Jedis/" + method.getName(), new ContextCarrier(), peer); + AbstractSpan span = ContextManager.createExitSpan("Jedis/" + method.getName(), peer); span.setComponent(ComponentsDefine.REDIS); Tags.DB_TYPE.set(span, "Redis"); SpanLayer.asDB(span); diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/ConstructorWithSpanBuilderInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/ConstructorWithSpanBuilderInterceptor.java index b9127ab20..3a5406aa9 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/ConstructorWithSpanBuilderInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/ConstructorWithSpanBuilderInterceptor.java @@ -19,8 +19,7 @@ public class ConstructorWithSpanBuilderInterceptor implements InstanceConstructo if (spanBuilder.isEntry()) { span = ContextManager.createEntrySpan(spanBuilder.getOperationName(), null); } else if (spanBuilder.isExit() && (!StringUtil.isEmpty(spanBuilder.getPeer()))) { - span = ContextManager.createExitSpan(spanBuilder.getOperationName(), - new ContextCarrier(), buildRemotePeer(spanBuilder)); + span = ContextManager.createExitSpan(spanBuilder.getOperationName(), buildRemotePeer(spanBuilder)); } else { span = ContextManager.createLocalSpan(spanBuilder.getOperationName()); }