You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2022/12/17 03:43:32 UTC

[shardingsphere] branch master updated: Switch advice and advice executor (#22929)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new a22b9fac7f3 Switch advice and advice executor (#22929)
a22b9fac7f3 is described below

commit a22b9fac7f3e27ec271f426c6e439b9c86de2d50
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Dec 17 11:43:18 2022 +0800

    Switch advice and advice executor (#22929)
    
    * Refactor StaticMethodAdvice
    
    * Refactor InstanceMethodAdvice
    
    * Switch advice and advice executor
    
    * Clean codes
    
    * Add AdviceExecutor
    
    * Add AgentAdvice
---
 .../shardingsphere/agent/advice/AgentAdvice.java}  | 16 +---
 .../agent/advice}/MethodInvocationResult.java      |  2 +-
 .../agent/advice}/TargetAdviceObject.java          |  2 +-
 .../agent/advice/type/ConstructorAdvice.java}      |  9 ++-
 .../agent/advice/type/InstanceMethodAdvice.java}   | 11 +--
 .../agent/advice/type/StaticMethodAdvice.java}     |  9 ++-
 .../advice/AdviceExecutor.java}                    | 16 +---
 .../ConstructorAdviceExecutor.java}                | 17 +++--
 .../InstanceMethodAdviceExecutor.java}             | 89 +++++++++++++---------
 .../StaticMethodAdviceExecutor.java}               | 87 ++++++++++++---------
 .../agent/core/transformer/AgentTransformer.java   |  2 +-
 .../agent/core/transformer/MethodAdvisor.java      |  3 +-
 .../transformer/build/advise/AdviceFactory.java    |  4 +-
 .../build/advise/ProxyAdviceFactory.java           | 13 ++--
 .../builder/type/ConstructorAdvisorBuilder.java    | 11 ++-
 .../builder/type/InstanceMethodAdvisorBuilder.java | 11 ++-
 .../builder/type/StaticMethodAdvisorBuilder.java   | 11 ++-
 ...iceExecutor.java => MockConstructorAdvice.java} |  8 +-
 ...Executor.java => MockInstanceMethodAdvice.java} | 10 +--
 ....java => MockInstanceMethodRepeatedAdvice.java} |  8 +-
 ...ceExecutor.java => MockStaticMethodAdvice.java} |  8 +-
 .../ConstructorYamlAdvisorConfigurationTest.java   |  7 +-
 ...ceMethodAroundYamlAdvisorConfigurationTest.java |  7 +-
 ...icMethodAroundYamlAdvisorConfigurationTest.java |  9 ++-
 .../core/transformer/AgentTransformerTest.java     | 18 ++---
 ...tor.java => MetaDataContextsFactoryAdvice.java} |  6 +-
 .../BaseLoggingAdvisorDefinitionService.java       |  4 +-
 ...viceExecutor.java => ChannelHandlerAdvice.java} |  8 +-
 ...xecutor.java => CommandExecutorTaskAdvice.java} |  8 +-
 ...iceExecutor.java => SQLParserEngineAdvice.java} |  8 +-
 ...viceExecutor.java => SQLRouteEngineAdvice.java} |  8 +-
 ...nAdviceExecutor.java => TransactionAdvice.java} |  8 +-
 .../api/advice/ChannelHandlerAdviceTest.java       | 10 +--
 .../api/advice/CommandExecutorTaskAdviceTest.java  |  8 +-
 .../metrics/api/advice/MockTargetAdviceObject.java |  2 +-
 .../api/advice/SQLParserEngineAdviceTest.java      |  4 +-
 .../api/advice/SQLRouteEngineAdviceTest.java       |  4 +-
 .../metrics/api/advice/TransactionAdviceTest.java  |  8 +-
 .../tracing/core/advice/TracingAdviceEngine.java   | 20 ++---
 .../core/advice/adviser/TracingAdviser.java        |  6 +-
 .../adviser/impl/CommandExecutorTaskAdviser.java   |  6 +-
 .../adviser/impl/JDBCExecutorCallbackAdviser.java  |  6 +-
 .../adviser/impl/SQLParserEngineAdviser.java       |  6 +-
 .../agent/plugin/tracing/AgentRunner.java          |  2 +-
 .../AbstractCommandExecutorTaskAdviceTest.java     |  2 +-
 .../AbstractJDBCExecutorCallbackAdviceTest.java    |  2 +-
 .../advice/AbstractSQLParserEngineAdviceTest.java  |  2 +-
 ...xecutor.java => CommandExecutorTaskAdvice.java} |  8 +-
 ...ecutor.java => JDBCExecutorCallbackAdvice.java} |  8 +-
 ...iceExecutor.java => SQLParserEngineAdvice.java} |  8 +-
 .../definition/JaegerAdvisorDefinitionService.java |  6 +-
 .../advice/CommandExecutorTaskAdviceTest.java      |  4 +-
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  4 +-
 .../jaeger/advice/SQLParserEngineAdviceTest.java   |  4 +-
 ...xecutor.java => CommandExecutorTaskAdvice.java} |  8 +-
 ...ecutor.java => JDBCExecutorCallbackAdvice.java} |  8 +-
 ...iceExecutor.java => SQLParserEngineAdvice.java} |  8 +-
 ...enTelemetryTracingAdvisorDefinitionService.java |  6 +-
 .../advice/CommandExecutorTaskAdviceTest.java      |  6 +-
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  6 +-
 .../advice/SQLParserEngineAdviceTest.java          |  6 +-
 ...xecutor.java => CommandExecutorTaskAdvice.java} |  8 +-
 ...ecutor.java => JDBCExecutorCallbackAdvice.java} |  8 +-
 ...iceExecutor.java => SQLParserEngineAdvice.java} |  8 +-
 .../OpenTracingAdvisorDefinitionService.java       |  6 +-
 .../advice/CommandExecutorTaskAdviceTest.java      |  4 +-
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  4 +-
 .../opentracing/advice/MockTargetAdviceObject.java |  2 +-
 .../advice/SQLParserEngineAdviceTest.java          |  4 +-
 ...xecutor.java => CommandExecutorTaskAdvice.java} |  8 +-
 ...ecutor.java => JDBCExecutorCallbackAdvice.java} |  8 +-
 ...iceExecutor.java => SQLParserEngineAdvice.java} |  8 +-
 .../definition/ZipkinAdvisorDefinitionService.java |  6 +-
 .../advice/CommandExecutorTaskAdviceTest.java      |  6 +-
 .../advice/JDBCExecutorCallbackAdviceTest.java     |  6 +-
 .../zipkin/advice/SQLParserEngineAdviceTest.java   |  6 +-
 76 files changed, 359 insertions(+), 349 deletions(-)

diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/AgentAdvice.java
similarity index 69%
copy from agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
copy to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/AgentAdvice.java
index 7aaa6c642d1..7e788e2e4fe 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/AgentAdvice.java
@@ -15,20 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.transformer;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.description.method.MethodDescription;
+package org.apache.shardingsphere.agent.advice;
 
 /**
- * Method advisor.
+ * Agent advice.
  */
-@RequiredArgsConstructor
-@Getter
-public final class MethodAdvisor {
-    
-    private final MethodDescription pointcut;
-    
-    private final Object advice;
+public interface AgentAdvice {
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/MethodInvocationResult.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/MethodInvocationResult.java
similarity index 95%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/MethodInvocationResult.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/MethodInvocationResult.java
index 0a964810500..17fcaaab838 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/MethodInvocationResult.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/MethodInvocationResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin;
+package org.apache.shardingsphere.agent.advice;
 
 import lombok.Getter;
 
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/TargetAdviceObject.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/TargetAdviceObject.java
similarity index 95%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/TargetAdviceObject.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/TargetAdviceObject.java
index 88b86b90608..517edc770c2 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/TargetAdviceObject.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/TargetAdviceObject.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin;
+package org.apache.shardingsphere.agent.advice;
 
 /**
  * Wrapped class for target and provide a context to store variable during invocation.
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/ConstructorAdviceExecutor.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/ConstructorAdvice.java
similarity index 81%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/ConstructorAdviceExecutor.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/ConstructorAdvice.java
index 98acb7ff4d1..1c22c393e3f 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/ConstructorAdviceExecutor.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/ConstructorAdvice.java
@@ -15,14 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice.executor;
+package org.apache.shardingsphere.agent.advice.type;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.AgentAdvice;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 
 /**
- * Constructor advice executor.
+ * Constructor advice.
  */
-public interface ConstructorAdviceExecutor {
+public interface ConstructorAdvice extends AgentAdvice {
     
     /**
      * Intercept the target's constructor.
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/InstanceMethodAdviceExecutor.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/InstanceMethodAdvice.java
similarity index 87%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/InstanceMethodAdviceExecutor.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/InstanceMethodAdvice.java
index 3a8d474f30f..2d5f44488cd 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/InstanceMethodAdviceExecutor.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/InstanceMethodAdvice.java
@@ -15,17 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice.executor;
+package org.apache.shardingsphere.agent.advice.type;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.AgentAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 
 import java.lang.reflect.Method;
 
 /**
- * Instance method advice executor.
+ * Instance method advice.
  */
-public interface InstanceMethodAdviceExecutor {
+public interface InstanceMethodAdvice extends AgentAdvice {
     
     /**
      * Intercept the target method and weave the method before origin method.
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/StaticMethodAdviceExecutor.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/StaticMethodAdvice.java
similarity index 89%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/StaticMethodAdviceExecutor.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/StaticMethodAdvice.java
index 033e4c69f00..88ef2c6a167 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/executor/StaticMethodAdviceExecutor.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/advice/type/StaticMethodAdvice.java
@@ -15,16 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice.executor;
+package org.apache.shardingsphere.agent.advice.type;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.AgentAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 
 import java.lang.reflect.Method;
 
 /**
- * Static method advice executor.
+ * Static method advice.
  */
-public interface StaticMethodAdviceExecutor {
+public interface StaticMethodAdvice extends AgentAdvice {
     
     /**
      * Intercept the target method and weave the method before origin method.
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/AdviceExecutor.java
similarity index 69%
copy from agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
copy to agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/AdviceExecutor.java
index 7aaa6c642d1..af8c40f93cf 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/AdviceExecutor.java
@@ -15,20 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.transformer;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.description.method.MethodDescription;
+package org.apache.shardingsphere.agent.core.plugin.advice;
 
 /**
- * Method advisor.
+ * Advice executor.
  */
-@RequiredArgsConstructor
-@Getter
-public final class MethodAdvisor {
-    
-    private final MethodDescription pointcut;
-    
-    private final Object advice;
+public interface AdviceExecutor {
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorAdvice.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/ConstructorAdviceExecutor.java
similarity index 79%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorAdvice.java
rename to agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/ConstructorAdviceExecutor.java
index 7de8d423467..b0f97e31d43 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorAdvice.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/ConstructorAdviceExecutor.java
@@ -15,29 +15,30 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice;
+package org.apache.shardingsphere.agent.core.plugin.advice.type;
 
 import lombok.RequiredArgsConstructor;
 import net.bytebuddy.implementation.bind.annotation.AllArguments;
 import net.bytebuddy.implementation.bind.annotation.RuntimeType;
 import net.bytebuddy.implementation.bind.annotation.This;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.ConstructorAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.ConstructorAdvice;
 import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
 import org.apache.shardingsphere.agent.core.logging.LoggerFactory.Logger;
 import org.apache.shardingsphere.agent.core.plugin.PluginContext;
+import org.apache.shardingsphere.agent.core.plugin.advice.AdviceExecutor;
 
 import java.util.Collection;
 
 /**
- * Constructor advice.
+ * Constructor advice executor.
  */
 @RequiredArgsConstructor
-public final class ConstructorAdvice {
+public final class ConstructorAdviceExecutor implements AdviceExecutor {
     
-    private static final Logger LOGGER = LoggerFactory.getLogger(ConstructorAdvice.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ConstructorAdviceExecutor.class);
     
-    private final Collection<ConstructorAdviceExecutor> executors;
+    private final Collection<ConstructorAdvice> advices;
     
     /**
      * Intercept constructor.
@@ -50,7 +51,7 @@ public final class ConstructorAdvice {
         boolean adviceEnabled = PluginContext.isPluginEnabled();
         try {
             if (adviceEnabled) {
-                for (ConstructorAdviceExecutor each : executors) {
+                for (ConstructorAdvice each : advices) {
                     each.onConstructor(target, args);
                 }
             }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAdvice.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/InstanceMethodAdviceExecutor.java
similarity index 55%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAdvice.java
rename to agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/InstanceMethodAdviceExecutor.java
index 3f265d6b7b7..6d2ae154fad 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAdvice.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/InstanceMethodAdviceExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice;
+package org.apache.shardingsphere.agent.core.plugin.advice.type;
 
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -24,25 +24,26 @@ import net.bytebuddy.implementation.bind.annotation.Origin;
 import net.bytebuddy.implementation.bind.annotation.RuntimeType;
 import net.bytebuddy.implementation.bind.annotation.SuperCall;
 import net.bytebuddy.implementation.bind.annotation.This;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
 import org.apache.shardingsphere.agent.core.plugin.PluginContext;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.core.plugin.advice.AdviceExecutor;
 
 import java.lang.reflect.Method;
 import java.util.Collection;
 import java.util.concurrent.Callable;
 
 /**
- * Instance method advice.
+ * Instance method advice executor.
  */
 @RequiredArgsConstructor
-public final class InstanceMethodAdvice {
+public final class InstanceMethodAdviceExecutor implements AdviceExecutor {
     
-    private static final LoggerFactory.Logger LOGGER = LoggerFactory.getLogger(InstanceMethodAdvice.class);
+    private static final LoggerFactory.Logger LOGGER = LoggerFactory.getLogger(InstanceMethodAdviceExecutor.class);
     
-    private final Collection<InstanceMethodAdviceExecutor> executors;
+    private final Collection<InstanceMethodAdvice> advices;
     
     /**
      * Intercept instance method.
@@ -58,16 +59,8 @@ public final class InstanceMethodAdvice {
     public Object intercept(@This final TargetAdviceObject target, @Origin final Method method, @AllArguments final Object[] args, @SuperCall final Callable<?> callable) {
         MethodInvocationResult invocationResult = new MethodInvocationResult();
         boolean adviceEnabled = PluginContext.isPluginEnabled();
-        try {
-            if (adviceEnabled) {
-                for (InstanceMethodAdviceExecutor each : executors) {
-                    each.beforeMethod(target, method, args, invocationResult);
-                }
-            }
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            LOGGER.error("Failed to execute the pre-method of method[{}] in class[{}]", method.getName(), target.getClass(), ex);
+        if (adviceEnabled) {
+            interceptBefore(target, method, args, invocationResult);
         }
         Object result;
         try {
@@ -76,31 +69,51 @@ public final class InstanceMethodAdvice {
             // CHECKSTYLE:OFF
         } catch (final Throwable ex) {
             // CHECKSTYLE:ON
-            try {
-                if (adviceEnabled) {
-                    for (InstanceMethodAdviceExecutor each : executors) {
-                        each.onThrowing(target, method, args, ex);
-                    }
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ignored) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the error handler of method[{}] in class[{}]", method.getName(), target.getClass(), ex);
+            if (adviceEnabled) {
+                interceptThrow(target, method, args, ex);
             }
             throw ex;
         } finally {
-            try {
-                if (adviceEnabled) {
-                    for (InstanceMethodAdviceExecutor each : executors) {
-                        each.afterMethod(target, method, args, invocationResult);
-                    }
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ex) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the post-method of method[{}] in class[{}]", method.getName(), target.getClass(), ex);
+            if (adviceEnabled) {
+                interceptAfter(target, method, args, invocationResult);
             }
         }
         return invocationResult.isRebased() ? invocationResult.getResult() : result;
     }
+    
+    private void interceptBefore(final TargetAdviceObject target, final Method method, final Object[] args, final MethodInvocationResult invocationResult) {
+        try {
+            for (InstanceMethodAdvice each : advices) {
+                each.beforeMethod(target, method, args, invocationResult);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ex) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the pre-method of method `{}` in class `{}`.", method.getName(), target.getClass(), ex);
+        }
+    }
+    
+    private void interceptThrow(final TargetAdviceObject target, final Method method, final Object[] args, final Throwable ex) {
+        try {
+            for (InstanceMethodAdvice each : advices) {
+                each.onThrowing(target, method, args, ex);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ignored) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the error handler of method `{}` in class `{}`.", method.getName(), target.getClass(), ex);
+        }
+    }
+    
+    private void interceptAfter(final TargetAdviceObject target, final Method method, final Object[] args, final MethodInvocationResult invocationResult) {
+        try {
+            for (InstanceMethodAdvice each : advices) {
+                each.afterMethod(target, method, args, invocationResult);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ex) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the post-method of method `{}` in class `{}`.", method.getName(), target.getClass(), ex);
+        }
+    }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAdvice.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/StaticMethodAdviceExecutor.java
similarity index 56%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAdvice.java
rename to agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/StaticMethodAdviceExecutor.java
index 9e30d9ef18f..22869cf5b10 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAdvice.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/type/StaticMethodAdviceExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.agent.core.plugin.advice;
+package org.apache.shardingsphere.agent.core.plugin.advice.type;
 
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -23,24 +23,25 @@ import net.bytebuddy.implementation.bind.annotation.AllArguments;
 import net.bytebuddy.implementation.bind.annotation.Origin;
 import net.bytebuddy.implementation.bind.annotation.RuntimeType;
 import net.bytebuddy.implementation.bind.annotation.SuperCall;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.StaticMethodAdvice;
 import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
 import org.apache.shardingsphere.agent.core.plugin.PluginContext;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.StaticMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.core.plugin.advice.AdviceExecutor;
 
 import java.lang.reflect.Method;
 import java.util.Collection;
 import java.util.concurrent.Callable;
 
 /**
- * Static method advice.
+ * Static method advice executor.
  */
 @RequiredArgsConstructor
-public final class StaticMethodAdvice {
+public final class StaticMethodAdviceExecutor implements AdviceExecutor {
     
-    private static final LoggerFactory.Logger LOGGER = LoggerFactory.getLogger(StaticMethodAdvice.class);
+    private static final LoggerFactory.Logger LOGGER = LoggerFactory.getLogger(StaticMethodAdviceExecutor.class);
     
-    private final Collection<StaticMethodAdviceExecutor> executors;
+    private final Collection<StaticMethodAdvice> executors;
     
     /**
      * Intercept static method.
@@ -56,16 +57,8 @@ public final class StaticMethodAdvice {
     public Object intercept(@Origin final Class<?> klass, @Origin final Method method, @AllArguments final Object[] args, @SuperCall final Callable<?> callable) {
         MethodInvocationResult invocationResult = new MethodInvocationResult();
         boolean adviceEnabled = PluginContext.isPluginEnabled();
-        try {
-            if (adviceEnabled) {
-                for (StaticMethodAdviceExecutor each : executors) {
-                    each.beforeMethod(klass, method, args, invocationResult);
-                }
-            }
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            LOGGER.error("Failed to execute the pre-method of method[{}] in class[{}]", method.getName(), klass, ex);
+        if (adviceEnabled) {
+            interceptBefore(klass, method, args, invocationResult);
         }
         Object result;
         try {
@@ -74,31 +67,51 @@ public final class StaticMethodAdvice {
             // CHECKSTYLE:OFF
         } catch (final Throwable ex) {
             // CHECKSTYLE:ON
-            try {
-                if (adviceEnabled) {
-                    for (StaticMethodAdviceExecutor each : executors) {
-                        each.onThrowing(klass, method, args, ex);
-                    }
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ignored) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the error handler of method[{}] in class[{}]", method.getName(), klass, ex);
+            if (adviceEnabled) {
+                interceptThrow(klass, method, args, ex);
             }
             throw ex;
         } finally {
-            try {
-                if (adviceEnabled) {
-                    for (StaticMethodAdviceExecutor each : executors) {
-                        each.afterMethod(klass, method, args, invocationResult);
-                    }
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ex) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the post-method of method[{}] in class[{}]", method.getName(), klass, ex);
+            if (adviceEnabled) {
+                interceptAfter(klass, method, args, invocationResult);
             }
         }
         return invocationResult.isRebased() ? invocationResult.getResult() : result;
     }
+    
+    private void interceptBefore(final Class<?> klass, final Method method, final Object[] args, final MethodInvocationResult invocationResult) {
+        try {
+            for (StaticMethodAdvice each : executors) {
+                each.beforeMethod(klass, method, args, invocationResult);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ex) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the pre-method of method `{}` in class `{}`.", method.getName(), klass, ex);
+        }
+    }
+    
+    private void interceptThrow(final Class<?> klass, final Method method, final Object[] args, final Throwable ex) {
+        try {
+            for (StaticMethodAdvice each : executors) {
+                each.onThrowing(klass, method, args, ex);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ignored) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the error handler of method `{}` in class `{}`.", method.getName(), klass, ex);
+        }
+    }
+    
+    private void interceptAfter(final Class<?> klass, final Method method, final Object[] args, final MethodInvocationResult invocationResult) {
+        try {
+            for (StaticMethodAdvice each : executors) {
+                each.afterMethod(klass, method, args, invocationResult);
+            }
+            // CHECKSTYLE:OFF
+        } catch (final Throwable ex) {
+            // CHECKSTYLE:ON
+            LOGGER.error("Failed to execute the post-method of method `{}` in class `{}`.", method.getName(), klass, ex);
+        }
+    }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
index 2d4a80cbcb0..f4d14fbf92d 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
@@ -26,7 +26,7 @@ import net.bytebuddy.jar.asm.Opcodes;
 import net.bytebuddy.utility.JavaModule;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.core.transformer.build.MethodAdvisorBuildEngine;
 import org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import org.apache.shardingsphere.agent.core.transformer.build.builder.type.ConstructorAdvisorBuilder;
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
index 7aaa6c642d1..483eee1f3dd 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/MethodAdvisor.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.agent.core.transformer;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import net.bytebuddy.description.method.MethodDescription;
+import org.apache.shardingsphere.agent.core.plugin.advice.AdviceExecutor;
 
 /**
  * Method advisor.
@@ -30,5 +31,5 @@ public final class MethodAdvisor {
     
     private final MethodDescription pointcut;
     
-    private final Object advice;
+    private final AdviceExecutor adviceExecutor;
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/AdviceFactory.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/AdviceFactory.java
index 72a2f0ae6cc..b3d261b71ef 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/AdviceFactory.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/AdviceFactory.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.agent.core.transformer.build.advise;
 
+import org.apache.shardingsphere.agent.advice.AgentAdvice;
 import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
 
 import java.util.Map;
@@ -42,10 +43,9 @@ public final class AdviceFactory {
      * Get advice.
      *
      * @param adviceClassName advice class name
-     * @param <T> type of advice
      * @return got advance
      */
-    public <T> T getAdvice(final String adviceClassName) {
+    public AgentAdvice getAdvice(final String adviceClassName) {
         return isEnhancedForProxy ? proxyAdviceFactory.getAdvice(adviceClassName) : jdbcAdviceFactory.getAdvice(adviceClassName);
     }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/ProxyAdviceFactory.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/ProxyAdviceFactory.java
index f83a55fdb4e..4750a222c76 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/ProxyAdviceFactory.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/advise/ProxyAdviceFactory.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.agent.core.transformer.build.advise;
 
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
+import org.apache.shardingsphere.agent.advice.AgentAdvice;
 import org.apache.shardingsphere.agent.core.classloader.AgentClassLoader;
 
 import java.util.Map;
@@ -30,22 +31,20 @@ import java.util.concurrent.ConcurrentHashMap;
 @RequiredArgsConstructor
 public final class ProxyAdviceFactory {
     
-    private static final Map<String, Object> CACHED_ADVICES = new ConcurrentHashMap<>();
+    private static final Map<String, AgentAdvice> CACHED_ADVICES = new ConcurrentHashMap<>();
     
     /**
      * Get advice.
      *
      * @param adviceClassName advice class name
-     * @param <T> type of advice
      * @return got advance
      */
-    @SuppressWarnings("unchecked")
-    public <T> T getAdvice(final String adviceClassName) {
-        return (T) CACHED_ADVICES.computeIfAbsent(adviceClassName, this::createAdviceForProxy);
+    public AgentAdvice getAdvice(final String adviceClassName) {
+        return CACHED_ADVICES.computeIfAbsent(adviceClassName, this::createAdviceForProxy);
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
-    private Object createAdviceForProxy(final String adviceClassName) {
-        return Class.forName(adviceClassName, true, AgentClassLoader.getClassLoader()).getDeclaredConstructor().newInstance();
+    private AgentAdvice createAdviceForProxy(final String adviceClassName) {
+        return (AgentAdvice) Class.forName(adviceClassName, true, AgentClassLoader.getClassLoader()).getDeclaredConstructor().newInstance();
     }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
index 6b06f6b3d0c..06006c7b469 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
@@ -23,9 +23,9 @@ import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.implementation.SuperMethodCall;
 import net.bytebuddy.matcher.ElementMatchers;
+import org.apache.shardingsphere.agent.advice.type.ConstructorAdvice;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.ConstructorAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.advice.ConstructorAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.ConstructorAdviceExecutor;
 import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
 import org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
@@ -45,7 +45,7 @@ public final class ConstructorAdvisorBuilder implements MethodAdvisorBuilder {
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor methodAdvisor) {
         return builder.constructor(ElementMatchers.is(methodAdvisor.getPointcut()))
-                .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdvice())));
+                .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdviceExecutor())));
     }
     
     @Override
@@ -55,8 +55,7 @@ public final class ConstructorAdvisorBuilder implements MethodAdvisorBuilder {
     
     @Override
     public MethodAdvisor getMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
-        Collection<ConstructorAdviceExecutor> adviceExecutors = advisorConfigs
-                .stream().map(MethodAdvisorConfiguration::getAdviceClassName).map(each -> (ConstructorAdviceExecutor) adviceFactory.getAdvice(each)).collect(Collectors.toList());
-        return new MethodAdvisor(methodDescription, new ConstructorAdvice(adviceExecutors));
+        Collection<ConstructorAdvice> advices = advisorConfigs.stream().map(each -> (ConstructorAdvice) adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
+        return new MethodAdvisor(methodDescription, new ConstructorAdviceExecutor(advices));
     }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
index 17d57b0d711..32844530b47 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
@@ -23,8 +23,8 @@ import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.InstanceMethodAdviceExecutor;
 import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
 import org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
@@ -43,7 +43,7 @@ public final class InstanceMethodAdvisorBuilder implements MethodAdvisorBuilder
     
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor methodAdvisor) {
-        return builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdvice()));
+        return builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdviceExecutor()));
     }
     
     @Override
@@ -53,8 +53,7 @@ public final class InstanceMethodAdvisorBuilder implements MethodAdvisorBuilder
     
     @Override
     public MethodAdvisor getMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
-        Collection<InstanceMethodAdviceExecutor> adviceExecutors = advisorConfigs
-                .stream().<InstanceMethodAdviceExecutor>map(each -> adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
-        return new MethodAdvisor(methodDescription, new InstanceMethodAdvice(adviceExecutors));
+        Collection<InstanceMethodAdvice> advices = advisorConfigs.stream().map(each -> (InstanceMethodAdvice) adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
+        return new MethodAdvisor(methodDescription, new InstanceMethodAdviceExecutor(advices));
     }
 }
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
index 859041fb72e..c42818241e8 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
@@ -22,9 +22,9 @@ import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
 import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.matcher.ElementMatchers;
+import org.apache.shardingsphere.agent.advice.type.StaticMethodAdvice;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.StaticMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.advice.StaticMethodAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.StaticMethodAdviceExecutor;
 import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
 import org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
@@ -43,7 +43,7 @@ public final class StaticMethodAdvisorBuilder implements MethodAdvisorBuilder {
     
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor methodAdvisor) {
-        return builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdvice()));
+        return builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdviceExecutor()));
     }
     
     @Override
@@ -53,8 +53,7 @@ public final class StaticMethodAdvisorBuilder implements MethodAdvisorBuilder {
     
     @Override
     public MethodAdvisor getMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
-        Collection<StaticMethodAdviceExecutor> adviceExecutors = advisorConfigs
-                .stream().<StaticMethodAdviceExecutor>map(each -> adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
-        return new MethodAdvisor(methodDescription, new StaticMethodAdvice(adviceExecutors));
+        Collection<StaticMethodAdvice> advices = advisorConfigs.stream().map(each -> (StaticMethodAdvice) adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
+        return new MethodAdvisor(methodDescription, new StaticMethodAdviceExecutor(advices));
     }
 }
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdviceExecutor.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
similarity index 82%
rename from agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdviceExecutor.java
rename to agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
index 164fc3ad0fe..a4a3f33e1a3 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdviceExecutor.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
@@ -18,18 +18,18 @@
 package org.apache.shardingsphere.agent.core.mock.advice;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.ConstructorAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.ConstructorAdvice;
 
 import java.util.List;
 import java.util.Optional;
 
 @RequiredArgsConstructor
-public final class MockConstructorAdviceExecutor implements ConstructorAdviceExecutor {
+public final class MockConstructorAdvice implements ConstructorAdvice {
     
     private final List<String> queues;
     
-    public MockConstructorAdviceExecutor() {
+    public MockConstructorAdvice() {
         this(null);
     }
     
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdviceExecutor.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdvice.java
similarity index 83%
rename from agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdviceExecutor.java
rename to agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdvice.java
index 481fb82ea12..3e867f5e834 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdviceExecutor.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAdvice.java
@@ -18,20 +18,20 @@
 package org.apache.shardingsphere.agent.core.mock.advice;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 
 import java.lang.reflect.Method;
 import java.util.List;
 
 @RequiredArgsConstructor
 @SuppressWarnings("unchecked")
-public final class MockInstanceMethodAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class MockInstanceMethodAdvice implements InstanceMethodAdvice {
     
     private final boolean rebase;
     
-    public MockInstanceMethodAdviceExecutor() {
+    public MockInstanceMethodAdvice() {
         this(false);
     }
     
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdviceExecutor.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdvice.java
similarity index 83%
rename from agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdviceExecutor.java
rename to agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdvice.java
index dc78f0a1343..9cec9e5021a 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdviceExecutor.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodRepeatedAdvice.java
@@ -17,15 +17,15 @@
 
 package org.apache.shardingsphere.agent.core.mock.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 
 import java.lang.reflect.Method;
 import java.util.List;
 
 @SuppressWarnings("unchecked")
-public final class MockInstanceMethodRepeatedAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class MockInstanceMethodRepeatedAdvice implements InstanceMethodAdvice {
     
     @Override
     public void beforeMethod(final TargetAdviceObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdviceExecutor.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdvice.java
similarity index 86%
rename from agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdviceExecutor.java
rename to agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdvice.java
index 264ead168f8..ff72aa0013e 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdviceExecutor.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAdvice.java
@@ -18,19 +18,19 @@
 package org.apache.shardingsphere.agent.core.mock.advice;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.StaticMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.StaticMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 
 import java.lang.reflect.Method;
 import java.util.List;
 
 @RequiredArgsConstructor
 @SuppressWarnings("unchecked")
-public final class MockStaticMethodAdviceExecutor implements StaticMethodAdviceExecutor {
+public final class MockStaticMethodAdvice implements StaticMethodAdvice {
     
     private final boolean rebase;
     
-    public MockStaticMethodAdviceExecutor() {
+    public MockStaticMethodAdvice() {
         this(false);
     }
     
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorYamlAdvisorConfigurationTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorYamlAdvisorConfigurationTest.java
index b01eaa11a7c..8c6568abee9 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorYamlAdvisorConfigurationTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorYamlAdvisorConfigurationTest.java
@@ -27,10 +27,11 @@ import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.implementation.SuperMethodCall;
 import net.bytebuddy.jar.asm.Opcodes;
 import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.core.logging.LoggingListener;
-import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdviceExecutor;
+import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
 import org.apache.shardingsphere.agent.core.mock.material.ConstructorMaterial;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.ConstructorAdviceExecutor;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -70,7 +71,7 @@ public final class ConstructorYamlAdvisorConfigurationTest {
                                 .intercept(FieldAccessor.ofField(EXTRA_DATA))
                                 .constructor(ElementMatchers.isConstructor())
                                 .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration()
-                                        .to(new ConstructorAdvice(Collections.singleton(new MockConstructorAdviceExecutor(QUEUE))))));
+                                        .to(new ConstructorAdviceExecutor(Collections.singleton(new MockConstructorAdvice(QUEUE))))));
                     }
                     return builder;
                 })
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAroundYamlAdvisorConfigurationTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAroundYamlAdvisorConfigurationTest.java
index 2753afdcdc1..27e496bf917 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAroundYamlAdvisorConfigurationTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/InstanceMethodAroundYamlAdvisorConfigurationTest.java
@@ -27,9 +27,10 @@ import net.bytebuddy.implementation.FieldAccessor;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.jar.asm.Opcodes;
 import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAdvice;
 import org.apache.shardingsphere.agent.core.mock.material.InstanceMaterial;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.InstanceMethodAdviceExecutor;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -96,7 +97,7 @@ public final class InstanceMethodAroundYamlAdvisorConfigurationTest {
         InstanceMaterial material = new ByteBuddy()
                 .subclass(InstanceMaterial.class)
                 .method(ElementMatchers.named(methodName))
-                .intercept(MethodDelegation.withDefaultConfiguration().to(new InstanceMethodAdvice(Collections.singleton(new MockInstanceMethodAdviceExecutor(rebase)))))
+                .intercept(MethodDelegation.withDefaultConfiguration().to(new InstanceMethodAdviceExecutor(Collections.singleton(new MockInstanceMethodAdvice(rebase)))))
                 .make()
                 .load(new MockClassLoader())
                 .getLoaded()
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundYamlAdvisorConfigurationTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundYamlAdvisorConfigurationTest.java
index 0fa230aa3b7..76cf15ba36e 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundYamlAdvisorConfigurationTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundYamlAdvisorConfigurationTest.java
@@ -27,9 +27,10 @@ import net.bytebuddy.implementation.FieldAccessor;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.jar.asm.Opcodes;
 import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAdvice;
 import org.apache.shardingsphere.agent.core.mock.material.StaticMaterial;
+import org.apache.shardingsphere.agent.core.plugin.advice.type.StaticMethodAdviceExecutor;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -83,9 +84,9 @@ public final class StaticMethodAroundYamlAdvisorConfigurationTest {
                                 .implement(TargetAdviceObject.class)
                                 .intercept(FieldAccessor.ofField(EXTRA_DATA))
                                 .method(ElementMatchers.named("staticMockWithException"))
-                                .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAdvice(Collections.singleton(new MockStaticMethodAdviceExecutor(false)))))
+                                .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAdviceExecutor(Collections.singleton(new MockStaticMethodAdvice(false)))))
                                 .method(ElementMatchers.named("staticMock"))
-                                .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAdvice(Collections.singleton(new MockStaticMethodAdviceExecutor(true)))));
+                                .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAdviceExecutor(Collections.singleton(new MockStaticMethodAdvice(true)))));
                     }
                     return builder;
                 })
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
index 598c663c574..ccb6a832aaa 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
@@ -27,10 +27,10 @@ import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
 import org.apache.shardingsphere.agent.core.classloader.AgentClassLoader;
 import org.apache.shardingsphere.agent.core.logging.LoggingListener;
-import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdviceExecutor;
-import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodRepeatedAdviceExecutor;
-import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodRepeatedAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAdvice;
 import org.apache.shardingsphere.agent.core.mock.material.Material;
 import org.apache.shardingsphere.agent.core.mock.material.RepeatedAdviceMaterial;
 import org.junit.After;
@@ -76,16 +76,16 @@ public final class AgentTransformerTest {
     
     private static AdvisorConfiguration createAdvisorConfiguration() {
         AdvisorConfiguration result = new AdvisorConfiguration("org.apache.shardingsphere.agent.core.mock.material.Material");
-        result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.takesArguments(1), MockConstructorAdviceExecutor.class.getTypeName()));
-        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAdviceExecutor.class.getTypeName()));
-        result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("staticMock"), MockStaticMethodAdviceExecutor.class.getTypeName()));
+        result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.takesArguments(1), MockConstructorAdvice.class.getTypeName()));
+        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAdvice.class.getTypeName()));
+        result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("staticMock"), MockStaticMethodAdvice.class.getTypeName()));
         return result;
     }
     
     private static AdvisorConfiguration createAdvisorConfigurationInTwice() {
         AdvisorConfiguration result = new AdvisorConfiguration("org.apache.shardingsphere.agent.core.mock.material.RepeatedAdviceMaterial");
-        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAdviceExecutor.class.getTypeName()));
-        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodRepeatedAdviceExecutor.class.getTypeName()));
+        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAdvice.class.getTypeName()));
+        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodRepeatedAdvice.class.getTypeName()));
         return result;
     }
     
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdviceExecutor.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdvice.java
similarity index 86%
rename from agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdviceExecutor.java
rename to agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdvice.java
index d474878d048..4bd08e0f8f7 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdviceExecutor.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/MetaDataContextsFactoryAdvice.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.agent.plugin.logging.base.advice;
 
 import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.StaticMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.StaticMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.logging.base.threadlocal.ElapsedTimeThreadLocal;
 
 import java.lang.reflect.Method;
@@ -28,7 +28,7 @@ import java.lang.reflect.Method;
  * Schema meta data loader advice executor.
  */
 @Slf4j
-public final class MetaDataContextsFactoryAdviceExecutor implements StaticMethodAdviceExecutor {
+public final class MetaDataContextsFactoryAdvice implements StaticMethodAdvice {
     
     @Override
     public void beforeMethod(final Class<?> clazz, final Method method, final Object[] args, final MethodInvocationResult result) {
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
index 907f32a5f8e..9ea2aebc250 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
@@ -21,7 +21,7 @@ import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
 import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
-import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdviceExecutor;
+import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdvice;
 import org.apache.shardingsphere.agent.spi.advisor.AdvisorDefinitionService;
 
 import java.util.Collection;
@@ -36,7 +36,7 @@ public final class BaseLoggingAdvisorDefinitionService implements AdvisorDefinit
     
     private static final String SCHEMA_METADATA_LOADER_METHOD_NAME = "create";
     
-    private static final String SCHEMA_METADATA_LOADER_ADVICE_CLASS = MetaDataContextsFactoryAdviceExecutor.class.getName();
+    private static final String SCHEMA_METADATA_LOADER_ADVICE_CLASS = MetaDataContextsFactoryAdvice.class.getName();
     
     @Override
     public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations() {
diff --git a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceExecutor.java b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
similarity index 86%
rename from agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceExecutor.java
rename to agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
index 46b3becff70..9a5d608636c 100644
--- a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceExecutor.java
+++ b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.MetricsWrapper;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
@@ -29,7 +29,7 @@ import java.lang.reflect.Method;
 /**
  * Channel handler advice executor.
  */
-public final class ChannelHandlerAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class ChannelHandlerAdvice implements InstanceMethodAdvice {
     
     public static final String CHANNEL_READ = "channelRead";
     
diff --git a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceExecutor.java b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
similarity index 88%
rename from agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceExecutor.java
rename to agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
index 675738f36ba..4891a429e4c 100644
--- a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceExecutor.java
+++ b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.MetricsWrapper;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
@@ -30,7 +30,7 @@ import java.lang.reflect.Method;
 /**
  * Command executor task advice executor.
  */
-public final class CommandExecutorTaskAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAdvice {
     
     public static final String COMMAND_EXECUTOR_RUN = "run";
     
diff --git a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceExecutor.java b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdvice.java
similarity index 93%
rename from agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceExecutor.java
rename to agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdvice.java
index 56350545861..d036506bd04 100644
--- a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceExecutor.java
+++ b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdvice.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.MetricsWrapper;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
@@ -41,7 +41,7 @@ import java.lang.reflect.Method;
 /**
  * SQL parse engine advice executor.
  */
-public final class SQLParserEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class SQLParserEngineAdvice implements InstanceMethodAdvice {
     
     static {
         MetricsPool.create(MetricIds.PARSE_SQL_INSERT);
diff --git a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceExecutor.java b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
similarity index 92%
rename from agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceExecutor.java
rename to agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
index 1667fcd7fca..a7887e19593 100644
--- a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceExecutor.java
+++ b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.MetricsWrapper;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
@@ -39,7 +39,7 @@ import java.util.Collection;
 /**
  * SQL route engine advice executor.
  */
-public final class SQLRouteEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class SQLRouteEngineAdvice implements InstanceMethodAdvice {
     
     static {
         MetricsPool.create(MetricIds.ROUTE_SQL_INSERT);
diff --git a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceExecutor.java b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
similarity index 85%
rename from agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceExecutor.java
rename to agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
index 38ed1975628..c47604bb338 100644
--- a/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceExecutor.java
+++ b/agent/plugins/metrics/api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.MetricsWrapper;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
@@ -29,7 +29,7 @@ import java.lang.reflect.Method;
 /**
  * Transaction advice executor.
  */
-public final class TransactionAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class TransactionAdvice implements InstanceMethodAdvice {
     
     public static final String COMMIT = "commit";
     
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
index d565c64c3d8..8f23b0d665b 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when;
 @RunWith(MockitoJUnitRunner.class)
 public final class ChannelHandlerAdviceTest extends MetricsAdviceBaseTest {
     
-    private final ChannelHandlerAdviceExecutor channelHandlerAdvice = new ChannelHandlerAdviceExecutor();
+    private final ChannelHandlerAdvice channelHandlerAdvice = new ChannelHandlerAdvice();
     
     @Mock
     private Method channelRead;
@@ -49,9 +49,9 @@ public final class ChannelHandlerAdviceTest extends MetricsAdviceBaseTest {
     
     @Test
     public void assertMethod() {
-        when(channelRead.getName()).thenReturn(ChannelHandlerAdviceExecutor.CHANNEL_READ);
-        when(channelActive.getName()).thenReturn(ChannelHandlerAdviceExecutor.CHANNEL_ACTIVE);
-        when(channelInactive.getName()).thenReturn(ChannelHandlerAdviceExecutor.CHANNEL_INACTIVE);
+        when(channelRead.getName()).thenReturn(ChannelHandlerAdvice.CHANNEL_READ);
+        when(channelActive.getName()).thenReturn(ChannelHandlerAdvice.CHANNEL_ACTIVE);
+        when(channelInactive.getName()).thenReturn(ChannelHandlerAdvice.CHANNEL_INACTIVE);
         MockTargetAdviceObject targetObject = new MockTargetAdviceObject();
         channelHandlerAdvice.beforeMethod(targetObject, channelRead, new Object[]{}, new MethodInvocationResult());
         channelHandlerAdvice.beforeMethod(targetObject, channelActive, new Object[]{}, new MethodInvocationResult());
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
index cbee1e48d9e..47c1e60568f 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when;
 @RunWith(MockitoJUnitRunner.class)
 public final class CommandExecutorTaskAdviceTest extends MetricsAdviceBaseTest {
     
-    private final CommandExecutorTaskAdviceExecutor commandExecutorTaskAdvice = new CommandExecutorTaskAdviceExecutor();
+    private final CommandExecutorTaskAdvice commandExecutorTaskAdvice = new CommandExecutorTaskAdvice();
     
     @Mock
     private Method run;
@@ -46,7 +46,7 @@ public final class CommandExecutorTaskAdviceTest extends MetricsAdviceBaseTest {
     
     @Test
     public void assertExecuteLatency() {
-        when(run.getName()).thenReturn(CommandExecutorTaskAdviceExecutor.COMMAND_EXECUTOR_RUN);
+        when(run.getName()).thenReturn(CommandExecutorTaskAdvice.COMMAND_EXECUTOR_RUN);
         MockTargetAdviceObject targetObject = new MockTargetAdviceObject();
         commandExecutorTaskAdvice.beforeMethod(targetObject, run, new Object[]{}, new MethodInvocationResult());
         try {
@@ -62,7 +62,7 @@ public final class CommandExecutorTaskAdviceTest extends MetricsAdviceBaseTest {
     
     @Test
     public void assertExecuteErrorTotal() {
-        when(processException.getName()).thenReturn(CommandExecutorTaskAdviceExecutor.COMMAND_EXECUTOR_EXCEPTION);
+        when(processException.getName()).thenReturn(CommandExecutorTaskAdvice.COMMAND_EXECUTOR_EXCEPTION);
         MockTargetAdviceObject targetObject = new MockTargetAdviceObject();
         commandExecutorTaskAdvice.afterMethod(targetObject, processException, new Object[]{}, new MethodInvocationResult());
         FixtureWrapper requestWrapper = (FixtureWrapper) MetricsPool.get(MetricIds.PROXY_EXECUTE_ERROR).get();
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetAdviceObject.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetAdviceObject.java
index 2397926a638..8275c01a97b 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetAdviceObject.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetAdviceObject.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 
 public final class MockTargetAdviceObject implements TargetAdviceObject {
     
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
index 09fbcb05ff4..9bfe17cf3ec 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
@@ -105,7 +105,7 @@ public final class SQLParserEngineAdviceTest extends MetricsAdviceBaseTest {
         MockTargetAdviceObject targetObject = new MockTargetAdviceObject();
         MethodInvocationResult result = new MethodInvocationResult();
         result.rebase(sqlStatement);
-        new SQLParserEngineAdviceExecutor().afterMethod(targetObject, mock(Method.class), new Object[]{}, result);
+        new SQLParserEngineAdvice().afterMethod(targetObject, mock(Method.class), new Object[]{}, result);
         assertTrue(MetricsPool.get(metricIds).isPresent());
         assertThat(((FixtureWrapper) MetricsPool.get(metricIds).get()).getFixtureValue(), is(1.0));
     }
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceTest.java
index fc1a9823151..f9d34caea32 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdviceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.mock;
 
 public final class SQLRouteEngineAdviceTest extends MetricsAdviceBaseTest {
     
-    private final SQLRouteEngineAdviceExecutor sqlRouteEngineAdvice = new SQLRouteEngineAdviceExecutor();
+    private final SQLRouteEngineAdvice sqlRouteEngineAdvice = new SQLRouteEngineAdvice();
     
     @Test
     public void assertInsertRoute() {
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
index 4379b003e85..095a5c1bc66 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.metrics.api.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
 import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
 import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when;
 @RunWith(MockitoJUnitRunner.class)
 public final class TransactionAdviceTest extends MetricsAdviceBaseTest {
     
-    private final TransactionAdviceExecutor transactionAdvice = new TransactionAdviceExecutor();
+    private final TransactionAdvice transactionAdvice = new TransactionAdvice();
     
     @Mock
     private Method commit;
@@ -46,8 +46,8 @@ public final class TransactionAdviceTest extends MetricsAdviceBaseTest {
     
     @Test
     public void assertMethod() {
-        when(commit.getName()).thenReturn(TransactionAdviceExecutor.COMMIT);
-        when(rollback.getName()).thenReturn(TransactionAdviceExecutor.ROLLBACK);
+        when(commit.getName()).thenReturn(TransactionAdvice.COMMIT);
+        when(rollback.getName()).thenReturn(TransactionAdvice.ROLLBACK);
         MockTargetAdviceObject targetObject = new MockTargetAdviceObject();
         transactionAdvice.beforeMethod(targetObject, commit, new Object[]{}, new MethodInvocationResult());
         transactionAdvice.beforeMethod(targetObject, rollback, new Object[]{}, new MethodInvocationResult());
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
index 3c443ec3577..02deb9d4564 100644
--- 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
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 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;
@@ -39,19 +39,19 @@ public final class TracingAdviceEngine {
     /**
      * Get proxy tracing advisor configurations.
      * 
-     * @param commandExecutorTaskAdviceExecutor command executor task advice executor
-     * @param sqlParserEngineAdviceExecutor SQL parser engine advice executor
-     * @param jdbcExecutorCallbackAdviceExecutor JDBC executor callback advice executor
+     * @param commandExecutorTaskAdvice command executor task advice
+     * @param sqlParserEngineAdvice SQL parser engine advice
+     * @param jdbcExecutorCallbackAdvice JDBC executor callback advice
      * @return got configurations
      */
-    public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations(final Class<? extends InstanceMethodAdviceExecutor> commandExecutorTaskAdviceExecutor,
-                                                                          final Class<? extends InstanceMethodAdviceExecutor> sqlParserEngineAdviceExecutor,
-                                                                          final Class<? extends InstanceMethodAdviceExecutor> jdbcExecutorCallbackAdviceExecutor) {
+    public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations(final Class<? extends InstanceMethodAdvice> commandExecutorTaskAdvice,
+                                                                          final Class<? extends InstanceMethodAdvice> sqlParserEngineAdvice,
+                                                                          final Class<? extends InstanceMethodAdvice> jdbcExecutorCallbackAdvice) {
         // TODO load from YAML, please ref metrics
         Collection<AdvisorConfiguration> result = new LinkedList<>();
-        result.add(new CommandExecutorTaskAdviser(type).getAdvisorConfiguration(commandExecutorTaskAdviceExecutor));
-        result.add(new SQLParserEngineAdviser(type).getAdvisorConfiguration(sqlParserEngineAdviceExecutor));
-        result.add(new JDBCExecutorCallbackAdviser(type).getAdvisorConfiguration(jdbcExecutorCallbackAdviceExecutor));
+        result.add(new CommandExecutorTaskAdviser(type).getAdvisorConfiguration(commandExecutorTaskAdvice));
+        result.add(new SQLParserEngineAdviser(type).getAdvisorConfiguration(sqlParserEngineAdvice));
+        result.add(new JDBCExecutorCallbackAdviser(type).getAdvisorConfiguration(jdbcExecutorCallbackAdvice));
         return result;
     }
     
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
index bf2874df926..1f94c397a2e 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/TracingAdviser.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser;
 
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 
 /**
@@ -28,8 +28,8 @@ public interface TracingAdviser {
     /**
      * Get advisor configuration.
      * 
-     * @param adviceExecutorClass instance method around advice class
+     * @param adviceClass instance method advice class
      * @return advisor configuration
      */
-    AdvisorConfiguration getAdvisorConfiguration(Class<? extends InstanceMethodAdviceExecutor> adviceExecutorClass);
+    AdvisorConfiguration getAdvisorConfiguration(Class<? extends InstanceMethodAdvice> adviceClass);
 }
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
index c0f9a56dcec..704c0a90922 100644
--- 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
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
 
@@ -38,9 +38,9 @@ public final class CommandExecutorTaskAdviser implements TracingAdviser {
     private final String type;
     
     @Override
-    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdviceExecutor> adviceExecutorClass) {
+    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdvice> adviceClass) {
         AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
-        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), adviceExecutorClass.getName()));
+        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), adviceClass.getName()));
         return result;
     }
 }
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
index 2a386f24c20..f813878bc1c 100644
--- 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
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
 
@@ -40,10 +40,10 @@ public final class JDBCExecutorCallbackAdviser implements TracingAdviser {
     private final String type;
     
     @Override
-    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdviceExecutor> adviceExecutorClass) {
+    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdvice> adviceClass) {
         AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
         result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(
-                ElementMatchers.named(TARGET_METHOD).and(ElementMatchers.takesArgument(0, ElementMatchers.named(TARGET_METHOD_FIRST_PARAM))), adviceExecutorClass.getName()));
+                ElementMatchers.named(TARGET_METHOD).and(ElementMatchers.takesArgument(0, ElementMatchers.named(TARGET_METHOD_FIRST_PARAM))), adviceClass.getName()));
         return result;
     }
 }
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
index 257b50f279e..c4c09b51fb4 100644
--- 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
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
 
@@ -38,9 +38,9 @@ public final class SQLParserEngineAdviser implements TracingAdviser {
     private final String type;
     
     @Override
-    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdviceExecutor> adviceExecutorClass) {
+    public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAdvice> adviceClass) {
         AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
-        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), adviceExecutorClass.getName()));
+        result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), adviceClass.getName()));
         return result;
     }
 }
diff --git a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
index b5c70492423..e4d05ca5a5a 100644
--- a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
+++ b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/AgentRunner.java
@@ -25,7 +25,7 @@ import net.bytebuddy.dynamic.scaffold.TypeValidation;
 import net.bytebuddy.implementation.FieldAccessor;
 import net.bytebuddy.jar.asm.Opcodes;
 import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AdviceTestBase;
 import org.apache.shardingsphere.agent.plugin.tracing.rule.CollectorRule;
 import org.junit.rules.TestRule;
diff --git a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
index 61c1ab1154d..d45bada8d43 100644
--- a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
+++ b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractCommandExecutorTaskAdviceTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.advice;
 
 import io.netty.util.DefaultAttributeMap;
 import lombok.Getter;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
 import org.apache.shardingsphere.agent.plugin.tracing.ProxyContextRestorer;
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
diff --git a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
index 6dbf1ef5312..d69868695d4 100644
--- a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
+++ b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractJDBCExecutorCallbackAdviceTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.advice;
 
 import lombok.Getter;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
 import org.apache.shardingsphere.agent.plugin.tracing.MockDataSourceMetaData;
 import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
diff --git a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
index 32e24a2c058..36db2ecf502 100644
--- a/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
+++ b/agent/plugins/tracing/test/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/advice/AbstractSQLParserEngineAdviceTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.agent.plugin.tracing.advice;
 
 import lombok.Getter;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 import org.apache.shardingsphere.agent.plugin.tracing.AgentRunner;
 import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
 import org.junit.runner.RunWith;
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceExecutor.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
similarity index 90%
rename from agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceExecutor.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
index b4e8d6c5dfa..0aafff7ff08 100644
--- a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceExecutor.java
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
@@ -21,9 +21,9 @@ import io.opentracing.Scope;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
@@ -37,7 +37,7 @@ import java.lang.reflect.Method;
 /**
  * Command executor task advice executor.
  */
-public final class CommandExecutorTaskAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
     
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceExecutor.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
similarity index 92%
rename from agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceExecutor.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
index 3600b49db31..23776a7a1ba 100644
--- a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceExecutor.java
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
@@ -23,9 +23,9 @@ import io.opentracing.Tracer;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
 import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
@@ -42,7 +42,7 @@ import java.util.Map;
 /**
  * JDBC executor callback advice executor.
  */
-public final class JDBCExecutorCallbackAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
     
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceExecutor.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
similarity index 87%
rename from agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceExecutor.java
rename to agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
index ead69e9d3e6..ac448bc4e20 100644
--- a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceExecutor.java
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
 import io.opentracing.Scope;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
 
@@ -31,7 +31,7 @@ import java.lang.reflect.Method;
 /**
  * SQL parser engine advice executor.
  */
-public final class SQLParserEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class SQLParserEngineAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
     
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
index f888ebb726f..f1b44cbbc83 100644
--- a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
 
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.CommandExecutorTaskAdviceExecutor;
-import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdviceExecutor;
+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.advisor.AdvisorDefinitionService;
 
 import java.util.Collection;
@@ -34,7 +34,7 @@ public final class JaegerAdvisorDefinitionService implements AdvisorDefinitionSe
     
     @Override
     public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations() {
-        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdviceExecutor.class, CommandExecutorTaskAdviceExecutor.class, JDBCExecutorCallbackAdviceExecutor.class);
+        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
     @Override
diff --git a/agent/plugins/tracing/type/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
index d501d56f4b8..a15b85c133d 100644
--- a/agent/plugins/tracing/type/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
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
 import io.opentracing.mock.MockSpan;
 import io.opentracing.mock.MockSpan.LogEntry;
 import io.opentracing.tag.Tags;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.collector.JaegerCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
@@ -43,7 +43,7 @@ public final class CommandExecutorTaskAdviceTest extends AbstractCommandExecutor
     @ClassRule
     public static final JaegerCollector COLLECTOR = new JaegerCollector();
     
-    private static final CommandExecutorTaskAdviceExecutor ADVICE = new CommandExecutorTaskAdviceExecutor();
+    private static final CommandExecutorTaskAdvice ADVICE = new CommandExecutorTaskAdvice();
     
     private static final Map<String, Object> EXPECTED = new HashMap<>(2, 1);
     
diff --git a/agent/plugins/tracing/type/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
index 0f23b09f245..4abfb58c471 100644
--- a/agent/plugins/tracing/type/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
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
 
 import io.opentracing.mock.MockSpan;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecutorCallbackAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.collector.JaegerCollector;
@@ -39,7 +39,7 @@ public final class JDBCExecutorCallbackAdviceTest extends AbstractJDBCExecutorCa
     @ClassRule
     public static final JaegerCollector COLLECTOR = new JaegerCollector();
     
-    private static final JDBCExecutorCallbackAdviceExecutor ADVICE = new JDBCExecutorCallbackAdviceExecutor();
+    private static final JDBCExecutorCallbackAdvice ADVICE = new JDBCExecutorCallbackAdvice();
     
     @Before
     public void setup() {
diff --git a/agent/plugins/tracing/type/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
index f0873be8360..fe48b941a5e 100644
--- a/agent/plugins/tracing/type/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
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
 
 import io.opentracing.mock.MockSpan;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractSQLParserEngineAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.JaegerConstants;
 import org.apache.shardingsphere.agent.plugin.tracing.jaeger.collector.JaegerCollector;
@@ -38,7 +38,7 @@ public final class SQLParserEngineAdviceTest extends AbstractSQLParserEngineAdvi
     @ClassRule
     public static final JaegerCollector COLLECTOR = new JaegerCollector();
     
-    private static final SQLParserEngineAdviceExecutor ADVICE = new SQLParserEngineAdviceExecutor();
+    private static final SQLParserEngineAdvice ADVICE = new SQLParserEngineAdvice();
     
     @Test
     public void assertMethod() {
diff --git a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceExecutor.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
similarity index 88%
rename from agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceExecutor.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
index a4d54c9d9fd..5e7360a537d 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/CommandExecutorTaskAdvice.java
@@ -22,9 +22,9 @@ import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.api.trace.SpanBuilder;
 import io.opentelemetry.api.trace.SpanKind;
 import io.opentelemetry.api.trace.StatusCode;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
 
@@ -33,7 +33,7 @@ import java.lang.reflect.Method;
 /**
  * Command executor task advice executor.
  */
-public class CommandExecutorTaskAdviceExecutor implements InstanceMethodAdviceExecutor {
+public class CommandExecutorTaskAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
     
diff --git a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceExecutor.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
similarity index 93%
rename from agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceExecutor.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
index 68a4cd1ab3b..a4182032ed8 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/JDBCExecutorCallbackAdvice.java
@@ -24,9 +24,9 @@ import io.opentelemetry.api.trace.StatusCode;
 import io.opentelemetry.api.trace.Tracer;
 import io.opentelemetry.context.Context;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
 import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -41,7 +41,7 @@ import java.util.Map;
 /**
  * JDBC executor callback advice executor.
  */
-public class JDBCExecutorCallbackAdviceExecutor implements InstanceMethodAdviceExecutor {
+public class JDBCExecutorCallbackAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
     
diff --git a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceExecutor.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
similarity index 89%
rename from agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceExecutor.java
rename to agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
index 314b457f646..c082680cfa1 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/SQLParserEngineAdvice.java
@@ -23,9 +23,9 @@ import io.opentelemetry.api.trace.SpanBuilder;
 import io.opentelemetry.api.trace.StatusCode;
 import io.opentelemetry.api.trace.Tracer;
 import io.opentelemetry.context.Context;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
 
@@ -34,7 +34,7 @@ import java.lang.reflect.Method;
 /**
  * SQL parser engine advice executor.
  */
-public class SQLParserEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public class SQLParserEngineAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
     
diff --git a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
index b711b0d5cef..7721ecf5bbc 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
 
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.CommandExecutorTaskAdviceExecutor;
-import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdviceExecutor;
+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.advisor.AdvisorDefinitionService;
 
 import java.util.Collection;
@@ -34,7 +34,7 @@ public final class OpenTelemetryTracingAdvisorDefinitionService implements Advis
     
     @Override
     public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations() {
-        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdviceExecutor.class, CommandExecutorTaskAdviceExecutor.class, JDBCExecutorCallbackAdviceExecutor.class);
+        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
     @Override
diff --git a/agent/plugins/tracing/type/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
index 8303d45c4fc..3f2c8cb9b42 100644
--- a/agent/plugins/tracing/type/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
@@ -21,7 +21,7 @@ import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.trace.SpanKind;
 import io.opentelemetry.api.trace.StatusCode;
 import io.opentelemetry.sdk.trace.data.SpanData;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
@@ -40,11 +40,11 @@ public final class CommandExecutorTaskAdviceTest extends AbstractCommandExecutor
     @ClassRule
     public static final OpenTelemetryCollector COLLECTOR = new OpenTelemetryCollector();
     
-    private CommandExecutorTaskAdviceExecutor advice;
+    private CommandExecutorTaskAdvice advice;
     
     @Before
     public void setup() {
-        advice = new CommandExecutorTaskAdviceExecutor();
+        advice = new CommandExecutorTaskAdvice();
     }
     
     @Test
diff --git a/agent/plugins/tracing/type/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
index b7a87facd16..ff586f5e34f 100644
--- a/agent/plugins/tracing/type/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
@@ -21,7 +21,7 @@ import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.trace.StatusCode;
 import io.opentelemetry.sdk.trace.data.SpanData;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecutorCallbackAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
@@ -40,11 +40,11 @@ public final class JDBCExecutorCallbackAdviceTest extends AbstractJDBCExecutorCa
     @ClassRule
     public static final OpenTelemetryCollector COLLECTOR = new OpenTelemetryCollector();
     
-    private JDBCExecutorCallbackAdviceExecutor advice;
+    private JDBCExecutorCallbackAdvice advice;
     
     @Before
     public void setup() {
-        advice = new JDBCExecutorCallbackAdviceExecutor();
+        advice = new JDBCExecutorCallbackAdvice();
     }
     
     @Test
diff --git a/agent/plugins/tracing/type/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
index eddcd17675e..500e4d5eed2 100644
--- a/agent/plugins/tracing/type/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
@@ -23,7 +23,7 @@ import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.api.trace.StatusCode;
 import io.opentelemetry.sdk.trace.data.SpanData;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractSQLParserEngineAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.collector.OpenTelemetryCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
@@ -46,7 +46,7 @@ public final class SQLParserEngineAdviceTest extends AbstractSQLParserEngineAdvi
     
     private static final String SQL_STATEMENT = "select 1";
     
-    private SQLParserEngineAdviceExecutor advice;
+    private SQLParserEngineAdvice advice;
     
     private Span parentSpan;
     
@@ -56,7 +56,7 @@ public final class SQLParserEngineAdviceTest extends AbstractSQLParserEngineAdvi
                 .spanBuilder("parent")
                 .startSpan();
         ExecutorDataMap.getValue().put(OpenTelemetryConstants.ROOT_SPAN, parentSpan);
-        advice = new SQLParserEngineAdviceExecutor();
+        advice = new SQLParserEngineAdvice();
     }
     
     @Test
diff --git a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceExecutor.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
similarity index 87%
rename from agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceExecutor.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
index c4e85ac103c..a06f2b15803 100644
--- a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
 import io.opentracing.Scope;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
@@ -32,7 +32,7 @@ import java.lang.reflect.Method;
 /**
  * Command executor task advice executor.
  */
-public final class CommandExecutorTaskAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
     
diff --git a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceExecutor.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
similarity index 90%
rename from agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceExecutor.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
index 5bc338d32bd..244029520a3 100644
--- a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
@@ -22,9 +22,9 @@ import io.opentracing.Span;
 import io.opentracing.Tracer;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
@@ -36,7 +36,7 @@ import java.util.Map;
 /**
  * JDBC executor callback advice executor.
  */
-public final class JDBCExecutorCallbackAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
     
diff --git a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceExecutor.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
similarity index 87%
rename from agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceExecutor.java
rename to agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
index 33042a62661..dc0133dd1f0 100644
--- a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceExecutor.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
 import io.opentracing.Scope;
 import io.opentracing.tag.Tags;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
 
@@ -31,7 +31,7 @@ import java.lang.reflect.Method;
 /**
  * SQL parser engine advice executor.
  */
-public final class SQLParserEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class SQLParserEngineAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
     
diff --git a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
index 73f51a64623..518659eb08b 100644
--- a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
 
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.CommandExecutorTaskAdviceExecutor;
-import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdviceExecutor;
+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.advisor.AdvisorDefinitionService;
 
 import java.util.Collection;
@@ -34,7 +34,7 @@ public final class OpenTracingAdvisorDefinitionService implements AdvisorDefinit
     
     @Override
     public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations() {
-        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdviceExecutor.class, CommandExecutorTaskAdviceExecutor.class, JDBCExecutorCallbackAdviceExecutor.class);
+        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
     @Override
diff --git a/agent/plugins/tracing/type/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
index 735e4f648cc..102553ba735 100644
--- a/agent/plugins/tracing/type/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
@@ -22,7 +22,7 @@ import io.opentracing.mock.MockSpan;
 import io.opentracing.mock.MockSpan.LogEntry;
 import io.opentracing.mock.MockTracer;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
 import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
 import org.junit.Before;
@@ -42,7 +42,7 @@ import static org.junit.Assert.assertTrue;
 
 public final class CommandExecutorTaskAdviceTest {
     
-    private static final CommandExecutorTaskAdviceExecutor ADVICE = new CommandExecutorTaskAdviceExecutor();
+    private static final CommandExecutorTaskAdvice ADVICE = new CommandExecutorTaskAdvice();
     
     private static MockTracer tracer;
     
diff --git a/agent/plugins/tracing/type/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
index cb0bb62119b..1c0cec079ed 100644
--- a/agent/plugins/tracing/type/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
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
 import io.opentracing.mock.MockSpan;
 import io.opentracing.mock.MockTracer;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ErrorLogTagKeys;
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
 import org.apache.shardingsphere.infra.executor.sql.context.SQLUnit;
@@ -45,7 +45,7 @@ import static org.mockito.Mockito.when;
 
 public final class JDBCExecutorCallbackAdviceTest {
     
-    private static final JDBCExecutorCallbackAdviceExecutor ADVICE = new JDBCExecutorCallbackAdviceExecutor();
+    private static final JDBCExecutorCallbackAdvice ADVICE = new JDBCExecutorCallbackAdvice();
     
     private static MockTracer tracer;
     
diff --git a/agent/plugins/tracing/type/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
index 69839e69bc4..f21fa50bb52 100644
--- a/agent/plugins/tracing/type/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
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
 
 public final class MockTargetAdviceObject implements TargetAdviceObject {
     
diff --git a/agent/plugins/tracing/type/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
index d2f4710eaec..301fa169b19 100644
--- a/agent/plugins/tracing/type/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
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
 import io.opentracing.mock.MockSpan;
 import io.opentracing.mock.MockTracer;
 import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ErrorLogTagKeys;
 import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
 import org.junit.Before;
@@ -39,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 
 public final class SQLParserEngineAdviceTest {
     
-    private static final SQLParserEngineAdviceExecutor ADVICE = new SQLParserEngineAdviceExecutor();
+    private static final SQLParserEngineAdvice ADVICE = new SQLParserEngineAdvice();
     
     private static MockTracer tracer;
     
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceExecutor.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
similarity index 89%
rename from agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceExecutor.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
index 441260daadd..14b773b3dac 100644
--- a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceExecutor.java
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 import brave.Span;
 import brave.Tracing;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
 import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.JDBCBackendConnection;
@@ -35,7 +35,7 @@ import java.lang.reflect.Method;
 /**
  * Command executor task advice executor.
  */
-public final class CommandExecutorTaskAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
     
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceExecutor.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
similarity index 92%
rename from agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceExecutor.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
index af3b31bf183..fce73311f1f 100644
--- a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceExecutor.java
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 import brave.Span;
 import brave.Tracing;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
 import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -38,7 +38,7 @@ import java.util.Map;
 /**
  * JDBC executor callback advice executor.
  */
-public final class JDBCExecutorCallbackAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
     
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceExecutor.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
similarity index 87%
rename from agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceExecutor.java
rename to agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
index 59dd574ffd9..f5c862cc53c 100644
--- a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceExecutor.java
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 import brave.Span;
 import brave.Tracing;
 import brave.propagation.TraceContext;
-import org.apache.shardingsphere.agent.core.plugin.advice.executor.InstanceMethodAdviceExecutor;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.type.InstanceMethodAdvice;
+import org.apache.shardingsphere.agent.advice.TargetAdviceObject;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
 
@@ -31,7 +31,7 @@ import java.lang.reflect.Method;
 /**
  * SQL parser engine advice executor.
  */
-public final class SQLParserEngineAdviceExecutor implements InstanceMethodAdviceExecutor {
+public final class SQLParserEngineAdvice implements InstanceMethodAdvice {
     
     private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
     
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
index f9042ad1a57..0636fb3078b 100644
--- a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
 
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
-import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.CommandExecutorTaskAdviceExecutor;
-import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdviceExecutor;
+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.advisor.AdvisorDefinitionService;
 
 import java.util.Collection;
@@ -34,7 +34,7 @@ public final class ZipkinAdvisorDefinitionService implements AdvisorDefinitionSe
     
     @Override
     public Collection<AdvisorConfiguration> getProxyAdvisorConfigurations() {
-        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdviceExecutor.class, CommandExecutorTaskAdviceExecutor.class, JDBCExecutorCallbackAdviceExecutor.class);
+        return engine.getProxyAdvisorConfigurations(CommandExecutorTaskAdvice.class, CommandExecutorTaskAdvice.class, JDBCExecutorCallbackAdvice.class);
     }
     
     @Override
diff --git a/agent/plugins/tracing/type/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
index f08c1794da2..7990a71ef25 100644
--- a/agent/plugins/tracing/type/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
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractCommandExecutorTaskAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.collector.ZipkinCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
@@ -37,11 +37,11 @@ public final class CommandExecutorTaskAdviceTest extends AbstractCommandExecutor
     @ClassRule
     public static final ZipkinCollector COLLECTOR = new ZipkinCollector();
     
-    private CommandExecutorTaskAdviceExecutor advice;
+    private CommandExecutorTaskAdvice advice;
     
     @Before
     public void setup() {
-        advice = new CommandExecutorTaskAdviceExecutor();
+        advice = new CommandExecutorTaskAdvice();
     }
     
     @Test
diff --git a/agent/plugins/tracing/type/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
index 4e822d85319..c11af7f473e 100644
--- a/agent/plugins/tracing/type/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
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractJDBCExecutorCallbackAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.collector.ZipkinCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
@@ -38,12 +38,12 @@ public final class JDBCExecutorCallbackAdviceTest extends AbstractJDBCExecutorCa
     @ClassRule
     public static final ZipkinCollector COLLECTOR = new ZipkinCollector();
     
-    private JDBCExecutorCallbackAdviceExecutor advice;
+    private JDBCExecutorCallbackAdvice advice;
     
     @Before
     public void setup() {
         getExtraMap().put(ZipkinConstants.ROOT_SPAN, null);
-        advice = new JDBCExecutorCallbackAdviceExecutor();
+        advice = new JDBCExecutorCallbackAdvice();
     }
     
     @Test
diff --git a/agent/plugins/tracing/type/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
index 1baa9fd69a2..c63913e86d7 100644
--- a/agent/plugins/tracing/type/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
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
 
 import brave.Span;
 import brave.Tracing;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
+import org.apache.shardingsphere.agent.advice.MethodInvocationResult;
 import org.apache.shardingsphere.agent.plugin.tracing.advice.AbstractSQLParserEngineAdviceTest;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.collector.ZipkinCollector;
 import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
@@ -42,7 +42,7 @@ public final class SQLParserEngineAdviceTest extends AbstractSQLParserEngineAdvi
     
     private static final String SQL_STATEMENT = "select 1";
     
-    private SQLParserEngineAdviceExecutor advice;
+    private SQLParserEngineAdvice advice;
     
     private Span parentSpan;
     
@@ -50,7 +50,7 @@ public final class SQLParserEngineAdviceTest extends AbstractSQLParserEngineAdvi
     public void setup() {
         parentSpan = Tracing.currentTracer().newTrace().name("parent").start();
         ExecutorDataMap.getValue().put(ZipkinConstants.ROOT_SPAN, parentSpan);
-        advice = new SQLParserEngineAdviceExecutor();
+        advice = new SQLParserEngineAdvice();
     }
     
     @Test