This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 3817fa0c6e3 Use RootSpanContext in all tracing modules (#23688)
3817fa0c6e3 is described below
commit 3817fa0c6e399cdcf3fda7edb8a595cb6621b689
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jan 21 01:01:15 2023 +0800
Use RootSpanContext in all tracing modules (#23688)
---
.../jaeger/advice/JaegerCommandExecutorTaskAdvice.java | 8 ++------
.../jaeger/advice/JaegerJDBCExecutorCallbackAdvice.java | 7 +++----
.../agent/plugin/tracing/jaeger/constant/JaegerConstants.java | 2 --
.../jaeger/advice/JaegerJDBCExecutorCallbackAdviceTest.java | 8 +-------
.../advice/OpenTelemetryCommandExecutorTaskAdvice.java | 5 ++---
.../advice/OpenTelemetryJDBCExecutorCallbackAdvice.java | 7 +++----
.../advice/OpenTelemetrySQLParserEngineAdvice.java | 7 +++----
.../opentelemetry/constant/OpenTelemetryConstants.java | 2 --
.../advice/OpenTelemetrySQLParserEngineAdviceTest.java | 2 --
.../advice/OpenTracingCommandExecutorTaskAdvice.java | 11 ++---------
.../advice/OpenTracingJDBCExecutorCallbackAdvice.java | 6 ++----
11 files changed, 18 insertions(+), 47 deletions(-)
diff --git
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerCommandExecutorTaskAdvice.java
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerCommandExecutorTaskAdvice.java
index 20168890eac..855ae5a405f 100644
---
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerCommandExecutorTaskAdvice.java
+++
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerCommandExecutorTaskAdvice.java
@@ -23,9 +23,9 @@ import io.opentracing.util.GlobalTracer;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
import org.apache.shardingsphere.agent.plugin.core.util.AgentReflectionUtil;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
-import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
import org.apache.shardingsphere.proxy.backend.communication.BackendConnection;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -40,15 +40,11 @@ public final class JaegerCommandExecutorTaskAdvice
implements InstanceMethodAdvi
@Override
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
- .withTag(Tags.COMPONENT.getKey(),
JaegerConstants.COMPONENT_NAME)
- .startActive(true);
- ExecutorDataMap.getValue().put(JaegerConstants.ROOT_SPAN,
scope.span());
+
RootSpanContext.set(GlobalTracer.get().buildSpan(OPERATION_NAME).withTag(Tags.COMPONENT.getKey(),
JaegerConstants.COMPONENT_NAME).startActive(true).span());
}
@Override
public void afterMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final Object result, final String pluginType) {
- ExecutorDataMap.getValue().remove(JaegerConstants.ROOT_SPAN);
BackendConnection connection =
AgentReflectionUtil.<ConnectionSession>getFieldValue(target,
"connectionSession").getBackendConnection();
Scope scope = GlobalTracer.get().scopeManager().active();
scope.span().setTag(JaegerConstants.ShardingSphereTags.CONNECTION_COUNT.getKey(),
connection.getConnectionSize());
diff --git
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdvice.java
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdvice.java
index 3fe728859c3..551a1ef9966 100644
---
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdvice.java
+++
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdvice.java
@@ -26,6 +26,7 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
import org.apache.shardingsphere.agent.plugin.core.util.AgentReflectionUtil;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
@@ -47,12 +48,10 @@ public final class JaegerJDBCExecutorCallbackAdvice
implements InstanceMethodAdv
@Override
@SneakyThrows({ReflectiveOperationException.class, SQLException.class})
- @SuppressWarnings("unchecked")
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Span rootSpan = (Span) ((Map<String, Object>)
args[2]).get(JaegerConstants.ROOT_SPAN);
Tracer.SpanBuilder builder =
GlobalTracer.get().buildSpan(OPERATION_NAME);
- if (null != rootSpan) {
- builder = builder.asChildOf(rootSpan);
+ if (!RootSpanContext.isEmpty()) {
+ builder = builder.asChildOf(RootSpanContext.<Span>get());
}
JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
Map<String, DatabaseType> storageTypes =
AgentReflectionUtil.getFieldValue(target, "storageTypes");
diff --git
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
index cba3dc4efbf..fd7d90c5522 100644
---
a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
+++
b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
@@ -24,8 +24,6 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class JaegerConstants {
- public static final String ROOT_SPAN = "jaeger_root_span";
-
/**
* Component name of ShardingSphere's open tracing tag.
*/
diff --git
a/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdviceTest.java
index 5ff331e3701..13881c9bb47 100644
---
a/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JaegerJDBCExecutorCallbackAdviceTest.java
@@ -19,9 +19,8 @@ package
org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
import io.opentracing.mock.MockSpan;
import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecutorCallbackAdviceTest;
-import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.collector.JaegerCollector;
-import org.junit.Before;
+import
org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
import org.junit.ClassRule;
import org.junit.Test;
@@ -38,11 +37,6 @@ public final class JaegerJDBCExecutorCallbackAdviceTest
extends AbstractJDBCExec
@ClassRule
public static final JaegerCollector COLLECTOR = new JaegerCollector();
- @Before
- public void setup() {
- getExtraMap().put(JaegerConstants.ROOT_SPAN, null);
- }
-
@Test
public void assertMethod() {
JaegerJDBCExecutorCallbackAdvice advice = new
JaegerJDBCExecutorCallbackAdvice();
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 a3b300314aa..19899d54d9e 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
@@ -24,8 +24,8 @@ import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.api.trace.StatusCode;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
import java.lang.reflect.Method;
@@ -44,13 +44,12 @@ public class OpenTelemetryCommandExecutorTaskAdvice
implements InstanceMethodAdv
.setSpanKind(SpanKind.CLIENT);
Span span = spanBuilder.startSpan();
target.setAttachment(span);
- ExecutorDataMap.getValue().put(OpenTelemetryConstants.ROOT_SPAN, span);
+ RootSpanContext.set(span);
}
@Override
public void afterMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final Object result, final String pluginType) {
((Span) target.getAttachment()).end();
- ExecutorDataMap.getValue().remove(OpenTelemetryConstants.ROOT_SPAN);
}
@Override
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 d7f1c0cc6c3..f845c1428b7 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
@@ -27,6 +27,7 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
import org.apache.shardingsphere.agent.plugin.core.util.AgentReflectionUtil;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -47,13 +48,11 @@ public class OpenTelemetryJDBCExecutorCallbackAdvice
implements InstanceMethodAd
@Override
@SneakyThrows({ReflectiveOperationException.class, SQLException.class})
- @SuppressWarnings("unchecked")
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Span root = (Span) ((Map<String, Object>)
args[2]).get(OpenTelemetryConstants.ROOT_SPAN);
Tracer tracer = GlobalOpenTelemetry.getTracer("shardingsphere-agent");
SpanBuilder spanBuilder = tracer.spanBuilder(OPERATION_NAME);
- if (null != root) {
- spanBuilder.setParent(Context.current().with(root));
+ if (!RootSpanContext.isEmpty()) {
+
spanBuilder.setParent(Context.current().with(RootSpanContext.<Span>get()));
}
spanBuilder.setAttribute(OpenTelemetryConstants.COMPONENT,
OpenTelemetryConstants.COMPONENT_NAME);
spanBuilder.setAttribute(OpenTelemetryConstants.DB_TYPE,
OpenTelemetryConstants.DB_TYPE_VALUE);
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 6668965db0a..4e4a85407f4 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
@@ -25,8 +25,8 @@ import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Context;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
import java.lang.reflect.Method;
@@ -39,14 +39,13 @@ public class OpenTelemetrySQLParserEngineAdvice implements
InstanceMethodAdvice
@Override
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Span root = (Span)
ExecutorDataMap.getValue().get(OpenTelemetryConstants.ROOT_SPAN);
Tracer tracer = GlobalOpenTelemetry.getTracer("shardingsphere-agent");
SpanBuilder spanBuilder = tracer.spanBuilder(OPERATION_NAME)
.setAttribute(OpenTelemetryConstants.COMPONENT,
OpenTelemetryConstants.COMPONENT_NAME)
.setAttribute(OpenTelemetryConstants.DB_TYPE,
OpenTelemetryConstants.DB_TYPE_VALUE)
.setAttribute(OpenTelemetryConstants.DB_STATEMENT,
String.valueOf(args[0]));
- if (root != null) {
- spanBuilder.setParent(Context.current().with(root));
+ if (!RootSpanContext.isEmpty()) {
+
spanBuilder.setParent(Context.current().with(RootSpanContext.<Span>get()));
}
target.setAttachment(spanBuilder.startSpan());
}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
index c56350769fc..69c59aaae19 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
@@ -23,8 +23,6 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class OpenTelemetryConstants {
- public static final String ROOT_SPAN = "opentelemetry_root_span";
-
public static final String COMPONENT = "component";
public static final String COMPONENT_NAME = "ShardingSphere";
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 16c2e0b0917..8f7254f19dd 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
@@ -26,7 +26,6 @@ import io.opentelemetry.sdk.trace.data.SpanData;
import
org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractSQLParserEngineAdviceTest;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
-import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
@@ -54,7 +53,6 @@ public final class OpenTelemetrySQLParserEngineAdviceTest
extends AbstractSQLPar
parentSpan = GlobalOpenTelemetry.getTracer("shardingsphere-agent")
.spanBuilder("parent")
.startSpan();
- ExecutorDataMap.getValue().put(OpenTelemetryConstants.ROOT_SPAN,
parentSpan);
advice = new OpenTelemetrySQLParserEngineAdvice();
}
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 dad8af208fa..1671a24d5a5 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
@@ -17,14 +17,13 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
-import io.opentracing.Scope;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
-import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
import java.lang.reflect.Method;
@@ -35,20 +34,14 @@ public final class OpenTracingCommandExecutorTaskAdvice
implements InstanceMetho
private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
- private static final String ROOT_SPAN = "ot_root_span_";
-
@Override
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
- .withTag(Tags.COMPONENT.getKey(),
ShardingSphereTags.COMPONENT_NAME)
- .startActive(true);
- ExecutorDataMap.getValue().put(ROOT_SPAN, scope.span());
+
RootSpanContext.set(GlobalTracer.get().buildSpan(OPERATION_NAME).withTag(Tags.COMPONENT.getKey(),
ShardingSphereTags.COMPONENT_NAME).startActive(true).span());
}
@Override
public void afterMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final Object result, final String pluginType) {
GlobalTracer.get().scopeManager().active().close();
- ExecutorDataMap.getValue().remove(ROOT_SPAN);
}
@Override
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 f0db88ad514..d25ad655755 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
@@ -24,13 +24,13 @@ import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import org.apache.shardingsphere.agent.api.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.RootSpanContext;
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
import
org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
import java.lang.reflect.Method;
-import java.util.Map;
/**
* OpenTracing JDBC executor callback advice executor.
@@ -40,12 +40,10 @@ public final class OpenTracingJDBCExecutorCallbackAdvice
implements InstanceMeth
private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
@Override
- @SuppressWarnings("unchecked")
public void beforeMethod(final TargetAdviceObject target, final Method
method, final Object[] args, final String pluginType) {
- Span root = (Span) ((Map<String, Object>)
args[2]).get("ot_root_span_");
Tracer.SpanBuilder builder =
GlobalTracer.get().buildSpan(OPERATION_NAME);
if ((boolean) args[1]) {
- builder.asChildOf(root);
+ builder.asChildOf(RootSpanContext.<Span>get());
} else {
JDBCExecutionUnit executionUnit = (JDBCExecutionUnit) args[0];
ExecutionUnit unit = executionUnit.getExecutionUnit();