diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/DubboBuriedPointType.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/DubboBuriedPointType.java index 281d9da6b..204e8e907 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/DubboBuriedPointType.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/DubboBuriedPointType.java @@ -4,6 +4,17 @@ import com.ai.cloud.skywalking.api.IBuriedPointType; import com.ai.cloud.skywalking.model.CallType; public class DubboBuriedPointType implements IBuriedPointType { + + private static DubboBuriedPointType dubboBuriedPointType; + + public static IBuriedPointType instance() { + if (dubboBuriedPointType == null) { + dubboBuriedPointType = new DubboBuriedPointType(); + } + + return dubboBuriedPointType; + } + @Override public String getTypeName() { return "D"; @@ -13,4 +24,9 @@ public class DubboBuriedPointType implements IBuriedPointType { public CallType getCallType() { return CallType.ASYNC; } + + private DubboBuriedPointType() { + //Non + } + } diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/JDBCBuriedPointType.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/JDBCBuriedPointType.java index e3f147eeb..bb64dfc9a 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/JDBCBuriedPointType.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/JDBCBuriedPointType.java @@ -4,6 +4,18 @@ import com.ai.cloud.skywalking.api.IBuriedPointType; import com.ai.cloud.skywalking.model.CallType; public class JDBCBuriedPointType implements IBuriedPointType { + + private static JDBCBuriedPointType jdbcBuriedPointType; + + public static IBuriedPointType instance() { + if (jdbcBuriedPointType == null) { + jdbcBuriedPointType = new JDBCBuriedPointType(); + } + + return jdbcBuriedPointType; + } + + @Override public String getTypeName() { return "J"; @@ -13,4 +25,8 @@ public class JDBCBuriedPointType implements IBuriedPointType { public CallType getCallType() { return CallType.LOCAL; } + + private JDBCBuriedPointType(){ + //Non + } } diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/SpringBuriedPointType.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/SpringBuriedPointType.java index e50941d1d..1b5c27458 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/SpringBuriedPointType.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/SpringBuriedPointType.java @@ -5,6 +5,16 @@ import com.ai.cloud.skywalking.model.CallType; public class SpringBuriedPointType implements IBuriedPointType { + private static SpringBuriedPointType springBuriedPointType; + + public static IBuriedPointType instance() { + if (springBuriedPointType == null) { + springBuriedPointType = new SpringBuriedPointType(); + } + + return springBuriedPointType; + } + @Override public String getTypeName() { return "M"; @@ -15,4 +25,8 @@ public class SpringBuriedPointType implements IBuriedPointType { return CallType.LOCAL; } + private SpringBuriedPointType() { + // Non + } + } diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/WEBBuriedPointType.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/WEBBuriedPointType.java index a866b180a..cb6722044 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/WEBBuriedPointType.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/type/WEBBuriedPointType.java @@ -4,6 +4,17 @@ import com.ai.cloud.skywalking.api.IBuriedPointType; import com.ai.cloud.skywalking.model.CallType; public class WEBBuriedPointType implements IBuriedPointType { + + private static WEBBuriedPointType webBuriedPointType; + + public static IBuriedPointType instance() { + if (webBuriedPointType == null) { + webBuriedPointType = new WEBBuriedPointType(); + } + + return webBuriedPointType; + } + @Override public String getTypeName() { return "W"; @@ -13,4 +24,8 @@ public class WEBBuriedPointType implements IBuriedPointType { public CallType getCallType() { return CallType.ASYNC; } + + private WEBBuriedPointType() { + // Non + } } diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java index 5ac31f4da..f92037fb1 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java +++ b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java @@ -102,7 +102,7 @@ public class SWDubboEnhanceFilter implements Filter { } viewPoint.append(")"); - return Identification.newBuilder().viewPoint(viewPoint.toString()).spanType(new DubboBuriedPointType()).build(); + return Identification.newBuilder().viewPoint(viewPoint.toString()).spanType(DubboBuriedPointType.instance()).build(); } diff --git a/skywalking-sdk-plugin/httpclient-4.2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v42x/HttpClientTracing.java b/skywalking-sdk-plugin/httpclient-4.2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v42x/HttpClientTracing.java index af5de9167..4c54ba327 100644 --- a/skywalking-sdk-plugin/httpclient-4.2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v42x/HttpClientTracing.java +++ b/skywalking-sdk-plugin/httpclient-4.2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v42x/HttpClientTracing.java @@ -21,7 +21,7 @@ public class HttpClientTracing { httpRequest.setHeader(traceHearName, "ContextData=" + sender.beforeSend(Identification.newBuilder() .viewPoint(url) - .spanType(new WEBBuriedPointType()) + .spanType(WEBBuriedPointType.instance()) .build()) .toString()); return executor.execute(); diff --git a/skywalking-sdk-plugin/httpclient-4.3.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v43x/HttpClientTracing.java b/skywalking-sdk-plugin/httpclient-4.3.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v43x/HttpClientTracing.java index b39f091c8..a578bb255 100644 --- a/skywalking-sdk-plugin/httpclient-4.3.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v43x/HttpClientTracing.java +++ b/skywalking-sdk-plugin/httpclient-4.3.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/httpclient/v43x/HttpClientTracing.java @@ -21,7 +21,7 @@ public class HttpClientTracing { httpRequest.setHeader(traceHearName, "ContextData=" + sender.beforeSend(Identification.newBuilder() .viewPoint(url) - .spanType(new WEBBuriedPointType()) + .spanType(WEBBuriedPointType.instance()) .build()) .toString()); return executor.execute(); diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java index 8e20fdf84..4bee296cc 100644 --- a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java +++ b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java @@ -26,7 +26,7 @@ public class CallableStatementTracing { "callableStatement." + method + (sql == null || sql.length() == 0 ? "" - : ":" + sql)).spanType(new JDBCBuriedPointType()).build()); + : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realStatement, sql); } catch (SQLException e) { sender.handleException(e); diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java index 175ccc943..73f4090d5 100644 --- a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java +++ b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java @@ -26,7 +26,7 @@ public class ConnectionTracing { "connection." + method + (sql == null || sql.length() == 0 ? "" - : ":" + sql)).spanType(new JDBCBuriedPointType()).build()); + : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realConnection, sql); } catch (SQLException e) { sender.handleException(e); diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java index 7786e827b..100e9d6e8 100644 --- a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java +++ b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java @@ -26,7 +26,7 @@ public class PreparedStatementTracing { "preaparedStatement." + method + (sql == null || sql.length() == 0 ? "" - : ":" + sql)).spanType(new JDBCBuriedPointType()).build()); + : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); return exec.exe(realStatement, sql); } catch (SQLException e) { sender.handleException(e); diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java index c05e76e3e..0e6052db7 100644 --- a/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java +++ b/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java @@ -1,43 +1,42 @@ package com.ai.cloud.skywalking.plugin.jdbc.tracing; -import java.sql.SQLException; - import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; import com.ai.cloud.skywalking.buriedpoint.type.JDBCBuriedPointType; import com.ai.cloud.skywalking.model.Identification; +import java.sql.SQLException; + /** * 连接级追踪,用于追踪用于Statement的操作追踪 - * - * @author wusheng * + * @author wusheng */ public class StatementTracing { - private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); + private static RPCBuriedPointSender sender = new RPCBuriedPointSender(); - public static R execute(java.sql.Statement realStatement, - String connectInfo, String method, String sql, Executable exec) - throws SQLException { - try { - sender.beforeSend(Identification - .newBuilder() - .viewPoint(connectInfo) - .businessKey( - "statement." - + method - + (sql == null || sql.length() == 0 ? "" - : ":" + sql)).spanType(new JDBCBuriedPointType()).build()); - return exec.exe(realStatement, sql); - } catch (SQLException e) { - sender.handleException(e); - throw e; - } finally { - sender.afterSend(); - } - } + public static R execute(java.sql.Statement realStatement, + String connectInfo, String method, String sql, Executable exec) + throws SQLException { + try { + sender.beforeSend(Identification + .newBuilder() + .viewPoint(connectInfo) + .businessKey( + "statement." + + method + + (sql == null || sql.length() == 0 ? "" + : ":" + sql)).spanType(JDBCBuriedPointType.instance()).build()); + return exec.exe(realStatement, sql); + } catch (SQLException e) { + sender.handleException(e); + throw e; + } finally { + sender.afterSend(); + } + } - public interface Executable { - public R exe(java.sql.Statement realStatement, String sql) - throws SQLException; - } + public interface Executable { + public R exe(java.sql.Statement realStatement, String sql) + throws SQLException; + } } diff --git a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java index c29660244..e5b609053 100644 --- a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java +++ b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java @@ -25,7 +25,7 @@ public class TracingAspect { viewPoint.append(arg.getClass().getName()); } viewPoint.append(")"); - _sender.beforeSend(Identification.newBuilder().viewPoint(viewPoint.toString()).spanType(new SpringBuriedPointType()).build()); + _sender.beforeSend(Identification.newBuilder().viewPoint(viewPoint.toString()).spanType(SpringBuriedPointType.instance()).build()); return proceedingJoinPoint.proceed(); } catch (Throwable e) { _sender.handleException(e); diff --git a/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java b/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java index c868cef81..71420fc18 100644 --- a/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java +++ b/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java @@ -71,7 +71,7 @@ public class SkyWalkingFilter implements Filter { private Identification generateIdentification(HttpServletRequest request) { return Identification.newBuilder() .viewPoint(request.getRequestURL().toString()) - .spanType(new WEBBuriedPointType()) + .spanType(WEBBuriedPointType.instance()) .build(); }