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

jianglongtao 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 b904bfd6e54 optimize agent tracing (#24142)
b904bfd6e54 is described below

commit b904bfd6e543f8d869271c6434c54857eafdc357
Author: jiangML <[email protected]>
AuthorDate: Mon Feb 13 22:25:26 2023 +0800

    optimize agent tracing (#24142)
---
 .../advice/OpenTelemetryCommandExecutorTaskAdvice.java             | 1 +
 .../advice/OpenTelemetryJDBCExecutorCallbackAdvice.java            | 4 +++-
 .../opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java   | 7 +++++--
 .../advice/OpenTelemetryCommandExecutorTaskAdviceTest.java         | 1 -
 .../advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java        | 1 -
 .../advice/OpenTelemetrySQLParserEngineAdviceTest.java             | 1 -
 .../opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java   | 1 +
 .../opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java  | 4 +++-
 .../opentracing/advice/OpenTracingSQLParserEngineAdvice.java       | 4 +++-
 .../advice/OpenTracingCommandExecutorTaskAdviceTest.java           | 1 -
 .../advice/OpenTracingJDBCExecutorCallbackAdviceTest.java          | 1 -
 .../opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java   | 1 -
 12 files changed, 16 insertions(+), 11 deletions(-)

diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
index ca88bfd9f45..c714cb6f946 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
@@ -50,5 +50,6 @@ public final class OpenTelemetryCommandExecutorTaskAdvice 
extends TracingCommand
     @Override
     protected void recordException(final Span rootSpan, final 
TargetAdviceObject target, final Throwable throwable) {
         rootSpan.setStatus(StatusCode.ERROR).recordException(throwable);
+        finishRootSpan(rootSpan, target);
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
index 3a96beaa702..846a49e916d 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
@@ -61,6 +61,8 @@ public final class OpenTelemetryJDBCExecutorCallbackAdvice 
extends TracingJDBCEx
     
     @Override
     public void onThrowing(final TargetAdviceObject target, final Method 
method, final Object[] args, final Throwable throwable, final String 
pluginType) {
-        ((Span) 
target.getAttachment()).setStatus(StatusCode.ERROR).recordException(throwable);
+        Span span = (Span) target.getAttachment();
+        span.setStatus(StatusCode.ERROR).recordException(throwable);
+        span.end();
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
index a66596a71d4..fb1391c2099 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
@@ -26,6 +26,7 @@ import io.opentelemetry.context.Context;
 import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
 import 
org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingSQLParserEngineAdvice;
 import 
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
+import 
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
 
 import java.lang.reflect.Method;
 
@@ -36,7 +37,7 @@ public final class OpenTelemetrySQLParserEngineAdvice extends 
TracingSQLParserEn
     
     @Override
     protected Object recordSQLParseInfo(final Span parentSpan, final 
TargetAdviceObject target, final String sql) {
-        Tracer tracer = GlobalOpenTelemetry.getTracer("shardingsphere-agent");
+        Tracer tracer = 
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME);
         SpanBuilder spanBuilder = tracer.spanBuilder(OPERATION_NAME)
                 .setAttribute(AttributeConstants.COMPONENT, 
AttributeConstants.COMPONENT_NAME)
                 .setAttribute(AttributeConstants.DB_STATEMENT, sql)
@@ -54,6 +55,8 @@ public final class OpenTelemetrySQLParserEngineAdvice extends 
TracingSQLParserEn
     
     @Override
     public void onThrowing(final TargetAdviceObject target, final Method 
method, final Object[] args, final Throwable throwable, final String 
pluginType) {
-        ((Span) 
target.getAttachment()).setStatus(StatusCode.ERROR).recordException(throwable);
+        Span span = (Span) target.getAttachment();
+        span.setStatus(StatusCode.ERROR).recordException(throwable);
+        span.end();
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
index d52c87c6f3c..630b3dc5b67 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
@@ -55,7 +55,6 @@ public final class OpenTelemetryCommandExecutorTaskAdviceTest 
extends AbstractCo
         OpenTelemetryCommandExecutorTaskAdvice advice = new 
OpenTelemetryCommandExecutorTaskAdvice();
         advice.beforeMethod(getTargetObject(), null, new Object[]{}, 
"OpenTelemetry");
         advice.onThrowing(getTargetObject(), null, new Object[]{}, new 
IOException(), "OpenTelemetry");
-        advice.afterMethod(getTargetObject(), null, new Object[]{}, null, 
"OpenTelemetry");
         List<SpanData> spanItems = COLLECTOR.getSpanItems();
         assertThat(spanItems.size(), is(1));
         SpanData spanData = spanItems.get(0);
diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
index b8b9fd5974c..c2761b5bbee 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
@@ -83,7 +83,6 @@ public final class 
OpenTelemetryJDBCExecutorCallbackAdviceTest extends AbstractJ
         OpenTelemetryJDBCExecutorCallbackAdvice advice = new 
OpenTelemetryJDBCExecutorCallbackAdvice();
         advice.beforeMethod(getTargetObject(), null, new 
Object[]{getExecutionUnit(), false, getExtraMap()}, "OpenTelemetry");
         advice.onThrowing(getTargetObject(), null, new 
Object[]{getExecutionUnit(), false, getExtraMap()}, new IOException(), 
"OpenTelemetry");
-        advice.afterMethod(getTargetObject(), null, new 
Object[]{getExecutionUnit(), false, getExtraMap()}, null, "OpenTelemetry");
         List<SpanData> spanItems = COLLECTOR.getSpanItems();
         assertThat(spanItems.size(), is(1));
         SpanData spanData = spanItems.get(0);
diff --git 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
index 027b7fe6c32..d9ae59af058 100644
--- 
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
@@ -82,7 +82,6 @@ public final class OpenTelemetrySQLParserEngineAdviceTest 
extends AbstractSQLPar
         OpenTelemetrySQLParserEngineAdvice advice = new 
OpenTelemetrySQLParserEngineAdvice();
         advice.beforeMethod(getTargetObject(), null, new 
Object[]{SQL_STATEMENT, true}, "OpenTelemetry");
         advice.onThrowing(getTargetObject(), null, new Object[]{SQL_STATEMENT, 
true}, new IOException(), "OpenTelemetry");
-        advice.afterMethod(getTargetObject(), null, new 
Object[]{SQL_STATEMENT, true}, null, "OpenTelemetry");
         List<SpanData> spanItems = COLLECTOR.getSpanItems();
         assertThat(spanItems.size(), is(1));
         assertThat(spanItems.get(0).getName(), 
is("/ShardingSphere/parseSQL/"));
diff --git 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
index 49e7da97c35..ef24baeb155 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
@@ -47,5 +47,6 @@ public final class OpenTracingCommandExecutorTaskAdvice 
extends TracingCommandEx
     @Override
     protected void recordException(final Span rootSpan, final 
TargetAdviceObject target, final Throwable throwable) {
         OpenTracingErrorSpan.setError(rootSpan, throwable);
+        finishRootSpan(rootSpan, target);
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
index bd742514f8e..5911e4d9fe3 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
@@ -56,6 +56,8 @@ public final class OpenTracingJDBCExecutorCallbackAdvice 
extends TracingJDBCExec
     
     @Override
     public void onThrowing(final TargetAdviceObject target, final Method 
method, final Object[] args, final Throwable throwable, final String 
pluginType) {
-        OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(), 
throwable);
+        Scope scope = (Scope) target.getAttachment();
+        OpenTracingErrorSpan.setError(scope.span(), throwable);
+        scope.close();
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
index 9ee59d487eb..afe4da69459 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
@@ -50,6 +50,8 @@ public final class OpenTracingSQLParserEngineAdvice extends 
TracingSQLParserEngi
     
     @Override
     public void onThrowing(final TargetAdviceObject target, final Method 
method, final Object[] args, final Throwable throwable, final String 
pluginType) {
-        OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(), 
throwable);
+        Scope scope = (Scope) target.getAttachment();
+        OpenTracingErrorSpan.setError(scope.span(), throwable);
+        scope.close();
     }
 }
diff --git 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
index aaa402ec5cc..bed03ae745d 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
@@ -82,7 +82,6 @@ public final class OpenTracingCommandExecutorTaskAdviceTest 
extends AbstractComm
         TargetAdviceObject targetObject = getTargetObject();
         ADVICE.beforeMethod(targetObject, executeCommandMethod, new 
Object[]{}, "OpenTracing");
         ADVICE.onThrowing(targetObject, executeCommandMethod, new Object[]{}, 
new IOException(), "OpenTracing");
-        ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, 
null, "OpenTracing");
         List<MockSpan> spans = tracer.finishedSpans();
         assertThat(spans.size(), is(1));
         MockSpan span = spans.get(0);
diff --git 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
index 87de67cd347..e54b5796d94 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
@@ -84,7 +84,6 @@ public final class OpenTracingJDBCExecutorCallbackAdviceTest 
extends AbstractJDB
         OpenTracingJDBCExecutorCallbackAdvice advice = new 
OpenTracingJDBCExecutorCallbackAdvice();
         advice.beforeMethod(getTargetObject(), executeMethod, new 
Object[]{getExecutionUnit(), false, extraMap}, "OpenTracing");
         advice.onThrowing(getTargetObject(), executeMethod, new 
Object[]{getExecutionUnit(), false, extraMap}, new IOException(), 
"OpenTracing");
-        advice.afterMethod(getTargetObject(), executeMethod, new 
Object[]{getExecutionUnit(), false, extraMap}, null, "OpenTracing");
         List<MockSpan> spans = tracer.finishedSpans();
         assertThat(spans.size(), is(1));
         MockSpan span = spans.get(0);
diff --git 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
index bea07dfd358..62552009824 100644
--- 
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
+++ 
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
@@ -77,7 +77,6 @@ public final class OpenTracingSQLParserEngineAdviceTest 
extends AbstractJDBCExec
     public void assertExceptionHandle() {
         ADVICE.beforeMethod(getTargetObject(), parserMethod, new 
Object[]{"select 1"}, "OpenTracing");
         ADVICE.onThrowing(getTargetObject(), parserMethod, new Object[]{}, new 
IOException(), "OpenTracing");
-        ADVICE.afterMethod(getTargetObject(), parserMethod, new Object[]{}, 
null, "OpenTracing");
         List<MockSpan> spans = tracer.finishedSpans();
         assertThat(spans.size(), is(1));
         MockSpan span = spans.get(0);

Reply via email to