You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/03/01 13:26:15 UTC

[shardingsphere] branch master updated: fix collector sql (#9556)

This is an automated email from the ASF dual-hosted git repository.

zhangyonglun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new ae008ca  fix collector sql (#9556)
ae008ca is described below

commit ae008ca649e9e1172d1d7a6ae46a0fda79955380
Author: xiaoyu <54...@qq.com>
AuthorDate: Mon Mar 1 21:25:53 2021 +0800

    fix collector sql (#9556)
---
 .../jaeger/advice/JDBCExecutorCallbackAdvice.java  | 29 +++++++++---------
 .../zipkin/advice/JDBCExecutorCallbackAdvice.java  | 35 +++++++++++-----------
 2 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
index 5f3f52f..ff1c5ca 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
@@ -49,22 +49,21 @@ public final class JDBCExecutorCallbackAdvice implements InstanceMethodAroundAdv
     public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
         Span root = (Span) ((Map<String, Object>) args[2]).get(JaegerConstants.ROOT_SPAN);
         Tracer.SpanBuilder builder = GlobalTracer.get().buildSpan(OPERATION_NAME);
-        if ((boolean) args[1]) {
-            builder.asChildOf(root);
-        } else {
-            JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
-            Method getMetadataMethod = JDBCExecutorCallback.class.getDeclaredMethod("getDataSourceMetaData", DatabaseMetaData.class);
-            getMetadataMethod.setAccessible(true);
-            DataSourceMetaData metaData = (DataSourceMetaData) getMetadataMethod.invoke(target, new Object[]{executionUnit.getStorageResource().getConnection().getMetaData()});
-            builder.withTag(Tags.COMPONENT.getKey(), JaegerConstants.COMPONENT_NAME)
-                    .withTag(Tags.DB_TYPE.getKey(), JaegerConstants.DB_TYPE_VALUE)
-                    .withTag(Tags.DB_INSTANCE.getKey(), executionUnit.getExecutionUnit().getDataSourceName())
-                    .withTag(Tags.PEER_HOSTNAME.getKey(), metaData.getHostName())
-                    .withTag(Tags.PEER_PORT.getKey(), metaData.getPort())
-                    .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
-                    .withTag(Tags.DB_STATEMENT.getKey(), executionUnit.getExecutionUnit().getSqlUnit().getSql())
-                    .withTag(JaegerConstants.ShardingSphereTags.DB_BIND_VARIABLES.getKey(), executionUnit.getExecutionUnit().getSqlUnit().getParameters().toString());
+        if (null != root) {
+            builder = builder.asChildOf(root);
         }
+        JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
+        Method getMetadataMethod = JDBCExecutorCallback.class.getDeclaredMethod("getDataSourceMetaData", DatabaseMetaData.class);
+        getMetadataMethod.setAccessible(true);
+        DataSourceMetaData metaData = (DataSourceMetaData) getMetadataMethod.invoke(target, new Object[]{executionUnit.getStorageResource().getConnection().getMetaData()});
+        builder.withTag(Tags.COMPONENT.getKey(), JaegerConstants.COMPONENT_NAME)
+                .withTag(Tags.DB_TYPE.getKey(), JaegerConstants.DB_TYPE_VALUE)
+                .withTag(Tags.DB_INSTANCE.getKey(), executionUnit.getExecutionUnit().getDataSourceName())
+                .withTag(Tags.PEER_HOSTNAME.getKey(), metaData.getHostName())
+                .withTag(Tags.PEER_PORT.getKey(), metaData.getPort())
+                .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
+                .withTag(Tags.DB_STATEMENT.getKey(), executionUnit.getExecutionUnit().getSqlUnit().getSql())
+                .withTag(JaegerConstants.ShardingSphereTags.DB_BIND_VARIABLES.getKey(), executionUnit.getExecutionUnit().getSqlUnit().getParameters().toString());
         target.setAttachment(builder.startActive(true));
     }
     
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
index c70780b..2364be1 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
@@ -43,25 +43,26 @@ public final class JDBCExecutorCallbackAdvice implements InstanceMethodAroundAdv
     @SneakyThrows
     @SuppressWarnings("unchecked")
     public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
-        final Span root = (Span) ((Map<String, Object>) args[2]).get(ZipkinConstants.ROOT_SPAN);
-        if ((boolean) args[1]) {
-            target.setAttachment(Tracing.currentTracer().newChild(root.context()).name(OPERATION_NAME).start());
+        Span root = (Span) ((Map<String, Object>) args[2]).get(ZipkinConstants.ROOT_SPAN);
+        Span span;
+        if (null == root) {
+            span = Tracing.currentTracer().nextSpan().name(OPERATION_NAME);
         } else {
-            JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
-            Method getMetadataMethod = JDBCExecutorCallback.class.getDeclaredMethod("getDataSourceMetaData", DatabaseMetaData.class);
-            getMetadataMethod.setAccessible(true);
-            DataSourceMetaData metaData = (DataSourceMetaData) getMetadataMethod.invoke(target, new Object[]{executionUnit.getStorageResource().getConnection().getMetaData()});
-            Span span = Tracing.currentTracer().nextSpan().name(OPERATION_NAME);
-            span.tag(ZipkinConstants.Tags.COMPONENT, ZipkinConstants.COMPONENT_NAME);
-            span.tag(ZipkinConstants.Tags.DB_TYPE, ZipkinConstants.DB_TYPE_VALUE);
-            span.tag(ZipkinConstants.Tags.DB_INSTANCE, executionUnit.getExecutionUnit().getDataSourceName());
-            span.tag(ZipkinConstants.Tags.PEER_HOSTNAME, metaData.getHostName());
-            span.tag(ZipkinConstants.Tags.PEER_PORT, String.valueOf(metaData.getPort()));
-            span.tag(ZipkinConstants.Tags.DB_STATEMENT, executionUnit.getExecutionUnit().getSqlUnit().getSql());
-            span.tag(ZipkinConstants.Tags.DB_BIND_VARIABLES, executionUnit.getExecutionUnit().getSqlUnit().getParameters().toString());
-            span.start();
-            target.setAttachment(span);
+            span = Tracing.currentTracer().newChild(root.context()).name(OPERATION_NAME);
         }
+        span.tag(ZipkinConstants.Tags.COMPONENT, ZipkinConstants.COMPONENT_NAME);
+        span.tag(ZipkinConstants.Tags.DB_TYPE, ZipkinConstants.DB_TYPE_VALUE);
+        JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
+        Method getMetadataMethod = JDBCExecutorCallback.class.getDeclaredMethod("getDataSourceMetaData", DatabaseMetaData.class);
+        getMetadataMethod.setAccessible(true);
+        DataSourceMetaData metaData = (DataSourceMetaData) getMetadataMethod.invoke(target, new Object[]{executionUnit.getStorageResource().getConnection().getMetaData()});
+        span.tag(ZipkinConstants.Tags.DB_INSTANCE, executionUnit.getExecutionUnit().getDataSourceName());
+        span.tag(ZipkinConstants.Tags.PEER_HOSTNAME, metaData.getHostName());
+        span.tag(ZipkinConstants.Tags.PEER_PORT, String.valueOf(metaData.getPort()));
+        span.tag(ZipkinConstants.Tags.DB_STATEMENT, executionUnit.getExecutionUnit().getSqlUnit().getSql());
+        span.tag(ZipkinConstants.Tags.DB_BIND_VARIABLES, executionUnit.getExecutionUnit().getSqlUnit().getParameters().toString());
+        span.start();
+        target.setAttachment(span);
     }
     
     @Override