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

xiaoyu 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 87f8705  Fix bug of CommandExecutorTaskAdvice.java (#11207)
87f8705 is described below

commit 87f87059ac87dddd8106e33d176da1c82e9b0ab4
Author: Kunshuai Zhu <[email protected]>
AuthorDate: Thu Jul 8 13:27:28 2021 +0800

    Fix bug of CommandExecutorTaskAdvice.java (#11207)
---
 .../opentelemetry/advice/CommandExecutorTaskAdvice.java      | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
 
b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
index cc85c4d..3e183d9 100644
--- 
a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
+++ 
b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice;
 
 import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.trace.SpanBuilder;
 import io.opentelemetry.api.trace.SpanKind;
 import io.opentelemetry.api.trace.StatusCode;
 import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
@@ -38,22 +39,23 @@ public class CommandExecutorTaskAdvice implements 
InstanceMethodAroundAdvice {
 
     @Override
     public void beforeMethod(final AdviceTargetObject target, final Method 
method, final Object[] args, final MethodInvocationResult result) {
-        Span span = GlobalOpenTelemetry.getTracer("shardingsphere-agent")
+        SpanBuilder spanBuilder = 
GlobalOpenTelemetry.getTracer("shardingsphere-agent")
                 .spanBuilder(OPERATION_NAME)
                 .setAttribute(OpenTelemetryConstants.COMPONENT, 
OpenTelemetryConstants.COMPONENT_NAME)
-                .setSpanKind(SpanKind.CLIENT)
-                .startSpan();
+                .setSpanKind(SpanKind.CLIENT);
+        Span span = spanBuilder.startSpan();
+        target.setAttachment(span);
         ExecutorDataMap.getValue().put(OpenTelemetryConstants.ROOT_SPAN, span);
     }
 
     @Override
     public void afterMethod(final AdviceTargetObject target, final Method 
method, final Object[] args, final MethodInvocationResult result) {
-        Span.current().end();
+        ((Span) target.getAttachment()).end();
         ExecutorDataMap.getValue().remove(OpenTelemetryConstants.ROOT_SPAN);
     }
 
     @Override
     public void onThrowing(final AdviceTargetObject target, final Method 
method, final Object[] args, final Throwable throwable) {
-        Span.current().setStatus(StatusCode.ERROR).recordException(throwable);
+        ((Span) 
target.getAttachment()).setStatus(StatusCode.ERROR).recordException(throwable);
     }
 }

Reply via email to