diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzer.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzer.java
index 77b0394..3ff0f5b 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzer.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzer.java
@@ -24,7 +24,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.skywalking.apm.network.event.v3.Event;
 import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListener;
-import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListenerFactoryManager;
+import org.apache.skywalking.oap.server.analyzer.event.listener.IEventAnalyzerListenerManager;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 
 /**
@@ -35,7 +35,7 @@
 public class EventAnalyzer {
     private final ModuleManager moduleManager;
 
-    private final EventAnalyzerListenerFactoryManager factoryManager;
+    private final IEventAnalyzerListenerManager factoryManager;
 
     private final List<EventAnalyzerListener> listeners = new ArrayList<>();
 
@@ -54,7 +54,7 @@
     }
 
     private void createListeners() {
-        factoryManager.factories()
+        factoryManager.getEventAnalyzerListenerFactories()
                       .forEach(factory -> listeners.add(factory.create(moduleManager)));
     }
 }
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
index b762991..a653565 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
@@ -25,11 +25,11 @@
 import org.apache.skywalking.apm.network.event.v3.Event;
 import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListener;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListenerFactoryManager;
+import org.apache.skywalking.oap.server.analyzer.event.listener.IEventAnalyzerListenerManager;
 
 @Slf4j
 @RequiredArgsConstructor
-public class EventAnalyzerServiceImpl implements EventAnalyzerService, EventAnalyzerListenerFactoryManager {
+public class EventAnalyzerServiceImpl implements EventAnalyzerService, IEventAnalyzerListenerManager {
     private final ModuleManager moduleManager;
 
     private final List<EventAnalyzerListener.Factory> factories = new ArrayList<>();
@@ -57,7 +57,7 @@
     }
 
     @Override
-    public List<EventAnalyzerListener.Factory> factories() {
+    public List<EventAnalyzerListener.Factory> getEventAnalyzerListenerFactories() {
         return factories;
     }
 }
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventAnalyzerListenerFactoryManager.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/IEventAnalyzerListenerManager.java
similarity index 83%
rename from oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventAnalyzerListenerFactoryManager.java
rename to oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/IEventAnalyzerListenerManager.java
index ebb4ba0..1493959 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventAnalyzerListenerFactoryManager.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/IEventAnalyzerListenerManager.java
@@ -19,11 +19,10 @@
 package org.apache.skywalking.oap.server.analyzer.event.listener;
 
 import java.util.List;
-import org.apache.skywalking.oap.server.library.module.Service;
 
-public interface EventAnalyzerListenerFactoryManager extends Service {
+public interface IEventAnalyzerListenerManager {
 
     void add(EventAnalyzerListener.Factory factory);
 
-    List<EventAnalyzerListener.Factory> factories();
+    List<EventAnalyzerListener.Factory> getEventAnalyzerListenerFactories();
 }
diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerFactoryManager.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerManager.java
similarity index 89%
rename from oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerFactoryManager.java
rename to oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerManager.java
index 1824522..0fe3247 100644
--- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerFactoryManager.java
+++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/ILogAnalysisListenerManager.java
@@ -19,9 +19,8 @@
 
 import java.util.List;
 import org.apache.skywalking.oap.log.analyzer.provider.log.listener.LogAnalysisListenerFactory;
-import org.apache.skywalking.oap.server.library.module.Service;
 
-public interface ILogAnalysisListenerFactoryManager extends Service {
+public interface ILogAnalysisListenerManager {
 
     void addListenerFactory(LogAnalysisListenerFactory factory);
 
diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzer.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzer.java
index 68d4159..966d125 100644
--- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzer.java
+++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzer.java
@@ -36,7 +36,7 @@
 public class LogAnalyzer {
     private final ModuleManager moduleManager;
     private final LogAnalyzerModuleConfig moduleConfig;
-    private final ILogAnalysisListenerFactoryManager factoryManager;
+    private final ILogAnalysisListenerManager factoryManager;
 
     private final List<LogAnalysisListener> listeners = new ArrayList<>();
 
diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzerServiceImpl.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzerServiceImpl.java
index 09e1a68..dbe5004 100644
--- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzerServiceImpl.java
+++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/provider/log/LogAnalyzerServiceImpl.java
@@ -27,7 +27,7 @@
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 
 @RequiredArgsConstructor
-public class LogAnalyzerServiceImpl implements ILogAnalyzerService, ILogAnalysisListenerFactoryManager {
+public class LogAnalyzerServiceImpl implements ILogAnalyzerService, ILogAnalysisListenerManager {
     private final ModuleManager moduleManager;
     private final LogAnalyzerModuleConfig moduleConfig;
     private final List<LogAnalysisListenerFactory> factories = new ArrayList<>();
