You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/12/13 04:28:04 UTC

[shardingsphere] branch master updated: Add TracingAdviceEngine (#22839)

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

duanzhengqiang 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 2013a270489 Add TracingAdviceEngine (#22839)
2013a270489 is described below

commit 2013a27048987a0582ae82dbe2b1313b31d4683b
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Dec 13 12:27:56 2022 +0800

    Add TracingAdviceEngine (#22839)
    
    * Add TracingAdviceEngine
    
    * Rename shardingsphere-agent-plugin-tracing-core
    
    * Add tracing-type module
    
    * Add tracing-type module
    
    * Add debug info
    
    * Update pom build config
---
 .../plugins/tracing/{opentracing => core}/pom.xml  | 24 +------
 .../tracing/core/advice/TracingAdviceEngine.java   | 55 ++++++++++++++++
 .../core/advice/adviser/TracingAdviser.java}       | 26 ++++----
 .../adviser/impl/CommandExecutorTaskAdviser.java   | 44 +++++++++++++
 .../adviser/impl/JDBCExecutorCallbackAdviser.java  | 47 ++++++++++++++
 .../adviser/impl/SQLParserEngineAdviser.java       | 44 +++++++++++++
 .../definition/JaegerPluginDefinitionService.java  | 74 ----------------------
 ...penTelemetryTracingPluginDefinitionService.java | 74 ----------------------
 .../OpenTracingPluginDefinitionService.java        | 74 ----------------------
 agent/plugins/tracing/pom.xml                      |  6 +-
 agent/plugins/tracing/{ => type}/jaeger/pom.xml    |  2 +-
 .../jaeger/advice/CommandExecutorTaskAdvice.java   |  0
 .../jaeger/advice/JDBCExecutorCallbackAdvice.java  |  0
 .../jaeger/advice/SQLParserEngineAdvice.java       |  0
 .../tracing/jaeger/constant/JaegerConstants.java   |  0
 .../definition/JaegerPluginDefinitionService.java  | 45 +++++++++++++
 .../service/JaegerTracingPluginBootService.java    |  0
 .../tracing/jaeger/span/JaegerErrorSpan.java       |  0
 ...ache.shardingsphere.agent.spi.PluginBootService |  0
 ...hardingsphere.agent.spi.PluginDefinitionService |  0
 .../advice/CommandExecutorTaskAdviceTest.java      |  0
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  0
 .../jaeger/advice/SQLParserEngineAdviceTest.java   |  0
 .../tracing/jaeger/collector/JaegerCollector.java  |  0
 .../JaegerPluginDefinitionServiceTest.java         |  0
 .../JaegerTracingPluginBootServiceTest.java        |  0
 .../tracing/{ => type}/opentelemetry/pom.xml       |  2 +-
 .../advice/CommandExecutorTaskAdvice.java          |  0
 .../advice/JDBCExecutorCallbackAdvice.java         |  0
 .../advice/SQLParserEngineAdvice.java              |  0
 .../constant/OpenTelemetryConstants.java           |  0
 ...enTelemetryTracingPluginDefinitionService.java} | 31 ++++-----
 .../OpenTelemetryTracingPluginBootService.java     |  0
 ...ache.shardingsphere.agent.spi.PluginBootService |  0
 ...hardingsphere.agent.spi.PluginDefinitionService |  0
 .../advice/CommandExecutorTaskAdviceTest.java      |  0
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  0
 .../advice/SQLParserEngineAdviceTest.java          |  0
 .../collector/OpenTelemetryCollector.java          |  0
 ...elemetryTracingPluginDefinitionServiceTest.java |  0
 .../OpenTelemetryTracingPluginBootServiceTest.java |  0
 .../plugins/tracing/{ => type}/opentracing/pom.xml |  2 +-
 .../advice/CommandExecutorTaskAdvice.java          |  0
 .../advice/JDBCExecutorCallbackAdvice.java         |  0
 .../opentracing/advice/SQLParserEngineAdvice.java  |  0
 .../opentracing/constant/ErrorLogTagKeys.java      |  0
 .../opentracing/constant/ShardingSphereTags.java   |  0
 .../OpenTracingPluginDefinitionService.java}       | 44 ++++++-------
 .../service/OpenTracingPluginBootService.java      |  0
 .../opentracing/span/OpenTracingErrorSpan.java     |  0
 ...ache.shardingsphere.agent.spi.PluginBootService |  0
 ...hardingsphere.agent.spi.PluginDefinitionService |  0
 .../advice/CommandExecutorTaskAdviceTest.java      |  0
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  0
 .../opentracing/advice/MockTargetAdviceObject.java |  0
 .../advice/SQLParserEngineAdviceTest.java          |  0
 .../OpenTracingPluginDefinitionServiceTest.java    |  0
 .../service/OpenTracingPluginBootServiceTest.java  |  0
 agent/plugins/tracing/{ => type}/pom.xml           | 15 +++--
 agent/plugins/tracing/{ => type}/zipkin/pom.xml    |  2 +-
 .../zipkin/advice/CommandExecutorTaskAdvice.java   |  0
 .../zipkin/advice/JDBCExecutorCallbackAdvice.java  |  0
 .../zipkin/advice/SQLParserEngineAdvice.java       |  0
 .../tracing/zipkin/constant/ZipkinConstants.java   |  0
 .../definition/ZipkinPluginDefinitionService.java  | 45 +++++++++++++
 .../service/ZipkinTracingPluginBootService.java    |  0
 ...ache.shardingsphere.agent.spi.PluginBootService |  0
 ...hardingsphere.agent.spi.PluginDefinitionService |  0
 .../advice/CommandExecutorTaskAdviceTest.java      |  0
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  0
 .../zipkin/advice/SQLParserEngineAdviceTest.java   |  0
 .../tracing/zipkin/collector/ZipkinCollector.java  |  2 +-
 .../ZipkinPluginDefinitionServiceTest.java         |  0
 .../ZipkinTracingPluginBootServiceTest.java        |  0
 .../definition/ZipkinPluginDefinitionService.java  | 74 ----------------------
 .../opentelemetry/OpenTelemetryPluginE2EIT.java    |  4 ++
 76 files changed, 348 insertions(+), 388 deletions(-)

diff --git a/agent/plugins/tracing/opentracing/pom.xml b/agent/plugins/tracing/core/pom.xml
similarity index 62%
copy from agent/plugins/tracing/opentracing/pom.xml
copy to agent/plugins/tracing/core/pom.xml
index 343df8bd2e6..0b3e997928b 100644
--- a/agent/plugins/tracing/opentracing/pom.xml
+++ b/agent/plugins/tracing/core/pom.xml
@@ -24,28 +24,6 @@
         <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
-    <artifactId>shardingsphere-agent-tracing-opentracing</artifactId>
+    <artifactId>shardingsphere-agent-tracing-core</artifactId>
     <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-proxy-frontend-core</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        
-        <dependency>
-            <groupId>io.opentracing</groupId>
-            <artifactId>opentracing-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.opentracing</groupId>
-            <artifactId>opentracing-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.opentracing</groupId>
-            <artifactId>opentracing-mock</artifactId>
-        </dependency>
-    </dependencies>
 </project>
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java
new file mode 100644
index 00000000000..6aecace59d9
--- /dev/null
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.core.advice;
+
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.CommandExecutorTaskAdviser;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.JDBCExecutorCallbackAdviser;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.SQLParserEngineAdviser;
+
+/**
+ * Tracing advice engine.
+ */
+@RequiredArgsConstructor
+public final class TracingAdviceEngine {
+    
+    private final PluginDefinitionServiceEngine engine;
+    
+    /**
+     * Advice proxy tracing.
+     * 
+     * @param commandExecutorTaskAdvice command executor task advice
+     * @param sqlParserEngineAdvice SQL parser engine advice
+     * @param jdbcExecutorCallbackAdvice JDBC executor callback advice
+     */
+    public void adviceProxyTracing(final Class<? extends InstanceMethodAroundAdvice> commandExecutorTaskAdvice,
+                                   final Class<? extends InstanceMethodAroundAdvice> sqlParserEngineAdvice, final Class<? extends InstanceMethodAroundAdvice> jdbcExecutorCallbackAdvice) {
+        new CommandExecutorTaskAdviser(engine).advice(commandExecutorTaskAdvice);
+        new SQLParserEngineAdviser(engine).advice(sqlParserEngineAdvice);
+        new JDBCExecutorCallbackAdviser(engine).advice(jdbcExecutorCallbackAdvice);
+    }
+    
+    /**
+     * Advice JDBC tracing.
+     */
+    public void adviceJDBCTracing() {
+        // TODO
+    }
+}
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
similarity index 64%
copy from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java
copy to agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
index 69839e69bc4..8e5b58b889f 100644
--- a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
@@ -15,21 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
+package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
 
-public final class MockTargetAdviceObject implements TargetAdviceObject {
-    
-    private Object object;
-    
-    @Override
-    public Object getAttachment() {
-        return object;
-    }
+/**
+ * Tracing adviser.
+ */
+public interface TracingAdviser {
     
-    @Override
-    public void setAttachment(final Object attachment) {
-        object = attachment;
-    }
+    /**
+     * Advice.
+     * 
+     * @param instanceMethodAroundAdvice instance method around advice
+     */
+    void advice(Class<? extends InstanceMethodAroundAdvice> instanceMethodAroundAdvice);
 }
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
new file mode 100644
index 00000000000..521ec4e8d77
--- /dev/null
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
+
+import lombok.RequiredArgsConstructor;
+import net.bytebuddy.matcher.ElementMatchers;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
+import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+
+/**
+ * Command executor task adviser.
+ */
+@RequiredArgsConstructor
+public final class CommandExecutorTaskAdviser implements TracingAdviser {
+    
+    private static final String TARGET_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
+    
+    private static final String TARGET_METHOD = "run";
+    
+    private final PluginDefinitionServiceEngine engine;
+    
+    @Override
+    public void advice(final Class<? extends InstanceMethodAroundAdvice> commandExecutorTaskAdvice) {
+        engine.getClassPointcuts(TARGET_CLASS).getInstanceMethodPointcuts()
+                .add(new InstanceMethodPointcut(ElementMatchers.named(TARGET_METHOD), commandExecutorTaskAdvice.getName()));
+    }
+}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
new file mode 100644
index 00000000000..8ec9ccf2e65
--- /dev/null
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
+
+import lombok.RequiredArgsConstructor;
+import net.bytebuddy.matcher.ElementMatchers;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
+import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+
+/**
+ * JDBC executor callback adviser.
+ */
+@RequiredArgsConstructor
+public final class JDBCExecutorCallbackAdviser implements TracingAdviser {
+    
+    private static final String TARGET_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
+    
+    private static final String TARGET_METHOD = "execute";
+    
+    private static final String TARGET_METHOD_FIRST_PARAM = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
+    
+    private final PluginDefinitionServiceEngine engine;
+    
+    @Override
+    public void advice(final Class<? extends InstanceMethodAroundAdvice> jdbcExecutorCallbackAdvice) {
+        engine.getClassPointcuts(TARGET_CLASS).getInstanceMethodPointcuts()
+                .add(new InstanceMethodPointcut(ElementMatchers.named(TARGET_METHOD).and(ElementMatchers.takesArgument(0, ElementMatchers.named(TARGET_METHOD_FIRST_PARAM))),
+                        jdbcExecutorCallbackAdvice.getName()));
+    }
+}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
new file mode 100644
index 00000000000..83cea28e46a
--- /dev/null
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
+
+import lombok.RequiredArgsConstructor;
+import net.bytebuddy.matcher.ElementMatchers;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
+import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+
+/**
+ * SQL parser engine adviser.
+ */
+@RequiredArgsConstructor
+public final class SQLParserEngineAdviser implements TracingAdviser {
+    
+    private static final String TARGET_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
+    
+    private static final String TARGET_METHOD = "parse";
+    
+    private final PluginDefinitionServiceEngine engine;
+    
+    @Override
+    public void advice(final Class<? extends InstanceMethodAroundAdvice> sqlParserEngineAdvice) {
+        engine.getClassPointcuts(TARGET_CLASS).getInstanceMethodPointcuts()
+                .add(new InstanceMethodPointcut(ElementMatchers.named(TARGET_METHOD), sqlParserEngineAdvice.getName()));
+    }
+}
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java b/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
deleted file mode 100644
index 2922cbe09d2..00000000000
--- a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
-
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.CommandExecutorTaskAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.SQLParserEngineAdvice;
-import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
-import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
-
-/**
- * Jaeger plugin definition service.
- */
-public final class JaegerPluginDefinitionService implements PluginDefinitionService {
-    
-    private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
-    
-    private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
-    
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
-    
-    private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
-    
-    private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
-    
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
-    
-    private static final String JDBC_EXECUTOR_METHOD_NAME = "execute";
-    
-    private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
-    
-    @Override
-    public void installProxyInterceptors() {
-        PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
-        engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
-        engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
-        engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
-                        JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
-    }
-    
-    @Override
-    public void installJdbcInterceptors() {
-        // TODO add JDBC related interception
-    }
-    
-    @Override
-    public String getType() {
-        return "Jaeger";
-    }
-}
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java b/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
deleted file mode 100644
index 12e70bc53ad..00000000000
--- a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
-
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.CommandExecutorTaskAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.SQLParserEngineAdvice;
-import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
-import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
-
-/**
- * OpenTelemetry plugin definition service.
- */
-public final class OpenTelemetryTracingPluginDefinitionService implements PluginDefinitionService {
-    
-    private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
-    
-    private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
-    
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
-    
-    private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
-    
-    private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
-    
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
-    
-    private static final String JDBC_EXECUTOR_METHOD_NAME = "execute";
-    
-    private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
-    
-    @Override
-    public void installProxyInterceptors() {
-        PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
-        engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
-        engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
-        engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
-                        JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
-    }
-    
-    @Override
-    public void installJdbcInterceptors() {
-        // TODO add JDBC related interception
-    }
-    
-    @Override
-    public String getType() {
-        return "OpenTelemetry";
-    }
-}
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java b/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
deleted file mode 100644
index 2220727e5a8..00000000000
--- a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
-
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.CommandExecutorTaskAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.SQLParserEngineAdvice;
-import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
-import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
-
-/**
- * Open tracing plugin definition service.
- */
-public final class OpenTracingPluginDefinitionService implements PluginDefinitionService {
-    
-    private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
-    
-    private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
-    
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
-    
-    private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
-    
-    private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
-    
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
-    
-    private static final String JDBC_EXECUTOR_METHOD_NAME = "execute";
-    
-    private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
-    
-    @Override
-    public void installProxyInterceptors() {
-        PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
-        engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
-        engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
-        engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
-                        JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
-    }
-    
-    @Override
-    public void installJdbcInterceptors() {
-        // TODO add JDBC related interception
-    }
-    
-    @Override
-    public String getType() {
-        return "OpenTracing";
-    }
-}
diff --git a/agent/plugins/tracing/pom.xml b/agent/plugins/tracing/pom.xml
index 96d47d8ca2a..e6f7ccfb52e 100644
--- a/agent/plugins/tracing/pom.xml
+++ b/agent/plugins/tracing/pom.xml
@@ -29,10 +29,8 @@
     <name>${project.artifactId}</name>
     
     <modules>
-        <module>opentracing</module>
-        <module>opentelemetry</module>
-        <module>jaeger</module>
-        <module>zipkin</module>
+        <module>core</module>
+        <module>type</module>
         <module>test</module>
     </modules>
     
diff --git a/agent/plugins/tracing/jaeger/pom.xml b/agent/plugins/tracing/type/jaeger/pom.xml
similarity index 97%
rename from agent/plugins/tracing/jaeger/pom.xml
rename to agent/plugins/tracing/type/jaeger/pom.xml
index 659b01360e3..9b0def7bba0 100644
--- a/agent/plugins/tracing/jaeger/pom.xml
+++ b/agent/plugins/tracing/type/jaeger/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
+        <artifactId>shardingsphere-agent-tracing-type</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
     <artifactId>shardingsphere-agent-tracing-jaeger</artifactId>
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
diff --git a/agent/plugins/tracing/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
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/constant/JaegerConstants.java
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
new file mode 100644
index 00000000000..d9a4127672e
--- /dev/null
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
+
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
+
+/**
+ * Jaeger plugin definition service.
+ */
+public final class JaegerPluginDefinitionService implements PluginDefinitionService {
+    
+    @Override
+    public void installProxyInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceProxyTracing(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
+    }
+    
+    @Override
+    public void installJdbcInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceJDBCTracing();
+    }
+    
+    @Override
+    public String getType() {
+        return "Jaeger";
+    }
+}
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/span/JaegerErrorSpan.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/span/JaegerErrorSpan.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/span/JaegerErrorSpan.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/span/JaegerErrorSpan.java
diff --git a/agent/plugins/tracing/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService b/agent/plugins/tracing/type/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
rename to agent/plugins/tracing/type/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
diff --git a/agent/plugins/tracing/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService b/agent/plugins/tracing/type/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
rename to agent/plugins/tracing/type/jaeger/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/collector/JaegerCollector.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/collector/JaegerCollector.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/collector/JaegerCollector.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/collector/JaegerCollector.java
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java b/agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
rename to agent/plugins/tracing/type/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
diff --git a/agent/plugins/tracing/opentelemetry/pom.xml b/agent/plugins/tracing/type/opentelemetry/pom.xml
similarity index 97%
rename from agent/plugins/tracing/opentelemetry/pom.xml
rename to agent/plugins/tracing/type/opentelemetry/pom.xml
index 7e9552cb44c..9f75dbcaf35 100644
--- a/agent/plugins/tracing/opentelemetry/pom.xml
+++ b/agent/plugins/tracing/type/opentelemetry/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
+        <artifactId>shardingsphere-agent-tracing-type</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
     <artifactId>shardingsphere-agent-tracing-opentelemetry</artifactId>
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
diff --git a/agent/plugins/tracing/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
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/constant/OpenTelemetryConstants.java
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
similarity index 50%
copy from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
copy to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
index 252cd02f2e0..e6072eb6ffa 100644
--- a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
@@ -15,30 +15,27 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.service;
+package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
 
-import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
-import org.apache.shardingsphere.agent.config.PluginConfiguration;
-import org.apache.shardingsphere.agent.spi.PluginBootService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
-public class OpenTelemetryTracingPluginBootService implements PluginBootService {
+/**
+ * OpenTelemetry plugin definition service.
+ */
+public final class OpenTelemetryTracingPluginDefinitionService implements PluginDefinitionService {
     
     @Override
-    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
-        pluginConfig.getProps().forEach((key, value) -> setSystemProperty(String.valueOf(key), String.valueOf(value)));
-        OpenTelemetrySdk sdk = OpenTelemetrySdkAutoConfiguration.initialize();
-        // tracer will be created
-        sdk.getTracer("shardingsphere-agent");
-    }
-    
-    private void setSystemProperty(final String key, final String value) {
-        String propertyKey = key.replaceAll("-", ".");
-        System.setProperty(propertyKey, String.valueOf(value));
+    public void installProxyInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceProxyTracing(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
     @Override
-    public void close() {
+    public void installJdbcInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceJDBCTracing();
     }
     
     @Override
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
diff --git a/agent/plugins/tracing/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService b/agent/plugins/tracing/type/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
rename to agent/plugins/tracing/type/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
diff --git a/agent/plugins/tracing/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService b/agent/plugins/tracing/type/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
rename to agent/plugins/tracing/type/opentelemetry/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceTest.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceTest.java
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceTest.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceTest.java
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceTest.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceTest.java
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/collector/OpenTelemetryCollector.java
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
rename to agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
diff --git a/agent/plugins/tracing/opentracing/pom.xml b/agent/plugins/tracing/type/opentracing/pom.xml
similarity index 96%
rename from agent/plugins/tracing/opentracing/pom.xml
rename to agent/plugins/tracing/type/opentracing/pom.xml
index 343df8bd2e6..29c60e02750 100644
--- a/agent/plugins/tracing/opentracing/pom.xml
+++ b/agent/plugins/tracing/type/opentracing/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
+        <artifactId>shardingsphere-agent-tracing-type</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
     <artifactId>shardingsphere-agent-tracing-opentracing</artifactId>
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ErrorLogTagKeys.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ErrorLogTagKeys.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ErrorLogTagKeys.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ErrorLogTagKeys.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ShardingSphereTags.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ShardingSphereTags.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ShardingSphereTags.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/constant/ShardingSphereTags.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
similarity index 50%
copy from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java
copy to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
index c4c7a2045d4..14c203f6203 100644
--- a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
@@ -15,37 +15,31 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.plugin.tracing.opentracing.span;
+package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
 
-import io.opentracing.Span;
-import io.opentracing.tag.Tags;
-import java.util.HashMap;
-import java.util.Map;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ErrorLogTagKeys;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
 /**
- * Open tracing error span.
+ * Open tracing plugin definition service.
  */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class OpenTracingErrorSpan {
+public final class OpenTracingPluginDefinitionService implements PluginDefinitionService {
     
-    /**
-     * Set error.
-     * 
-     * @param span span to be set
-     * @param cause failure cause of span
-     */
-    public static void setError(final Span span, final Throwable cause) {
-        span.setTag(Tags.ERROR.getKey(), true).log(System.currentTimeMillis(), getReason(cause));
+    @Override
+    public void installProxyInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceProxyTracing(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
-    private static Map<String, ?> getReason(final Throwable cause) {
-        Map<String, String> result = new HashMap<>(3, 1);
-        result.put(ErrorLogTagKeys.EVENT, ErrorLogTagKeys.EVENT_ERROR_TYPE);
-        result.put(ErrorLogTagKeys.ERROR_KIND, cause.getClass().getName());
-        result.put(ErrorLogTagKeys.MESSAGE, cause.getMessage());
-        return result;
+    @Override
+    public void installJdbcInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceJDBCTracing();
+    }
+    
+    @Override
+    public String getType() {
+        return "OpenTracing";
     }
 }
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/span/OpenTracingErrorSpan.java
diff --git a/agent/plugins/tracing/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService b/agent/plugins/tracing/type/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
rename to agent/plugins/tracing/type/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
diff --git a/agent/plugins/tracing/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService b/agent/plugins/tracing/type/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
rename to agent/plugins/tracing/type/opentracing/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetAdviceObject.java
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
rename to agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
diff --git a/agent/plugins/tracing/pom.xml b/agent/plugins/tracing/type/pom.xml
similarity index 79%
copy from agent/plugins/tracing/pom.xml
copy to agent/plugins/tracing/type/pom.xml
index 96d47d8ca2a..7f940188a52 100644
--- a/agent/plugins/tracing/pom.xml
+++ b/agent/plugins/tracing/type/pom.xml
@@ -21,10 +21,10 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-agent-plugins</artifactId>
+        <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
-    <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
+    <artifactId>shardingsphere-agent-tracing-type</artifactId>
     <packaging>pom</packaging>
     <name>${project.artifactId}</name>
     
@@ -33,13 +33,20 @@
         <module>opentelemetry</module>
         <module>jaeger</module>
         <module>zipkin</module>
-        <module>test</module>
     </modules>
     
     <properties>
-        <tracing.target.directory>${project.basedir}/../target/plugins</tracing.target.directory>
+        <tracing.target.directory>${project.basedir}/../../target/plugins</tracing.target.directory>
     </properties>
     
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-agent-tracing-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    
     <build>
         <plugins>
             <plugin>
diff --git a/agent/plugins/tracing/zipkin/pom.xml b/agent/plugins/tracing/type/zipkin/pom.xml
similarity index 97%
rename from agent/plugins/tracing/zipkin/pom.xml
rename to agent/plugins/tracing/type/zipkin/pom.xml
index 036b3d8fde4..3bf594b9eac 100644
--- a/agent/plugins/tracing/zipkin/pom.xml
+++ b/agent/plugins/tracing/type/zipkin/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-agent-plugin-tracing</artifactId>
+        <artifactId>shardingsphere-agent-tracing-type</artifactId>
         <version>5.3.1-SNAPSHOT</version>
     </parent>
     <artifactId>shardingsphere-agent-tracing-zipkin</artifactId>
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/constant/ZipkinConstants.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/constant/ZipkinConstants.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/constant/ZipkinConstants.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/constant/ZipkinConstants.java
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
new file mode 100644
index 00000000000..a408e4d154e
--- /dev/null
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
+
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
+
+/**
+ * Zipkin plugin definition service.
+ */
+public final class ZipkinPluginDefinitionService implements PluginDefinitionService {
+    
+    @Override
+    public void installProxyInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceProxyTracing(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
+    }
+    
+    @Override
+    public void installJdbcInterceptors() {
+        new TracingAdviceEngine(new PluginDefinitionServiceEngine(this)).adviceJDBCTracing();
+    }
+    
+    @Override
+    public String getType() {
+        return "Zipkin";
+    }
+}
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
diff --git a/agent/plugins/tracing/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService b/agent/plugins/tracing/type/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
rename to agent/plugins/tracing/type/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginBootService
diff --git a/agent/plugins/tracing/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService b/agent/plugins/tracing/type/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
rename to agent/plugins/tracing/type/zipkin/src/main/resources/META-INF/services/org.apache.shardingsphere.agent.spi.PluginDefinitionService
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java
similarity index 95%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java
index 5abd9bb1cc3..14c36f5404c 100644
--- a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java
+++ b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/collector/ZipkinCollector.java
@@ -25,7 +25,7 @@ import zipkin2.Span;
 
 import java.util.concurrent.ConcurrentLinkedDeque;
 
-public class ZipkinCollector extends ExternalResource implements CollectorRule {
+public final class ZipkinCollector extends ExternalResource implements CollectorRule {
     
     private static final ConcurrentLinkedDeque<Span> SPANS = new ConcurrentLinkedDeque<>();
     
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java b/agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
similarity index 100%
rename from agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
rename to agent/plugins/tracing/type/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java b/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
deleted file mode 100644
index d129f1e5bb2..00000000000
--- a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
-
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.CommandExecutorTaskAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.SQLParserEngineAdvice;
-import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
-import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
-
-/**
- * Zipkin plugin definition service.
- */
-public final class ZipkinPluginDefinitionService implements PluginDefinitionService {
-    
-    private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
-    
-    private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
-    
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
-    
-    private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
-    
-    private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
-    
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
-    
-    private static final String JDBC_EXECUTOR_METHOD_NAME = "execute";
-    
-    private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
-    
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
-    
-    @Override
-    public void installProxyInterceptors() {
-        PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
-        engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
-        engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
-        engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
-                .add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
-                        JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
-    }
-    
-    @Override
-    public void installJdbcInterceptors() {
-        // TODO add JDBC related interception
-    }
-    
-    @Override
-    public String getType() {
-        return "Zipkin";
-    }
-}
diff --git a/test/e2e/agent/plugins/opentelemetry/src/test/java/org/apache/shardingsphere/test/e2e/agent/opentelemetry/OpenTelemetryPluginE2EIT.java b/test/e2e/agent/plugins/opentelemetry/src/test/java/org/apache/shardingsphere/test/e2e/agent/opentelemetry/OpenTelemetryPluginE2EIT.java
index 79b654d40ad..01a3b424555 100644
--- a/test/e2e/agent/plugins/opentelemetry/src/test/java/org/apache/shardingsphere/test/e2e/agent/opentelemetry/OpenTelemetryPluginE2EIT.java
+++ b/test/e2e/agent/plugins/opentelemetry/src/test/java/org/apache/shardingsphere/test/e2e/agent/opentelemetry/OpenTelemetryPluginE2EIT.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.test.e2e.agent.opentelemetry;
 import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonParser;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.test.e2e.agent.common.BasePluginE2EIT;
 import org.apache.shardingsphere.test.e2e.agent.common.env.E2ETestEnvironment;
 import org.apache.shardingsphere.test.e2e.agent.common.util.OkHttpUtils;
@@ -37,6 +38,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.fail;
 
+@Slf4j
 public final class OpenTelemetryPluginE2EIT extends BasePluginE2EIT {
     
     private static final String ROOT_INVOKE = "/shardingsphere/rootinvoke/";
@@ -54,6 +56,8 @@ public final class OpenTelemetryPluginE2EIT extends BasePluginE2EIT {
         } catch (final InterruptedException ignore) {
         }
         String url = props.getProperty("opentelemetry.zipkin.url") + props.getProperty("opentelemetry.servername");
+        log.error("=======url=======" + url);
+        log.error("=======OkHttpUtils.getInstance().get(url))=======" + OkHttpUtils.getInstance().get(url));
         JsonArray array = JsonParser.parseString(OkHttpUtils.getInstance().get(url)).getAsJsonArray().get(0).getAsJsonArray();
         Gson gson = new Gson();
         Collection<TracingResult> traces = new LinkedList<>();