You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/11/30 08:16:52 UTC

[shardingsphere] branch master updated: Refactor agent plugin to support JDBC (#22505)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 7e6d00dbfab Refactor agent plugin to support JDBC (#22505)
7e6d00dbfab is described below

commit 7e6d00dbfab5f016fae7736f805c34df469a2907
Author: jiangML <10...@qq.com>
AuthorDate: Wed Nov 30 16:16:45 2022 +0800

    Refactor agent plugin to support JDBC (#22505)
    
    * Refactor agent plugin to support JDBC
    
    * optimize code
    
    * optimize code
    
    * optimize code
    
    * remove extra spaces
    
    * remove extra spaces
    
    * remove extra spaces
---
 .../agent/spi/boot/PluginBootService.java          |  3 ++-
 .../AbstractPluginDefinitionService.java           | 24 +++++++++++++++-------
 agent/bootstrap/pom.xml                            |  4 ++++
 .../agent/bootstrap/ShardingSphereAgent.java       |  4 ++--
 .../agent/core/plugin/AdviceInstanceLoader.java    |  2 +-
 .../agent/core/plugin/AgentPluginLoader.java       |  2 +-
 .../core/plugin/PluginBootServiceManager.java      |  5 +++--
 .../BaseLoggingPluginDefinitionService.java        | 12 +++++++++--
 .../base/service/BaseLoggingPluginBootService.java |  2 +-
 .../prometheus/collector/BuildInfoCollector.java   | 14 +++++++++----
 .../PrometheusPluginDefinitionService.java         | 12 +++++------
 .../service/PrometheusPluginBootService.java       | 13 ++++++++----
 .../collector/BuildInfoCollectorTest.java          |  2 +-
 .../PrometheusPluginDefinitionServiceTest.java     |  2 +-
 .../service/PrometheusPluginBootServiceTest.java   |  2 +-
 agent/plugins/pom.xml                              | 12 +++++++++++
 .../definition/JaegerPluginDefinitionService.java  |  7 ++++++-
 .../service/JaegerTracingPluginBootService.java    |  2 +-
 .../JaegerPluginDefinitionServiceTest.java         |  2 +-
 .../JaegerTracingPluginBootServiceTest.java        |  2 +-
 ...penTelemetryTracingPluginDefinitionService.java |  7 ++++++-
 .../OpenTelemetryTracingPluginBootService.java     |  2 +-
 ...elemetryTracingPluginDefinitionServiceTest.java |  2 +-
 .../OpenTelemetryTracingPluginBootServiceTest.java |  2 +-
 .../OpenTracingPluginDefinitionService.java        |  7 ++++++-
 .../service/OpenTracingPluginBootService.java      |  2 +-
 .../OpenTracingPluginDefinitionServiceTest.java    |  2 +-
 .../service/OpenTracingPluginBootServiceTest.java  |  2 +-
 .../definition/ZipkinPluginDefinitionService.java  |  7 ++++++-
 .../service/ZipkinTracingPluginBootService.java    |  2 +-
 .../ZipkinPluginDefinitionServiceTest.java         |  2 +-
 .../ZipkinTracingPluginBootServiceTest.java        |  2 +-
 32 files changed, 117 insertions(+), 50 deletions(-)

diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/boot/PluginBootService.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/boot/PluginBootService.java
index b8b2b554c17..7d0f36723df 100644
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/boot/PluginBootService.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/boot/PluginBootService.java
@@ -29,6 +29,7 @@ public interface PluginBootService extends AgentTypedSPI, AutoCloseable {
      * Start plugin boot service.
      *
      * @param pluginConfig plugin configuration
+     * @param isEnhancedForProxy is enhanced for proxy
      */
-    void start(PluginConfiguration pluginConfig);
+    void start(PluginConfiguration pluginConfig, boolean isEnhancedForProxy);
 }
diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/definition/AbstractPluginDefinitionService.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/definition/AbstractPluginDefinitionService.java
index 72d054afdc7..27904109171 100644
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/definition/AbstractPluginDefinitionService.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/definition/AbstractPluginDefinitionService.java
@@ -31,21 +31,31 @@ public abstract class AbstractPluginDefinitionService implements PluginDefinitio
     
     private final Map<String, PluginInterceptorPoint.Builder> interceptorPointMap = new HashMap<>();
     
-    /**
-     * Define interceptors to collection of plugin interceptor point.
-     */
-    public abstract void defineInterceptors();
-    
     /**
      * Install to collection of plugin interceptor point.
      *
+     * @param isEnhancedForProxy is enhanced for proxy
      * @return collection of plugin interceptor point
      */
-    public final Collection<PluginInterceptorPoint> install() {
-        defineInterceptors();
+    public final Collection<PluginInterceptorPoint> install(final boolean isEnhancedForProxy) {
+        if (isEnhancedForProxy) {
+            defineProxyInterceptors();
+        } else {
+            defineJdbcInterceptors();
+        }
         return interceptorPointMap.values().stream().map(PluginInterceptorPoint.Builder::install).collect(Collectors.toList());
     }
     
+    /**
+     * Define proxy interceptors to collection of plugin interceptor point.
+     */
+    public abstract void defineProxyInterceptors();
+    
+    /**
+     * Define JDBC interceptors to collection of plugin interceptor point.
+     */
+    public abstract void defineJdbcInterceptors();
+    
     protected final PluginInterceptorPoint.Builder defineInterceptor(final String classNameOfTarget) {
         if (interceptorPointMap.containsKey(classNameOfTarget)) {
             return interceptorPointMap.get(classNameOfTarget);
diff --git a/agent/bootstrap/pom.xml b/agent/bootstrap/pom.xml
index f9756e9be9d..bacf64ed40e 100644
--- a/agent/bootstrap/pom.xml
+++ b/agent/bootstrap/pom.xml
@@ -84,6 +84,10 @@
                                     <pattern>net.bytebuddy</pattern>
                                     <shadedPattern>${shade.package}.net.bytebuddy</shadedPattern>
                                 </relocation>
+                                <relocation>
+                                    <pattern>com.google</pattern>
+                                    <shadedPattern>${shade.package}.com.google</shadedPattern>
+                                </relocation>
                             </relocations>
                             <filters>
                                 <filter>
diff --git a/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java b/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
index e8ac497b406..ce324c02dde 100644
--- a/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
+++ b/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
@@ -27,9 +27,9 @@ import org.apache.shardingsphere.agent.config.AgentConfiguration;
 import org.apache.shardingsphere.agent.config.PluginConfiguration;
 import org.apache.shardingsphere.agent.core.bytebuddy.listener.LoggingListener;
 import org.apache.shardingsphere.agent.core.bytebuddy.transformer.ShardingSphereTransformer;
+import org.apache.shardingsphere.agent.core.common.AgentClassLoader;
 import org.apache.shardingsphere.agent.core.config.loader.AgentConfigurationLoader;
 import org.apache.shardingsphere.agent.core.config.registry.AgentConfigurationRegistry;
-import org.apache.shardingsphere.agent.core.common.AgentClassLoader;
 import org.apache.shardingsphere.agent.core.plugin.AgentPluginLoader;
 import org.apache.shardingsphere.agent.core.plugin.PluginBootServiceManager;
 
@@ -79,7 +79,7 @@ public final class ShardingSphereAgent {
     }
     
     private static void setupPluginBootService(final Map<String, PluginConfiguration> pluginConfigs) {
-        PluginBootServiceManager.startAllServices(pluginConfigs, AgentClassLoader.getDefaultPluginClassloader());
+        PluginBootServiceManager.startAllServices(pluginConfigs, AgentClassLoader.getDefaultPluginClassloader(), true);
         Runtime.getRuntime().addShutdownHook(new Thread(PluginBootServiceManager::closeAllServices));
     }
     
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AdviceInstanceLoader.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AdviceInstanceLoader.java
index 37bae760093..3a071a0d820 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AdviceInstanceLoader.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AdviceInstanceLoader.java
@@ -106,7 +106,7 @@ public final class AdviceInstanceLoader {
             return;
         }
         try {
-            PluginBootServiceManager.startAllServices(AgentConfigurationRegistry.INSTANCE.get(AgentConfiguration.class).getPlugins(), classLoader);
+            PluginBootServiceManager.startAllServices(AgentConfigurationRegistry.INSTANCE.get(AgentConfiguration.class).getPlugins(), classLoader, false);
             Runtime.getRuntime().addShutdownHook(new Thread(PluginBootServiceManager::closeAllServices));
         } finally {
             isStarted = true;
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
index 6702b9191e4..48b122e0dc4 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
@@ -107,7 +107,7 @@ public final class AgentPluginLoader implements PluginLoader {
     
     private void buildPluginInterceptorPointMap(final PluginDefinitionService pluginDefinitionService, final Map<String, PluginInterceptorPoint> pointMap) {
         AbstractPluginDefinitionService definitionService = (AbstractPluginDefinitionService) pluginDefinitionService;
-        definitionService.install().forEach(each -> {
+        definitionService.install(isEnhancedForProxy).forEach(each -> {
             String target = each.getClassNameOfTarget();
             if (pointMap.containsKey(target)) {
                 PluginInterceptorPoint pluginInterceptorPoint = pointMap.get(target);
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/PluginBootServiceManager.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/PluginBootServiceManager.java
index 350a0a529cd..71b02929aa6 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/PluginBootServiceManager.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/PluginBootServiceManager.java
@@ -41,8 +41,9 @@ public final class PluginBootServiceManager {
      *
      * @param pluginConfigurationMap plugin configuration map
      * @param classLoader classLoader
+     * @param isEnhancedForProxy is enhanced for proxy
      */
-    public static void startAllServices(final Map<String, PluginConfiguration> pluginConfigurationMap, final ClassLoader classLoader) {
+    public static void startAllServices(final Map<String, PluginConfiguration> pluginConfigurationMap, final ClassLoader classLoader, final boolean isEnhancedForProxy) {
         ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
         try {
             Thread.currentThread().setContextClassLoader(classLoader);
@@ -50,7 +51,7 @@ public final class PluginBootServiceManager {
                 AgentTypedSPIRegistry.getRegisteredServiceOptional(PluginBootService.class, entry.getKey()).ifPresent(optional -> {
                     try {
                         LOGGER.info("Start plugin: {}", optional.getType());
-                        optional.start(entry.getValue());
+                        optional.start(entry.getValue(), isEnhancedForProxy);
                         // CHECKSTYLE:OFF
                     } catch (final Throwable ex) {
                         // CHECKSTYLE:ON
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
index 49c648f0712..f4083132b7c 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
@@ -33,9 +33,17 @@ public final class BaseLoggingPluginDefinitionService extends AbstractPluginDefi
     private static final String SCHEMA_METADATA_LOADER_ADVICE_CLASS = MetaDataContextsFactoryAdvice.class.getName();
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         defineInterceptor(SCHEMA_METADATA_LOADER_CLASS)
-                .aroundClassStaticMethod(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME))
+                .aroundClassStaticMethod(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)))
+                .implement(SCHEMA_METADATA_LOADER_ADVICE_CLASS)
+                .build();
+    }
+    
+    @Override
+    public void defineJdbcInterceptors() {
+        defineInterceptor(SCHEMA_METADATA_LOADER_CLASS)
+                .aroundClassStaticMethod(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)))
                 .implement(SCHEMA_METADATA_LOADER_ADVICE_CLASS)
                 .build();
     }
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/service/BaseLoggingPluginBootService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/service/BaseLoggingPluginBootService.java
index 29bc7483fdc..1ae973a93fc 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/service/BaseLoggingPluginBootService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/service/BaseLoggingPluginBootService.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.agent.spi.boot.PluginBootService;
 public final class BaseLoggingPluginBootService implements PluginBootService {
     
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
     }
     
     @Override
diff --git a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollector.java b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollector.java
index 1ef9bdcb970..f89d0320460 100644
--- a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollector.java
+++ b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollector.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.agent.metrics.prometheus.collector;
 
 import io.prometheus.client.Collector;
 import io.prometheus.client.GaugeMetricFamily;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.prometheus.wrapper.PrometheusWrapperFactory;
@@ -32,12 +33,15 @@ import java.util.Optional;
  * Build information collector.
  */
 @Slf4j
+@RequiredArgsConstructor
 public final class BuildInfoCollector extends Collector {
     
     private static final String PROXY_BOOTSTRAP_CLASS = "org.apache.shardingsphere.proxy.Bootstrap";
     
     private static final PrometheusWrapperFactory FACTORY = new PrometheusWrapperFactory();
     
+    private final boolean isEnhancedForProxy;
+    
     @Override
     public List<MetricFamilySamples> collect() {
         Optional<GaugeMetricFamily> artifactInfo = FACTORY.createGaugeMetricFamily(MetricIds.BUILD_INFO);
@@ -45,10 +49,12 @@ public final class BuildInfoCollector extends Collector {
             return Collections.emptyList();
         }
         addMetric(artifactInfo.get(), getClass().getPackage());
-        try {
-            addMetric(artifactInfo.get(), Class.forName(PROXY_BOOTSTRAP_CLASS).getPackage());
-        } catch (final ClassNotFoundException ignored) {
-            log.warn("No proxy class find");
+        if (isEnhancedForProxy) {
+            try {
+                addMetric(artifactInfo.get(), Class.forName(PROXY_BOOTSTRAP_CLASS).getPackage());
+            } catch (final ClassNotFoundException ignored) {
+                log.warn("No proxy class found");
+            }
         }
         return Collections.singletonList(artifactInfo.get());
     }
diff --git a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
index 651430db3c7..f7a8a3e3eb7 100644
--- a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
+++ b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.agent.metrics.prometheus.definition;
 
-import lombok.extern.slf4j.Slf4j;
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.api.point.PluginInterceptorPoint.Builder;
 import org.apache.shardingsphere.agent.core.entity.Interceptor;
@@ -31,11 +30,10 @@ import java.io.InputStream;
 /**
  * Metrics plugin definition service.
  */
-@Slf4j
 public final class PrometheusPluginDefinitionService extends AbstractPluginDefinitionService {
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         InputStream inputStream = getClass().getResourceAsStream("/prometheus/interceptors.yaml");
         Interceptors interceptors = new Yaml().loadAs(inputStream, Interceptors.class);
         for (Interceptor each : interceptors.getInterceptors()) {
@@ -45,7 +43,6 @@ public final class PrometheusPluginDefinitionService extends AbstractPluginDefin
             Builder builder = defineInterceptor(each.getTarget());
             if (null != each.getConstructAdvice() && !("".equals(each.getConstructAdvice()))) {
                 builder.onConstructor(ElementMatchers.isConstructor()).implement(each.getConstructAdvice()).build();
-                log.debug("Init construct: {}", each.getConstructAdvice());
             }
             if (null == each.getPoints()) {
                 continue;
@@ -54,15 +51,18 @@ public final class PrometheusPluginDefinitionService extends AbstractPluginDefin
             String[] staticPoints = each.getPoints().stream().filter(i -> "static".equals(i.getType())).map(TargetPoint::getName).toArray(String[]::new);
             if (instancePoints.length > 0) {
                 builder.aroundInstanceMethod(ElementMatchers.namedOneOf(instancePoints)).implement(each.getInstanceAdvice()).build();
-                log.debug("Init instance: {}", each.getInstanceAdvice());
             }
             if (staticPoints.length > 0) {
                 builder.aroundClassStaticMethod(ElementMatchers.namedOneOf(staticPoints)).implement(each.getStaticAdvice()).build();
-                log.debug("Init static: {}", each.getStaticAdvice());
             }
         }
     }
     
+    @Override
+    public void defineJdbcInterceptors() {
+        // TODO add JDBC related interception
+    }
+    
     @Override
     public String getType() {
         return "Prometheus";
diff --git a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
index 0a7c33db8bf..dfcceff26c5 100644
--- a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
+++ b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
@@ -41,11 +41,14 @@ public final class PrometheusPluginBootService implements PluginBootService {
     
     private static final String KEY_JVM_INFORMATION_COLLECTOR_ENABLED = "jvm-information-collector-enabled";
     
+    private boolean isEnhancedForProxy;
+    
     private HTTPServer httpServer;
     
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
         Preconditions.checkState(pluginConfig.getPort() > 0, "Prometheus config error, host is null or port is `%s`", pluginConfig.getPort());
+        this.isEnhancedForProxy = isEnhancedForProxy;
         startServer(pluginConfig);
         MetricsPool.setMetricsFactory(new PrometheusWrapperFactory());
     }
@@ -62,9 +65,11 @@ public final class PrometheusPluginBootService implements PluginBootService {
     }
     
     private void registerCollector(final boolean enabled) {
-        new ProxyInfoCollector().register();
-        new BuildInfoCollector().register();
-        new MetaDataInfoCollector().register();
+        new BuildInfoCollector(isEnhancedForProxy).register();
+        if (isEnhancedForProxy) {
+            new ProxyInfoCollector().register();
+            new MetaDataInfoCollector().register();
+        }
         if (enabled) {
             DefaultExports.initialize();
         }
diff --git a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollectorTest.java b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollectorTest.java
index fcb5bda41c5..1996cbbe3c5 100644
--- a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollectorTest.java
+++ b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/collector/BuildInfoCollectorTest.java
@@ -25,6 +25,6 @@ public final class BuildInfoCollectorTest {
     
     @Test
     public void assertCollect() {
-        assertFalse(new BuildInfoCollector().collect().isEmpty());
+        assertFalse(new BuildInfoCollector(true).collect().isEmpty());
     }
 }
diff --git a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
index 13c55166507..7aae0f1a3cd 100644
--- a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
+++ b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
@@ -26,6 +26,6 @@ public final class PrometheusPluginDefinitionServiceTest {
     
     @Test
     public void assertDefine() {
-        assertThat(new PrometheusPluginDefinitionService().install().size(), is(5));
+        assertThat(new PrometheusPluginDefinitionService().install(true).size(), is(5));
     }
 }
diff --git a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootServiceTest.java b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootServiceTest.java
index 5afa0da2add..6f44055c8c9 100644
--- a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootServiceTest.java
+++ b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootServiceTest.java
@@ -57,7 +57,7 @@ public final class PrometheusPluginBootServiceTest extends ProxyContextRestorer
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), new StandaloneWorkerIdGenerator(), new ModeConfiguration("Standalone", null), mock(LockContext.class),
                 new EventBusContext());
         ProxyContext.init(new ContextManager(metaDataContexts, instanceContext));
-        PROMETHEUS_PLUGIN_BOOT_SERVICE.start(new PluginConfiguration("localhost", 8090, "", createProperties()));
+        PROMETHEUS_PLUGIN_BOOT_SERVICE.start(new PluginConfiguration("localhost", 8090, "", createProperties()), true);
         new Socket().connect(new InetSocketAddress("localhost", 8090));
     }
     
diff --git a/agent/plugins/pom.xml b/agent/plugins/pom.xml
index af5ec1e75dc..09c6bae0e62 100644
--- a/agent/plugins/pom.xml
+++ b/agent/plugins/pom.xml
@@ -82,6 +82,18 @@
                                     <pattern>net.bytebuddy</pattern>
                                     <shadedPattern>${shade.package}.net.bytebuddy</shadedPattern>
                                 </relocation>
+                                <relocation>
+                                    <pattern>org.yaml</pattern>
+                                    <shadedPattern>${shade.package}.org.yaml</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>com.google</pattern>
+                                    <shadedPattern>${shade.package}.com.google</shadedPattern>
+                                </relocation>
+                                <relocation>
+                                    <pattern>org.apache.commons</pattern>
+                                    <shadedPattern>${shade.package}.org.apache.commons</shadedPattern>
+                                </relocation>
                             </relocations>
                             <filters>
                                 <filter>
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
index ea8f57f39e1..8a603379f9a 100644
--- 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
@@ -46,7 +46,7 @@ public final class JaegerPluginDefinitionService extends AbstractPluginDefinitio
     private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice";
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS)
                 .aroundInstanceMethod(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME))
                 .implement(COMMAND_EXECUTOR_TASK_ADVICE_CLASS)
@@ -63,6 +63,11 @@ public final class JaegerPluginDefinitionService extends AbstractPluginDefinitio
                 .build();
     }
     
+    @Override
+    public void defineJdbcInterceptors() {
+        // TODO add JDBC related interception
+    }
+    
     @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/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
index 82a7fd391ff..435ddf9da7e 100644
--- a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
+++ b/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootService.java
@@ -37,7 +37,7 @@ public final class JaegerTracingPluginBootService implements PluginBootService {
     
     @SuppressWarnings("AccessOfSystemProperties")
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
         pluginConfig.validate("Jaeger");
         pluginConfig.getProps().forEach((key, value) -> setSystemProperty(String.valueOf(key), String.valueOf(value)));
         Configuration.SamplerConfiguration samplerConfig = Configuration.SamplerConfiguration.fromEnv();
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
index 506755bb91e..11e6e79c28f 100644
--- a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
@@ -26,6 +26,6 @@ public final class JaegerPluginDefinitionServiceTest {
     
     @Test
     public void assertDefine() {
-        assertThat(new JaegerPluginDefinitionService().install().size(), is(3));
+        assertThat(new JaegerPluginDefinitionService().install(true).size(), is(3));
     }
 }
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
index 7a26562db6b..f8a5134cb76 100644
--- a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
+++ b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/service/JaegerTracingPluginBootServiceTest.java
@@ -34,7 +34,7 @@ public final class JaegerTracingPluginBootServiceTest {
     
     @Test
     public void assertStart() {
-        jaegerTracingPluginBootService.start(new PluginConfiguration("localhost", 5775, "", createProperties()));
+        jaegerTracingPluginBootService.start(new PluginConfiguration("localhost", 5775, "", createProperties()), true);
         assertTrue(GlobalTracer.isRegistered());
     }
     
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
index f5d0f332ef1..ba2f93c4c0a 100644
--- 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
@@ -46,7 +46,7 @@ public class OpenTelemetryTracingPluginDefinitionService extends AbstractPluginD
     private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice";
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS)
                 .aroundInstanceMethod(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME))
                 .implement(COMMAND_EXECUTOR_TASK_ADVICE_CLASS)
@@ -63,6 +63,11 @@ public class OpenTelemetryTracingPluginDefinitionService extends AbstractPluginD
                 .build();
     }
     
+    @Override
+    public void defineJdbcInterceptors() {
+        // TODO add JDBC related interception
+    }
+    
     @Override
     public String getType() {
         return "OpenTelemetry";
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java b/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
index ea1bf3b7268..55184bc59f2 100644
--- a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
+++ b/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootService.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.agent.spi.boot.PluginBootService;
 public class OpenTelemetryTracingPluginBootService implements PluginBootService {
     
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    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
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
index cc3039be2c5..bffdbeda5e6 100644
--- a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
@@ -26,6 +26,6 @@ public final class OpenTelemetryTracingPluginDefinitionServiceTest {
     
     @Test
     public void assertDefine() {
-        assertThat(new OpenTelemetryTracingPluginDefinitionService().install().size(), is(3));
+        assertThat(new OpenTelemetryTracingPluginDefinitionService().install(true).size(), is(3));
     }
 }
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
index 56c6d994f77..04d68c08f5b 100644
--- a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
+++ b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/service/OpenTelemetryTracingPluginBootServiceTest.java
@@ -30,7 +30,7 @@ public final class OpenTelemetryTracingPluginBootServiceTest {
     
     @Test
     public void assertStart() {
-        new OpenTelemetryTracingPluginBootService().start(new PluginConfiguration(null, 0, null, createProperties()));
+        new OpenTelemetryTracingPluginBootService().start(new PluginConfiguration(null, 0, null, createProperties()), true);
         assertNotNull(GlobalOpenTelemetry.getTracerProvider());
         assertNotNull(GlobalOpenTelemetry.getTracer("shardingsphere-agent"));
     }
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
index ed222283ce0..8260f530357 100644
--- 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
@@ -46,7 +46,7 @@ public final class OpenTracingPluginDefinitionService extends AbstractPluginDefi
     private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice";
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS)
                 .aroundInstanceMethod(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME))
                 .implement(COMMAND_EXECUTOR_TASK_ADVICE_CLASS)
@@ -63,6 +63,11 @@ public final class OpenTracingPluginDefinitionService extends AbstractPluginDefi
                 .build();
     }
     
+    @Override
+    public void defineJdbcInterceptors() {
+        // TODO add JDBC related interception
+    }
+    
     @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/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
index 3ba67c20849..b6ec60ed663 100644
--- a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
+++ b/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootService.java
@@ -31,7 +31,7 @@ public final class OpenTracingPluginBootService implements PluginBootService {
     private static final String KEY_OPENTRACING_TRACER_CLASS_NAME = "opentracing-tracer-class-name";
     
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
         String tracerClassName = pluginConfig.getProps().getProperty(KEY_OPENTRACING_TRACER_CLASS_NAME);
         Preconditions.checkNotNull(tracerClassName, "Can not find opentracing tracer implementation in you config");
         try {
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
index c2810fd1ca1..7a48daff238 100644
--- a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
@@ -26,6 +26,6 @@ public final class OpenTracingPluginDefinitionServiceTest {
     
     @Test
     public void assertDefine() {
-        assertThat(new OpenTracingPluginDefinitionService().install().size(), is(3));
+        assertThat(new OpenTracingPluginDefinitionService().install(true).size(), is(3));
     }
 }
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
index 0812d589cbc..ea4e890efc4 100644
--- a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
+++ b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/service/OpenTracingPluginBootServiceTest.java
@@ -32,7 +32,7 @@ public final class OpenTracingPluginBootServiceTest {
     
     @Test
     public void assertStart() {
-        openTracingPluginBootService.start(new PluginConfiguration("localhost", 8090, "", createProperties()));
+        openTracingPluginBootService.start(new PluginConfiguration("localhost", 8090, "", createProperties()), true);
         assertTrue(GlobalTracer.isRegistered());
     }
     
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
index 5c6dbb10177..af268658a9f 100644
--- 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
@@ -46,7 +46,7 @@ public final class ZipkinPluginDefinitionService extends AbstractPluginDefinitio
     private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice";
     
     @Override
-    public void defineInterceptors() {
+    public void defineProxyInterceptors() {
         defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS)
                 .aroundInstanceMethod(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME))
                 .implement(COMMAND_EXECUTOR_TASK_ADVICE_CLASS)
@@ -63,6 +63,11 @@ public final class ZipkinPluginDefinitionService extends AbstractPluginDefinitio
                 .build();
     }
     
+    @Override
+    public void defineJdbcInterceptors() {
+        // TODO add JDBC related interception
+    }
+    
     @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/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
index 42a965353b4..9e5c4ae5f49 100644
--- a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
+++ b/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootService.java
@@ -57,7 +57,7 @@ public final class ZipkinTracingPluginBootService implements PluginBootService {
     private Tracing tracing;
     
     @Override
-    public void start(final PluginConfiguration pluginConfig) {
+    public void start(final PluginConfiguration pluginConfig, final boolean isEnhancedForProxy) {
         pluginConfig.validate("Zipkin");
         Properties props = pluginConfig.getProps();
         String urlVersion = Optional.ofNullable(props.getProperty(KEY_URL_VERSION)).orElse(DEFAULT_URL_VERSION);
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
index b38b75cd663..6a9fbb6f4de 100644
--- a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
@@ -26,6 +26,6 @@ public final class ZipkinPluginDefinitionServiceTest {
     
     @Test
     public void assertDefine() {
-        assertThat(new ZipkinPluginDefinitionService().install().size(), is(3));
+        assertThat(new ZipkinPluginDefinitionService().install(true).size(), is(3));
     }
 }
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
index 906601d7c00..ada7b183dac 100644
--- a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
+++ b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/service/ZipkinTracingPluginBootServiceTest.java
@@ -33,7 +33,7 @@ public final class ZipkinTracingPluginBootServiceTest {
     
     @Test
     public void assertStart() throws ReflectiveOperationException {
-        zipkinTracingPluginBootService.start(new PluginConfiguration("localhost", 9441, "", new Properties()));
+        zipkinTracingPluginBootService.start(new PluginConfiguration("localhost", 9441, "", new Properties()), true);
         Field field = ZipkinTracingPluginBootService.class.getDeclaredField("tracing");
         field.setAccessible(true);
         Tracing tracing = (Tracing) field.get(zipkinTracingPluginBootService);