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

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


The following commit(s) were added to refs/heads/master by this push:
     new 754ba803ae [INLONG-11364][Audit] Add a metric monitoring system for 
the Audit Service itself (#11381)
754ba803ae is described below

commit 754ba803ae0b2f7739d2366ab7aeb605d6942daf
Author: doleyzi <[email protected]>
AuthorDate: Mon Oct 21 21:52:39 2024 +0800

    [INLONG-11364][Audit] Add a metric monitoring system for the Audit Service 
itself (#11381)
    
    * [INLONG-11364][Audit] Adjust Audit Service package position
    
    * [INLONG-11364][Audit] Add a metric monitoring system for the Audit 
Service itself
    
    * [INLONG-11364][Audit] Resolving code conflicts
---
 .../inlong/audit/config/ConfigConstants.java       |   1 -
 .../apache/inlong/audit/metric/MetricsManager.java |  11 +-
 .../metric/prometheus/ProxyPrometheusMetric.java   |  28 ++++--
 .../org/apache/inlong/audit/node/Application.java  |   4 +-
 .../audit/{ => service}/cache/AbstractCache.java   |  23 +++--
 .../audit/{ => service}/cache/AuditProxyCache.java |  26 ++---
 .../inlong/audit/{ => service}/cache/DayCache.java |  51 ++++------
 .../audit/{ => service}/cache/HalfHourCache.java   |   6 +-
 .../audit/{ => service}/cache/HourCache.java       |   6 +-
 .../audit/{ => service}/cache/RealTimeQuery.java   |  56 +++++------
 .../audit/{ => service}/cache/TenMinutesCache.java |   6 +-
 .../audit/{ => service}/channel/DataQueue.java     |   4 +-
 .../{ => service}/config/ConfigConstants.java      |   8 +-
 .../audit/{ => service}/config/Configuration.java  |   2 +-
 .../audit/{ => service}/config/ProxyConstants.java |   2 +-
 .../audit/{ => service}/config/SqlConstants.java   |   2 +-
 .../audit/{ => service}/entities/ApiType.java      |   2 +-
 .../audit/{ => service}/entities/AuditCycle.java   |   2 +-
 .../{ => service}/entities/CacheKeyEntity.java     |   2 +-
 .../audit/{ => service}/entities/Heartbeat.java    |   2 +-
 .../audit/{ => service}/entities/JdbcConfig.java   |   2 +-
 .../{ => service}/entities/PartitionEntity.java    |   8 +-
 .../audit/{ => service}/entities/Request.java      |   2 +-
 .../audit/{ => service}/entities/SinkConfig.java   |   2 +-
 .../audit/{ => service}/entities/SourceConfig.java |   2 +-
 .../audit/{ => service}/entities/StartEndTime.java |   2 +-
 .../audit/{ => service}/entities/StatData.java     |   2 +-
 .../metric/MetricDimension.java}                   |  23 +++--
 .../inlong/audit/service/metric/MetricItem.java    |  60 +++++++++++
 .../metric/MetricStat.java}                        |  12 +--
 .../audit/service}/metric/MetricsManager.java      |  49 ++++-----
 .../metric/prometheus/ServicePrometheusMetric.java | 111 +++++++++++++++++++++
 .../audit/service/{ => node}/ApiService.java       |  40 ++++----
 .../audit/{main => service/node}/Application.java  |  32 +++---
 .../audit/service/{ => node}/ConfigService.java    |  50 +++++-----
 .../audit/service/{ => node}/EtlService.java       |  70 ++++++-------
 .../audit/service/{ => node}/PartitionManager.java |  34 +++----
 .../selector/SelectorChangeListenerImpl.java       |   4 +-
 .../audit/{ => service}/selector/api/Selector.java |   2 +-
 .../selector/api/SelectorChangeListener.java       |   2 +-
 .../{ => service}/selector/api/SelectorConfig.java |   2 +-
 .../selector/api/SelectorFactory.java              |   4 +-
 .../{ => service}/selector/impl/DBDataSource.java  |   8 +-
 .../{ => service}/selector/impl/SelectorImpl.java  |  12 +--
 .../{ => service}/selector/task/DBMonitorTask.java |   6 +-
 .../inlong/audit/{ => service}/sink/AuditSink.java |   2 +-
 .../inlong/audit/{ => service}/sink/CacheSink.java |  18 ++--
 .../inlong/audit/{ => service}/sink/JdbcSink.java  |  24 ++---
 .../audit/{ => service}/source/JdbcSource.java     |  36 +++----
 .../audit/{ => service}/utils/CacheUtils.java      |   2 +-
 .../audit/{ => service}/utils/JdbcUtils.java       |  42 ++++----
 .../apache/inlong/audit/source/JdbcSourceTest.java |   3 +-
 .../apache/inlong/audit/utils/CacheUtilsTest.java  |   2 +
 .../metric/prometheus/StorePrometheusMetric.java   |  11 +-
 54 files changed, 554 insertions(+), 371 deletions(-)

diff --git 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
index 67d5183ce5..5a945838ae 100644
--- 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
+++ 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
@@ -22,7 +22,6 @@ package org.apache.inlong.audit.config;
  */
 public class ConfigConstants {
 
-    public static final String AUDIT_PROXY_SERVER_NAME = "audit-proxy";
     public static final String KEY_PROMETHEUS_PORT = 
"audit.proxy.prometheus.port";
     public static final int DEFAULT_PROMETHEUS_PORT = 10082;
     public static final String KEY_PROXY_METRIC_CLASSNAME = 
"audit.proxy.metric.classname";
diff --git 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
index f27920159b..b91daf60a2 100644
--- 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
+++ 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
@@ -28,9 +28,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PROMETHEUS_PORT;
 import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PROXY_METRIC_CLASSNAME;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PROMETHEUS_PORT;
 import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PROXY_METRIC_CLASSNAME;
 
 public class MetricsManager {
@@ -44,16 +42,15 @@ public class MetricsManager {
 
     private AbstractMetric metric;
 
-    public void init(String metricName) {
+    public void init() {
         try {
             ConfigManager configManager = ConfigManager.getInstance();
             String metricClassName = 
configManager.getValue(KEY_PROXY_METRIC_CLASSNAME, 
DEFAULT_PROXY_METRIC_CLASSNAME);
             LOGGER.info("Metric class name: {}", metricClassName);
             Constructor<?> constructor = Class.forName(metricClassName)
-                    .getDeclaredConstructor(String.class, MetricItem.class, 
int.class);
+                    .getDeclaredConstructor(MetricItem.class);
             constructor.setAccessible(true);
-            metric = (AbstractMetric) constructor.newInstance(metricName, 
metricItem,
-                    configManager.getValue(KEY_PROMETHEUS_PORT, 
DEFAULT_PROMETHEUS_PORT));
+            metric = (AbstractMetric) constructor.newInstance(metricItem);
 
             timer.scheduleWithFixedDelay(() -> {
                 metric.report();
@@ -89,9 +86,11 @@ public class MetricsManager {
     public void addSendSuccess(long count) {
         metricItem.getSendCountSuccess().addAndGet(count);
     }
+
     public void addSendFailed(long count) {
         metricItem.getSendCountFailed().addAndGet(count);
     }
+
     public void shutdown() {
         timer.shutdown();
         metric.stop();
diff --git 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/prometheus/ProxyPrometheusMetric.java
 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/prometheus/ProxyPrometheusMetric.java
index 0871a613b3..68b22c84b1 100644
--- 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/prometheus/ProxyPrometheusMetric.java
+++ 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/prometheus/ProxyPrometheusMetric.java
@@ -17,6 +17,7 @@
 
 package org.apache.inlong.audit.metric.prometheus;
 
+import org.apache.inlong.audit.file.ConfigManager;
 import org.apache.inlong.audit.metric.AbstractMetric;
 import org.apache.inlong.audit.metric.MetricDimension;
 import org.apache.inlong.audit.metric.MetricItem;
@@ -31,23 +32,25 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PROMETHEUS_PORT;
+import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PROMETHEUS_PORT;
+
 /**
  * PrometheusMetric
  */
 public class ProxyPrometheusMetric extends Collector implements AbstractMetric 
{
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ProxyPrometheusMetric.class);
-    private static final String HELP_DESCRIPTION = "help";
+    private static final String HELP_DESCRIPTION = "Audit Proxy metrics help 
description";
+    private static final String AUDIT_PROXY_SERVER_NAME = "audit-proxy";
 
     private final MetricItem metricItem;
-    private final String metricName;
     private HTTPServer server;
 
-    public ProxyPrometheusMetric(String metricName, MetricItem metricItem, int 
prometheusPort) {
-        this.metricName = metricName;
+    public ProxyPrometheusMetric(MetricItem metricItem) {
         this.metricItem = metricItem;
         try {
-            server = new HTTPServer(prometheusPort);
+            server = new 
HTTPServer(ConfigManager.getInstance().getValue(KEY_PROMETHEUS_PORT, 
DEFAULT_PROMETHEUS_PORT));
             this.register();
         } catch (IOException e) {
             LOGGER.error("Construct proxy prometheus metric has IOException", 
e);
@@ -66,23 +69,30 @@ public class ProxyPrometheusMetric extends Collector 
implements AbstractMetric {
                 createSample(MetricDimension.SEND_COUNT_FAILED, 
metricItem.getSendCountFailed().doubleValue()));
 
         MetricFamilySamples metricFamilySamples =
-                new MetricFamilySamples(metricName, Type.GAUGE, 
HELP_DESCRIPTION, samples);
+                new MetricFamilySamples(AUDIT_PROXY_SERVER_NAME, Type.GAUGE, 
HELP_DESCRIPTION, samples);
 
         return Collections.singletonList(metricFamilySamples);
     }
 
     private MetricFamilySamples.Sample createSample(MetricDimension key, 
double value) {
-        return new MetricFamilySamples.Sample(metricName, 
Collections.singletonList(MetricItem.K_DIMENSION_KEY),
+        return new MetricFamilySamples.Sample(AUDIT_PROXY_SERVER_NAME,
+                Collections.singletonList(MetricItem.K_DIMENSION_KEY),
                 Collections.singletonList(key.getKey()), value);
     }
 
     @Override
     public void report() {
-        LOGGER.info("Report proxy prometheus metric: {} ", 
metricItem.toString());
+        if (metricItem != null) {
+            LOGGER.info("Report proxy Prometheus metric: {}", metricItem);
+        } else {
+            LOGGER.warn("MetricItem is null, nothing to report.");
+        }
     }
 
     @Override
     public void stop() {
-        server.close();
+        if (server != null) {
+            server.close();
+        }
     }
 }
\ No newline at end of file
diff --git 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/node/Application.java
 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/node/Application.java
index 1aa7f6b7d0..92df71e701 100644
--- 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/node/Application.java
+++ 
b/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/node/Application.java
@@ -59,8 +59,6 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.AUDIT_PROXY_SERVER_NAME;
-
 /**
  * Application
  */
@@ -351,7 +349,7 @@ public class Application {
                 }
             });
 
-            MetricsManager.getInstance().init(AUDIT_PROXY_SERVER_NAME);
+            MetricsManager.getInstance().init();
 
         } catch (Exception e) {
             logger.error("A fatal error occurred while running. Exception 
follows.", e);
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AbstractCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AbstractCache.java
similarity index 90%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AbstractCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AbstractCache.java
index 8463501ffd..8454884db9 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AbstractCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AbstractCache.java
@@ -15,13 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.AuditCycle;
-import org.apache.inlong.audit.entities.CacheKeyEntity;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.utils.CacheUtils;
+import org.apache.inlong.audit.service.config.ConfigConstants;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.AuditCycle;
+import org.apache.inlong.audit.service.entities.CacheKeyEntity;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.metric.MetricsManager;
+import org.apache.inlong.audit.service.utils.CacheUtils;
 
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
@@ -36,7 +38,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static org.apache.inlong.audit.config.ConfigConstants.DATE_FORMAT;
 import static org.apache.inlong.audit.consts.ConfigConstants.DEFAULT_AUDIT_TAG;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.DEFAULT_API_CACHE_EXPIRED_HOURS;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.DEFAULT_API_CACHE_MAX_SIZE;
@@ -57,7 +58,7 @@ public class AbstractCache {
     // According to the startTime and endTime of the request parameters, the 
maximum number of cache keys generated.
     private static final int MAX_CACHE_KEY_SIZE = 1440;
 
-    private final DateTimeFormatter FORMATTER_YYMMDDHHMMSS = 
DateTimeFormatter.ofPattern(DATE_FORMAT);
+    private final DateTimeFormatter FORMATTER_YYMMDDHHMMSS = 
DateTimeFormatter.ofPattern(ConfigConstants.DATE_FORMAT);
 
     protected AbstractCache(AuditCycle auditCycle) {
         cache = Caffeine.newBuilder()
@@ -108,10 +109,16 @@ public class AbstractCache {
             if (null != statData) {
                 result.add(statData);
             } else {
+                long currentTimeMillis = System.currentTimeMillis();
+
                 statData = fetchDataFromAuditStorage(cacheKey.getStartTime(), 
cacheKey.getEndTime(), inlongGroupId,
                         inlongStreamId,
                         auditId, auditTag);
                 result.add(statData);
+
+                MetricsManager.getInstance().addApiMetricNoCache(auditCycle,
+                        System.currentTimeMillis() - currentTimeMillis);
+
             }
 
         }
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AuditProxyCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AuditProxyCache.java
similarity index 73%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AuditProxyCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AuditProxyCache.java
index 183900ce66..6cf91f755e 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/AuditProxyCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/AuditProxyCache.java
@@ -15,10 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
 import org.apache.inlong.audit.entity.AuditProxy;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.config.ProxyConstants;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,14 +32,6 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
-import static 
org.apache.inlong.audit.config.ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_AGENT;
-import static 
org.apache.inlong.audit.config.ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_DATAPROXY;
-import static 
org.apache.inlong.audit.config.ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_SORT;
-import static org.apache.inlong.audit.config.ProxyConstants.IP_PORT_SEPARATOR;
-import static 
org.apache.inlong.audit.config.ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_AGENT;
-import static 
org.apache.inlong.audit.config.ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_DATAPROXY;
-import static 
org.apache.inlong.audit.config.ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_SORT;
-import static org.apache.inlong.audit.config.ProxyConstants.PROXY_SEPARATOR;
 import static org.apache.inlong.audit.entity.AuditComponent.AGENT;
 import static org.apache.inlong.audit.entity.AuditComponent.DATAPROXY;
 import static org.apache.inlong.audit.entity.AuditComponent.SORT;
@@ -77,17 +70,20 @@ public class AuditProxyCache {
         Configuration config = Configuration.getInstance();
         Map<String, String> proxyConfigs = new HashMap<>();
         proxyConfigs.put(AGENT.getComponent(),
-                config.get(KEY_AUDIT_PROXY_ADDRESS_AGENT, 
DEFAULT_AUDIT_PROXY_ADDRESS_AGENT));
+                config.get(ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_AGENT,
+                        ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_AGENT));
         proxyConfigs.put(DATAPROXY.getComponent(),
-                config.get(KEY_AUDIT_PROXY_ADDRESS_DATAPROXY, 
DEFAULT_AUDIT_PROXY_ADDRESS_DATAPROXY));
+                config.get(ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_DATAPROXY,
+                        ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_DATAPROXY));
         proxyConfigs.put(SORT.getComponent(),
-                config.get(KEY_AUDIT_PROXY_ADDRESS_SORT, 
DEFAULT_AUDIT_PROXY_ADDRESS_SORT));
+                config.get(ProxyConstants.KEY_AUDIT_PROXY_ADDRESS_SORT,
+                        ProxyConstants.DEFAULT_AUDIT_PROXY_ADDRESS_SORT));
         return proxyConfigs;
     }
 
     private List<AuditProxy> createAuditProxySet(String proxyList) {
-        return Arrays.stream(proxyList.split(PROXY_SEPARATOR))
-                .map(element -> element.split(IP_PORT_SEPARATOR))
+        return Arrays.stream(proxyList.split(ProxyConstants.PROXY_SEPARATOR))
+                .map(element -> 
element.split(ProxyConstants.IP_PORT_SEPARATOR))
                 .filter(ipPort -> ipPort.length == 2)
                 .map(ipPort -> new AuditProxy(ipPort[0], 
Integer.parseInt(ipPort[1])))
                 .collect(Collectors.toList());
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/DayCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/DayCache.java
similarity index 65%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/DayCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/DayCache.java
index 0ecdaaad41..5a5bf8b649 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/DayCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/DayCache.java
@@ -15,12 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.utils.JdbcUtils;
+import org.apache.inlong.audit.service.config.ConfigConstants;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -36,21 +37,8 @@ import java.sql.SQLException;
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.apache.inlong.audit.config.ConfigConstants.CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_SOURCE_QUERY_DAY_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_SOURCE_QUERY_DAY_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_SOURCE_QUERY_DAY_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_SOURCE_QUERY_DAY_SQL;
 
 /**
  * Cache Of day ,for day openapi
@@ -139,17 +127,20 @@ public class DayCache implements AutoCloseable {
         config.setJdbcUrl(jdbcConfig.getJdbcUrl());
         config.setUsername(jdbcConfig.getUserName());
         config.setPassword(jdbcConfig.getPassword());
-        
config.setConnectionTimeout(Configuration.getInstance().get(KEY_DATASOURCE_CONNECTION_TIMEOUT,
-                DEFAULT_CONNECTION_TIMEOUT));
-        config.addDataSourceProperty(CACHE_PREP_STMTS,
-                Configuration.getInstance().get(KEY_CACHE_PREP_STMTS, 
DEFAULT_CACHE_PREP_STMTS));
-        config.addDataSourceProperty(PREP_STMT_CACHE_SIZE,
-                Configuration.getInstance().get(KEY_PREP_STMT_CACHE_SIZE, 
DEFAULT_PREP_STMT_CACHE_SIZE));
-        config.addDataSourceProperty(PREP_STMT_CACHE_SQL_LIMIT,
-                Configuration.getInstance().get(KEY_PREP_STMT_CACHE_SQL_LIMIT, 
DEFAULT_PREP_STMT_CACHE_SQL_LIMIT));
+        
config.setConnectionTimeout(Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT,
+                ConfigConstants.DEFAULT_CONNECTION_TIMEOUT));
+        config.addDataSourceProperty(ConfigConstants.CACHE_PREP_STMTS,
+                
Configuration.getInstance().get(ConfigConstants.KEY_CACHE_PREP_STMTS,
+                        ConfigConstants.DEFAULT_CACHE_PREP_STMTS));
+        config.addDataSourceProperty(ConfigConstants.PREP_STMT_CACHE_SIZE,
+                
Configuration.getInstance().get(ConfigConstants.KEY_PREP_STMT_CACHE_SIZE,
+                        ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE));
+        config.addDataSourceProperty(ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT,
+                
Configuration.getInstance().get(ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT,
+                        ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT));
         config.setMaximumPoolSize(
-                Configuration.getInstance().get(KEY_DATASOURCE_POOL_SIZE,
-                        DEFAULT_DATASOURCE_POOL_SIZE));
+                
Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_POOL_SIZE,
+                        ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE));
         dataSource = new HikariDataSource(config);
     }
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HalfHourCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HalfHourCache.java
similarity index 88%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HalfHourCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HalfHourCache.java
index 96138f253c..11ddde8699 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HalfHourCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HalfHourCache.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.AuditCycle;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.AuditCycle;
 
 /**
  * Cache Of minute 30 ,for minute 30 openapi
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HourCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HourCache.java
similarity index 88%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HourCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HourCache.java
index aea4586bf6..fc462481af 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/HourCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/HourCache.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.AuditCycle;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.AuditCycle;
 
 /**
  * Cache Of hour ,for hour openapi
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/RealTimeQuery.java
similarity index 85%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/RealTimeQuery.java
index 21991ed564..b167eb652a 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/RealTimeQuery.java
@@ -15,13 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.service.ConfigService;
-import org.apache.inlong.audit.utils.CacheUtils;
+import org.apache.inlong.audit.service.config.ConfigConstants;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.node.ConfigService;
+import org.apache.inlong.audit.service.utils.CacheUtils;
 
 import org.apache.commons.dbcp.BasicDataSource;
 import org.slf4j.Logger;
@@ -43,22 +44,14 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_DETECT_INTERVAL_MS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_MAX_IDLE_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_MAX_TOTAL_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_MIX_IDLE_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_DETECT_INTERVAL_MS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_MAX_IDLE_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_MAX_TOTAL_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_MIN_IDLE_CONNECTIONS;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_SOURCE_QUERY_IDS_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_SOURCE_QUERY_IPS_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_SOURCE_QUERY_MINUTE_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_SOURCE_QUERY_IDS_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_SOURCE_QUERY_IPS_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_SOURCE_QUERY_MINUTE_SQL;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.DEFAULT_API_THREAD_POOL_SIZE;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.KEY_API_THREAD_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_SOURCE_QUERY_IDS_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_SOURCE_QUERY_IPS_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_SOURCE_QUERY_MINUTE_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_SOURCE_QUERY_IDS_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_SOURCE_QUERY_IPS_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_SOURCE_QUERY_MINUTE_SQL;
 
 /**
  * Real time query data from audit source.
@@ -86,19 +79,22 @@ public class RealTimeQuery {
             dataSource.setUrl(jdbcConfig.getJdbcUrl());
             dataSource.setUsername(jdbcConfig.getUserName());
             dataSource.setPassword(jdbcConfig.getPassword());
-            
dataSource.setInitialSize(Configuration.getInstance().get(KEY_DATASOURCE_MIN_IDLE_CONNECTIONS,
-                    DEFAULT_DATASOURCE_MIX_IDLE_CONNECTIONS));
-            
dataSource.setMaxActive(Configuration.getInstance().get(KEY_DATASOURCE_MAX_TOTAL_CONNECTIONS,
-                    DEFAULT_DATASOURCE_MAX_TOTAL_CONNECTIONS));
-            
dataSource.setMaxIdle(Configuration.getInstance().get(KEY_DATASOURCE_MAX_IDLE_CONNECTIONS,
-                    DEFAULT_DATASOURCE_MAX_IDLE_CONNECTIONS));
-            
dataSource.setMinIdle(Configuration.getInstance().get(KEY_DATASOURCE_MIN_IDLE_CONNECTIONS,
-                    DEFAULT_DATASOURCE_MIX_IDLE_CONNECTIONS));
+            dataSource
+                    
.setInitialSize(Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_MIN_IDLE_CONNECTIONS,
+                            
ConfigConstants.DEFAULT_DATASOURCE_MIX_IDLE_CONNECTIONS));
+            dataSource
+                    
.setMaxActive(Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_MAX_TOTAL_CONNECTIONS,
+                            
ConfigConstants.DEFAULT_DATASOURCE_MAX_TOTAL_CONNECTIONS));
+            
dataSource.setMaxIdle(Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_MAX_IDLE_CONNECTIONS,
+                    ConfigConstants.DEFAULT_DATASOURCE_MAX_IDLE_CONNECTIONS));
+            
dataSource.setMinIdle(Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_MIN_IDLE_CONNECTIONS,
+                    ConfigConstants.DEFAULT_DATASOURCE_MIX_IDLE_CONNECTIONS));
             dataSource.setTestOnBorrow(true);
             dataSource.setValidationQuery("SELECT 1");
             dataSource
-                    
.setTimeBetweenEvictionRunsMillis(Configuration.getInstance().get(KEY_DATASOURCE_DETECT_INTERVAL_MS,
-                            DEFAULT_DATASOURCE_DETECT_INTERVAL_MS));
+                    .setTimeBetweenEvictionRunsMillis(
+                            
Configuration.getInstance().get(ConfigConstants.KEY_DATASOURCE_DETECT_INTERVAL_MS,
+                                    
ConfigConstants.DEFAULT_DATASOURCE_DETECT_INTERVAL_MS));
 
             dataSourceList.add(dataSource);
         }
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/TenMinutesCache.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/TenMinutesCache.java
similarity index 89%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/TenMinutesCache.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/TenMinutesCache.java
index 00ecb2df54..d50eee0413 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/TenMinutesCache.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/cache/TenMinutesCache.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.cache;
+package org.apache.inlong.audit.service.cache;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.AuditCycle;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.AuditCycle;
 
 /**
  * Cache Of minute 10 ,for minute 10 openapi
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/channel/DataQueue.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/channel/DataQueue.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/channel/DataQueue.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/channel/DataQueue.java
index 31217c586b..a7bf460c6a 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/channel/DataQueue.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/channel/DataQueue.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.channel;
+package org.apache.inlong.audit.service.channel;
 
-import org.apache.inlong.audit.entities.StatData;
+import org.apache.inlong.audit.service.entities.StatData;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ConfigConstants.java
similarity index 92%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ConfigConstants.java
index d74e162f78..b6e813dbe0 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ConfigConstants.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ConfigConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.config;
+package org.apache.inlong.audit.service.config;
 
 /**
  * Config constants
@@ -113,4 +113,10 @@ public class ConfigConstants {
     public static final String KEY_ENABLE_STAT_AUDIT_DAY = 
"enable.stat.audit.day";
     public static final boolean DEFAULT_ENABLE_STAT_AUDIT_DAY = true;
 
+    public static final String KEY_AUDIT_SERVICE_PROMETHEUS_PORT = 
"audit.service.prometheus.port";
+    public static final int DEFAULT_AUDIT_SERVICE_PROMETHEUS_PORT = 10084;
+    public static final String KEY_AUDIT_SERVICE_METRIC_CLASSNAME = 
"audit.service.metric.classname";
+    public static final String DEFAULT_AUDIT_SERVICE_METRIC_CLASSNAME =
+            
"org.apache.inlong.audit.service.metric.prometheus.ServicePrometheusMetric";
+
 }
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/Configuration.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/Configuration.java
similarity index 98%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/Configuration.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/Configuration.java
index 328c95be9a..f425aeb50c 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/Configuration.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/Configuration.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.config;
+package org.apache.inlong.audit.service.config;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ProxyConstants.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ProxyConstants.java
similarity index 96%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ProxyConstants.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ProxyConstants.java
index be689f8c8b..3139326eb5 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/ProxyConstants.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/ProxyConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.config;
+package org.apache.inlong.audit.service.config;
 
 /**
  * Proxy constants
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/SqlConstants.java
similarity index 99%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/SqlConstants.java
index 04fee349b5..571e1bde8f 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/config/SqlConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.config;
+package org.apache.inlong.audit.service.config;
 
 /**
  * Sql constants
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/ApiType.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/ApiType.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/ApiType.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/ApiType.java
index d87b7e3aa5..1703fdaf4f 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/ApiType.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/ApiType.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 /**
  * OpenAPI type
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/AuditCycle.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/AuditCycle.java
similarity index 96%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/AuditCycle.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/AuditCycle.java
index e03ed122e8..6ded54ff46 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/AuditCycle.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/AuditCycle.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 /**
  * Audit cycle
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/CacheKeyEntity.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/CacheKeyEntity.java
similarity index 95%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/CacheKeyEntity.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/CacheKeyEntity.java
index c4a42fd7e8..244b07712d 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/CacheKeyEntity.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/CacheKeyEntity.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Heartbeat.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Heartbeat.java
similarity index 95%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Heartbeat.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Heartbeat.java
index 985e3365ab..5799f6bfa3 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Heartbeat.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Heartbeat.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/JdbcConfig.java
similarity index 95%
copy from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
copy to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/JdbcConfig.java
index ae9487cbbe..9fe21782bb 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/JdbcConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/PartitionEntity.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/PartitionEntity.java
similarity index 89%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/PartitionEntity.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/PartitionEntity.java
index 4704ea1031..cde1e6eeb0 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/PartitionEntity.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/PartitionEntity.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
-import org.apache.inlong.audit.config.Configuration;
+import org.apache.inlong.audit.service.config.Configuration;
 
 import lombok.Data;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_TABLE_AUDIT_DATA_CHECK_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_TABLE_AUDIT_DATA_CHECK_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_TABLE_AUDIT_DATA_CHECK_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_TABLE_AUDIT_DATA_CHECK_PARTITION_SQL;
 
 @Data
 public class PartitionEntity {
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Request.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Request.java
similarity index 95%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Request.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Request.java
index 67954f1c72..35c5803440 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/Request.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/Request.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.Data;
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SinkConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SinkConfig.java
similarity index 95%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SinkConfig.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SinkConfig.java
index 3cb15a9016..ca6ec1853a 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SinkConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SinkConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SourceConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SourceConfig.java
similarity index 97%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SourceConfig.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SourceConfig.java
index b43b72c052..6a7e7a9705 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/SourceConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/SourceConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StartEndTime.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StartEndTime.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StartEndTime.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StartEndTime.java
index d7bba55679..222dfdd4f4 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StartEndTime.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StartEndTime.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.Data;
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StatData.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StatData.java
similarity index 96%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StatData.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StatData.java
index 910aec7ce8..ab463b25a3 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/StatData.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/entities/StatData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.entities;
 
 import lombok.Data;
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricDimension.java
similarity index 74%
copy from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
copy to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricDimension.java
index ae9487cbbe..8fc005b7dd 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricDimension.java
@@ -15,17 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.metric;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
+public enum MetricDimension {
 
-@Data
-@AllArgsConstructor
-public class JdbcConfig {
+    COUNT("count"),
+    DURATION("duration");
 
-    String driverClass;
-    String JdbcUrl;
-    String userName;
-    String password;
+    private final String key;
+
+    MetricDimension(String key) {
+        this.key = key;
+    }
+
+    public String getKey() {
+        return key;
+    }
 }
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricItem.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricItem.java
new file mode 100644
index 0000000000..91515e5f95
--- /dev/null
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricItem.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.audit.service.metric;
+
+import lombok.Data;
+
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
+
+@Data
+public class MetricItem {
+
+    private static final String METRIC_ITEM_SPLITERATOR = ";";
+    private AtomicLong inLongGroupIdNum = new AtomicLong(0);
+    private AtomicLong inLongStreamIdNum = new AtomicLong(0);
+    private ConcurrentHashMap<String, MetricStat> metricStatMap = new 
ConcurrentHashMap<>();
+
+    public void resetAllMetrics() {
+        for (MetricStat entry : metricStatMap.values()) {
+            entry.getCount().set(0);
+            entry.getDuration().set(0);
+        }
+    }
+
+    public MetricStat getMetricStat(String metricName) {
+        return metricStatMap.computeIfAbsent(metricName, k -> new 
MetricStat(new AtomicLong(), new AtomicLong()));
+    }
+
+    public ConcurrentHashMap<String, MetricStat> getMetricStatMap() {
+        return metricStatMap;
+    }
+
+    @Override
+    public String toString() {
+        StringJoiner joiner = new StringJoiner(METRIC_ITEM_SPLITERATOR);
+        for (Map.Entry<String, MetricStat> entry : metricStatMap.entrySet()) {
+            String stat = entry.getKey() + "[" + entry.getValue() + "]";
+            joiner.add(stat);
+        }
+
+        return joiner.toString();
+    }
+}
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricStat.java
similarity index 82%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricStat.java
index ae9487cbbe..b3d963931c 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/entities/JdbcConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricStat.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.entities;
+package org.apache.inlong.audit.service.metric;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
 
+import java.util.concurrent.atomic.AtomicLong;
+
 @Data
 @AllArgsConstructor
-public class JdbcConfig {
+public class MetricStat {
 
-    String driverClass;
-    String JdbcUrl;
-    String userName;
-    String password;
+    private AtomicLong count;
+    private AtomicLong duration;
 }
diff --git 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricsManager.java
similarity index 60%
copy from 
inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
copy to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricsManager.java
index f27920159b..f34738d543 100644
--- 
a/inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/metric/MetricsManager.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/MetricsManager.java
@@ -15,9 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.metric;
+package org.apache.inlong.audit.service.metric;
 
-import org.apache.inlong.audit.file.ConfigManager;
+import org.apache.inlong.audit.metric.AbstractMetric;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.ApiType;
+import org.apache.inlong.audit.service.entities.AuditCycle;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,10 +31,8 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PROMETHEUS_PORT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PROXY_METRIC_CLASSNAME;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PROMETHEUS_PORT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PROXY_METRIC_CLASSNAME;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_AUDIT_SERVICE_METRIC_CLASSNAME;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_AUDIT_SERVICE_METRIC_CLASSNAME;
 
 public class MetricsManager {
 
@@ -44,16 +45,16 @@ public class MetricsManager {
 
     private AbstractMetric metric;
 
-    public void init(String metricName) {
+    public void init() {
         try {
-            ConfigManager configManager = ConfigManager.getInstance();
-            String metricClassName = 
configManager.getValue(KEY_PROXY_METRIC_CLASSNAME, 
DEFAULT_PROXY_METRIC_CLASSNAME);
+            String metricClassName =
+                    
Configuration.getInstance().get(KEY_AUDIT_SERVICE_METRIC_CLASSNAME,
+                            DEFAULT_AUDIT_SERVICE_METRIC_CLASSNAME);
             LOGGER.info("Metric class name: {}", metricClassName);
             Constructor<?> constructor = Class.forName(metricClassName)
-                    .getDeclaredConstructor(String.class, MetricItem.class, 
int.class);
+                    .getDeclaredConstructor(MetricItem.class);
             constructor.setAccessible(true);
-            metric = (AbstractMetric) constructor.newInstance(metricName, 
metricItem,
-                    configManager.getValue(KEY_PROMETHEUS_PORT, 
DEFAULT_PROMETHEUS_PORT));
+            metric = (AbstractMetric) constructor.newInstance(metricItem);
 
             timer.scheduleWithFixedDelay(() -> {
                 metric.report();
@@ -72,26 +73,18 @@ public class MetricsManager {
     private final MetricItem metricItem = new MetricItem();
     protected final ScheduledExecutorService timer = 
Executors.newSingleThreadScheduledExecutor();
 
-    public void addReceiveCountInvalid(long count) {
-        metricItem.getReceiveCountInvalid().addAndGet(count);
+    public void addApiMetric(ApiType apiType, long duration) {
+        MetricStat metricStat = metricItem.getMetricStat(apiType.name());
+        metricStat.getCount().addAndGet(1);
+        metricStat.getDuration().addAndGet(duration);
     }
 
-    public void addReceiveCountExpired(long count) {
-        metricItem.getReceiveCountExpired().addAndGet(count);
+    public void addApiMetricNoCache(AuditCycle auditCycle, long duration) {
+        MetricStat metricStat = 
metricItem.getMetricStat(String.valueOf(auditCycle.getValue()));
+        metricStat.getCount().addAndGet(1);
+        metricStat.getDuration().addAndGet(duration);
     }
 
-    public void addReceiveSuccess(long count, long pack, long size) {
-        metricItem.getReceiveCountSuccess().addAndGet(count);
-        metricItem.getReceivePackSuccess().addAndGet(pack);
-        metricItem.getReceiveSizeSuccess().addAndGet(size);
-    }
-
-    public void addSendSuccess(long count) {
-        metricItem.getSendCountSuccess().addAndGet(count);
-    }
-    public void addSendFailed(long count) {
-        metricItem.getSendCountFailed().addAndGet(count);
-    }
     public void shutdown() {
         timer.shutdown();
         metric.stop();
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/prometheus/ServicePrometheusMetric.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/prometheus/ServicePrometheusMetric.java
new file mode 100644
index 0000000000..592d3efb65
--- /dev/null
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/metric/prometheus/ServicePrometheusMetric.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.audit.service.metric.prometheus;
+
+import org.apache.inlong.audit.metric.AbstractMetric;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.metric.MetricDimension;
+import org.apache.inlong.audit.service.metric.MetricItem;
+import org.apache.inlong.audit.service.metric.MetricStat;
+
+import io.prometheus.client.Collector;
+import io.prometheus.client.exporter.HTTPServer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_AUDIT_SERVICE_PROMETHEUS_PORT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_AUDIT_SERVICE_PROMETHEUS_PORT;
+import static org.apache.inlong.audit.service.metric.MetricDimension.COUNT;
+import static org.apache.inlong.audit.service.metric.MetricDimension.DURATION;
+
+/**
+ * PrometheusMetric
+ */
+public class ServicePrometheusMetric extends Collector implements 
AbstractMetric {
+
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(ServicePrometheusMetric.class);
+    private static final String HELP_DESCRIPTION = "Audit service metrics help 
description";
+    public static final String AUDIT_SERVICE_SERVER_NAME = "audit-service";
+    private static final String METRIC_API_TYPE = "apiType";
+    private static final String METRIC_DIMENSION = "dimension";
+
+    private final MetricItem metricItem;
+    private HTTPServer server;
+
+    public ServicePrometheusMetric(MetricItem metricItem) {
+        this.metricItem = metricItem;
+        try {
+            server = new 
HTTPServer(Configuration.getInstance().get(KEY_AUDIT_SERVICE_PROMETHEUS_PORT,
+                    DEFAULT_AUDIT_SERVICE_PROMETHEUS_PORT));
+            this.register();
+        } catch (IOException e) {
+            LOGGER.error("Construct store prometheus metric has IOException", 
e);
+        }
+    }
+
+    @Override
+    public List<MetricFamilySamples> collect() {
+        List<MetricFamilySamples.Sample> samples = new ArrayList<>();
+        for (Map.Entry<String, MetricStat> entry : 
metricItem.getMetricStatMap().entrySet()) {
+            String apiType = entry.getKey();
+            MetricStat stat = entry.getValue();
+            samples.add(createSample(COUNT, apiType, stat.getCount().get()));
+            samples.add(createSample(DURATION, apiType, 
stat.getDuration().get()));
+        }
+
+        MetricFamilySamples metricFamilySamples = new MetricFamilySamples(
+                AUDIT_SERVICE_SERVER_NAME, Type.GAUGE, HELP_DESCRIPTION, 
samples);
+
+        return Collections.singletonList(metricFamilySamples);
+    }
+
+    private MetricFamilySamples.Sample createSample(MetricDimension 
metricDimension, String apiType, long statValue) {
+        return new MetricFamilySamples.Sample(
+                AUDIT_SERVICE_SERVER_NAME,
+                Arrays.asList(METRIC_API_TYPE, METRIC_DIMENSION),
+                Arrays.asList(apiType, metricDimension.getKey()),
+                statValue);
+    }
+
+    @Override
+    public void report() {
+        if (metricItem != null) {
+            LOGGER.info("Report Service Prometheus metric: {}", metricItem);
+        } else {
+            LOGGER.warn("MetricItem is null, nothing to report.");
+        }
+    }
+
+    @Override
+    public void stop() {
+        if (server != null) {
+            server.close();
+            LOGGER.info("Prometheus HTTP server stopped successfully.");
+        } else {
+            LOGGER.warn("Prometheus HTTP server is not running.");
+        }
+    }
+
+}
\ No newline at end of file
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ApiService.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ApiService.java
similarity index 92%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ApiService.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ApiService.java
index 3fc095f643..f4b61f2443 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ApiService.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ApiService.java
@@ -15,19 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.service;
+package org.apache.inlong.audit.service.node;
 
-import org.apache.inlong.audit.cache.AuditProxyCache;
-import org.apache.inlong.audit.cache.DayCache;
-import org.apache.inlong.audit.cache.HalfHourCache;
-import org.apache.inlong.audit.cache.HourCache;
-import org.apache.inlong.audit.cache.RealTimeQuery;
-import org.apache.inlong.audit.cache.TenMinutesCache;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.ApiType;
-import org.apache.inlong.audit.entities.AuditCycle;
-import org.apache.inlong.audit.entities.StatData;
 import org.apache.inlong.audit.entity.AuditProxy;
+import org.apache.inlong.audit.service.cache.AuditProxyCache;
+import org.apache.inlong.audit.service.cache.DayCache;
+import org.apache.inlong.audit.service.cache.HalfHourCache;
+import org.apache.inlong.audit.service.cache.HourCache;
+import org.apache.inlong.audit.service.cache.RealTimeQuery;
+import org.apache.inlong.audit.service.cache.TenMinutesCache;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.ApiType;
+import org.apache.inlong.audit.service.entities.AuditCycle;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.metric.MetricsManager;
 
 import com.google.common.util.concurrent.RateLimiter;
 import com.google.gson.Gson;
@@ -84,12 +85,12 @@ import static 
org.apache.inlong.audit.consts.OpenApiConstants.PARAMS_INLONG_STRE
 import static org.apache.inlong.audit.consts.OpenApiConstants.PARAMS_IP;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.PARAMS_START_TIME;
 import static 
org.apache.inlong.audit.consts.OpenApiConstants.VALUE_HTTP_HEADER_CONTENT_TYPE;
-import static org.apache.inlong.audit.entities.ApiType.DAY;
-import static org.apache.inlong.audit.entities.ApiType.GET_AUDIT_PROXY;
-import static org.apache.inlong.audit.entities.ApiType.GET_IDS;
-import static org.apache.inlong.audit.entities.ApiType.GET_IPS;
-import static org.apache.inlong.audit.entities.ApiType.HOUR;
-import static org.apache.inlong.audit.entities.ApiType.MINUTES;
+import static org.apache.inlong.audit.service.entities.ApiType.DAY;
+import static org.apache.inlong.audit.service.entities.ApiType.GET_AUDIT_PROXY;
+import static org.apache.inlong.audit.service.entities.ApiType.GET_IDS;
+import static org.apache.inlong.audit.service.entities.ApiType.GET_IPS;
+import static org.apache.inlong.audit.service.entities.ApiType.HOUR;
+import static org.apache.inlong.audit.service.entities.ApiType.MINUTES;
 
 public class ApiService {
 
@@ -152,6 +153,9 @@ public class ApiService {
         @Override
         public void handle(HttpExchange exchange) {
             LOGGER.info("handle {}", exchange.getRequestURI().toString());
+
+            long currentTimeMillis = System.currentTimeMillis();
+
             if (null != limiter) {
                 limiter.acquire();
             }
@@ -181,6 +185,8 @@ public class ApiService {
                     }
                 }
             });
+
+            MetricsManager.getInstance().addApiMetric(apiType, 
System.currentTimeMillis() - currentTimeMillis);
         }
 
         private Map<String, String> parseRequestURI(String query) {
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/main/Application.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/Application.java
similarity index 80%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/main/Application.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/Application.java
index 7df068473a..67b91c4e95 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/main/Application.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/Application.java
@@ -15,18 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.main;
-
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.selector.api.Selector;
-import org.apache.inlong.audit.selector.api.SelectorConfig;
-import org.apache.inlong.audit.selector.api.SelectorFactory;
-import org.apache.inlong.audit.service.ApiService;
-import org.apache.inlong.audit.service.ConfigService;
-import org.apache.inlong.audit.service.EtlService;
-import org.apache.inlong.audit.service.PartitionManager;
-import org.apache.inlong.audit.utils.JdbcUtils;
+package org.apache.inlong.audit.service.node;
+
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.metric.MetricsManager;
+import org.apache.inlong.audit.service.selector.api.Selector;
+import org.apache.inlong.audit.service.selector.api.SelectorConfig;
+import org.apache.inlong.audit.service.selector.api.SelectorFactory;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 import org.apache.inlong.common.util.NetworkUtils;
 
 import org.slf4j.Logger;
@@ -34,10 +31,10 @@ import org.slf4j.LoggerFactory;
 
 import java.util.UUID;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SELECTOR_FOLLOWER_LISTEN_CYCLE_MS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SELECTOR_FOLLOWER_LISTEN_CYCLE_MS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SELECTOR_FOLLOWER_LISTEN_CYCLE_MS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SELECTOR_FOLLOWER_LISTEN_CYCLE_MS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
 
 public class Application {
 
@@ -54,6 +51,8 @@ public class Application {
 
             PartitionManager.getInstance().start();
 
+            MetricsManager.getInstance().init();
+
             // Etl service aggregate the data from the data source and store 
the aggregated data to the target storage
             etlService.start();
 
@@ -77,6 +76,7 @@ public class Application {
                 etlService.stop();
                 apiService.stop();
                 selector.close();
+                MetricsManager.getInstance().shutdown();
                 LOGGER.info("Stopping gracefully");
             } catch (Exception ex) {
                 LOGGER.error("Stop error: ", ex);
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ConfigService.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ConfigService.java
similarity index 80%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ConfigService.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ConfigService.java
index 31d7ad92ab..8a7814b4cc 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/ConfigService.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/ConfigService.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.service;
+package org.apache.inlong.audit.service.node;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.utils.JdbcUtils;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -43,27 +43,27 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static org.apache.inlong.audit.config.ConfigConstants.CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CONFIG_UPDATE_INTERVAL_SECONDS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_CONFIG_UPDATE_INTERVAL_SECONDS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_QUERY_AUDIT_ID_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_QUERY_AUDIT_SOURCE_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_QUERY_AUDIT_ID_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_QUERY_AUDIT_SOURCE_SQL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CONFIG_UPDATE_INTERVAL_SECONDS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CONNECTION_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_CONFIG_UPDATE_INTERVAL_SECONDS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DATASOURCE_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_QUERY_AUDIT_ID_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_QUERY_AUDIT_SOURCE_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_QUERY_AUDIT_ID_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_QUERY_AUDIT_SOURCE_SQL;
 
 /**
  * ConfigService periodically pull the configuration of audit id and audit 
source from DB.
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/EtlService.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/EtlService.java
similarity index 69%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/EtlService.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/EtlService.java
index a5eb286a08..fcf3c5da32 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/EtlService.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/EtlService.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.service;
-
-import org.apache.inlong.audit.cache.HalfHourCache;
-import org.apache.inlong.audit.cache.HourCache;
-import org.apache.inlong.audit.cache.TenMinutesCache;
-import org.apache.inlong.audit.channel.DataQueue;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.AuditCycle;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.entities.SinkConfig;
-import org.apache.inlong.audit.entities.SourceConfig;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.sink.AuditSink;
-import org.apache.inlong.audit.sink.CacheSink;
-import org.apache.inlong.audit.sink.JdbcSink;
-import org.apache.inlong.audit.source.JdbcSource;
-import org.apache.inlong.audit.utils.JdbcUtils;
+package org.apache.inlong.audit.service.node;
+
+import org.apache.inlong.audit.service.cache.HalfHourCache;
+import org.apache.inlong.audit.service.cache.HourCache;
+import org.apache.inlong.audit.service.cache.TenMinutesCache;
+import org.apache.inlong.audit.service.channel.DataQueue;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.AuditCycle;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.entities.SinkConfig;
+import org.apache.inlong.audit.service.entities.SourceConfig;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.sink.AuditSink;
+import org.apache.inlong.audit.service.sink.CacheSink;
+import org.apache.inlong.audit.service.sink.JdbcSink;
+import org.apache.inlong.audit.service.source.JdbcSource;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.github.benmanes.caffeine.cache.Cache;
 import org.slf4j.Logger;
@@ -40,24 +40,24 @@ import org.slf4j.LoggerFactory;
 import java.util.LinkedList;
 import java.util.List;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATA_QUEUE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_ENABLE_STAT_AUDIT_DAY;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SUMMARY_DAILY_STAT_BACK_TIMES;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SUMMARY_REALTIME_STAT_BACK_TIMES;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATA_QUEUE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_ENABLE_STAT_AUDIT_DAY;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SUMMARY_DAILY_STAT_BACK_TIMES;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SUMMARY_REALTIME_STAT_BACK_TIMES;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_SINK_INSERT_DAY_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_SINK_INSERT_TEMP_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_MYSQL_SOURCE_QUERY_TEMP_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_SOURCE_STAT_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_SINK_INSERT_DAY_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_SINK_INSERT_TEMP_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_MYSQL_SOURCE_QUERY_TEMP_SQL;
-import static org.apache.inlong.audit.config.SqlConstants.KEY_SOURCE_STAT_SQL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_DATA_QUEUE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_ENABLE_STAT_AUDIT_DAY;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SUMMARY_DAILY_STAT_BACK_TIMES;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SUMMARY_REALTIME_STAT_BACK_TIMES;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DATA_QUEUE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_ENABLE_STAT_AUDIT_DAY;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SELECTOR_SERVICE_ID;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SUMMARY_DAILY_STAT_BACK_TIMES;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SUMMARY_REALTIME_STAT_BACK_TIMES;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_SINK_INSERT_DAY_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_SINK_INSERT_TEMP_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_MYSQL_SOURCE_QUERY_TEMP_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_SOURCE_STAT_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_SINK_INSERT_DAY_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_SINK_INSERT_TEMP_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_MYSQL_SOURCE_QUERY_TEMP_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_SOURCE_STAT_SQL;
 
 /**
  * Etl service aggregate the data from the data source and store the 
aggregated data to the target storage.
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/PartitionManager.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/PartitionManager.java
similarity index 81%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/PartitionManager.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/PartitionManager.java
index 5238bc1d05..abc67e5aa3 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/PartitionManager.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/node/PartitionManager.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.service;
+package org.apache.inlong.audit.service.node;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
-import org.apache.inlong.audit.entities.PartitionEntity;
-import org.apache.inlong.audit.utils.JdbcUtils;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
+import org.apache.inlong.audit.service.entities.PartitionEntity;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -37,18 +37,18 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_AUDIT_DATA_TEMP_STORAGE_DAYS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CHECK_PARTITION_INTERVAL_HOURS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_AUDIT_DATA_TEMP_STORAGE_DAYS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_CHECK_PARTITION_INTERVAL_HOURS;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_AUDIT_DATA_TEMP_ADD_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_AUDIT_DATA_TEMP_DELETE_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.DEFAULT_TABLE_AUDIT_DATA_DAY_ADD_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_AUDIT_DATA_TEMP_ADD_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_AUDIT_DATA_TEMP_DELETE_PARTITION_SQL;
-import static 
org.apache.inlong.audit.config.SqlConstants.KEY_TABLE_AUDIT_DATA_DAY_ADD_PARTITION_SQL;
-import static org.apache.inlong.audit.config.SqlConstants.TABLE_AUDIT_DATA_DAY;
-import static 
org.apache.inlong.audit.config.SqlConstants.TABLE_AUDIT_DATA_TEMP;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_AUDIT_DATA_TEMP_STORAGE_DAYS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CHECK_PARTITION_INTERVAL_HOURS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_AUDIT_DATA_TEMP_STORAGE_DAYS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_CHECK_PARTITION_INTERVAL_HOURS;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_AUDIT_DATA_TEMP_ADD_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_AUDIT_DATA_TEMP_DELETE_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.DEFAULT_TABLE_AUDIT_DATA_DAY_ADD_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_AUDIT_DATA_TEMP_ADD_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_AUDIT_DATA_TEMP_DELETE_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.KEY_TABLE_AUDIT_DATA_DAY_ADD_PARTITION_SQL;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.TABLE_AUDIT_DATA_DAY;
+import static 
org.apache.inlong.audit.service.config.SqlConstants.TABLE_AUDIT_DATA_TEMP;
 
 public class PartitionManager {
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/SelectorChangeListenerImpl.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/SelectorChangeListenerImpl.java
similarity index 90%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/SelectorChangeListenerImpl.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/SelectorChangeListenerImpl.java
index f9ff758d68..c36f031f34 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/SelectorChangeListenerImpl.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/SelectorChangeListenerImpl.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector;
+package org.apache.inlong.audit.service.selector;
 
-import org.apache.inlong.audit.selector.api.SelectorChangeListener;
+import org.apache.inlong.audit.service.selector.api.SelectorChangeListener;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/Selector.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/Selector.java
similarity index 96%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/Selector.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/Selector.java
index b9a66c7b96..4ff055d981 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/Selector.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/Selector.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.api;
+package org.apache.inlong.audit.service.selector.api;
 
 /**
  * Selector
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorChangeListener.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorChangeListener.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorChangeListener.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorChangeListener.java
index 064b84ee2e..ba2035ba1a 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorChangeListener.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorChangeListener.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.api;
+package org.apache.inlong.audit.service.selector.api;
 
 /**
  * Selector change listener
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorConfig.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorConfig.java
similarity index 98%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorConfig.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorConfig.java
index 5110c7b69a..77cf857ecc 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorConfig.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.api;
+package org.apache.inlong.audit.service.selector.api;
 
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorFactory.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorFactory.java
similarity index 89%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorFactory.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorFactory.java
index 3f107e48c3..5c2e12dd42 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/api/SelectorFactory.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/api/SelectorFactory.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.api;
+package org.apache.inlong.audit.service.selector.api;
 
-import org.apache.inlong.audit.selector.impl.SelectorImpl;
+import org.apache.inlong.audit.service.selector.impl.SelectorImpl;
 
 /**
  * Selector factory
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/DBDataSource.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/DBDataSource.java
similarity index 97%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/DBDataSource.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/DBDataSource.java
index 14340be873..bf929f8e08 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/DBDataSource.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/DBDataSource.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.impl;
+package org.apache.inlong.audit.service.selector.impl;
 
-import org.apache.inlong.audit.config.ConfigConstants;
-import org.apache.inlong.audit.config.SqlConstants;
-import org.apache.inlong.audit.selector.api.SelectorConfig;
+import org.apache.inlong.audit.service.config.ConfigConstants;
+import org.apache.inlong.audit.service.config.SqlConstants;
+import org.apache.inlong.audit.service.selector.api.SelectorConfig;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/SelectorImpl.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/SelectorImpl.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/SelectorImpl.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/SelectorImpl.java
index c62de775db..4eea8ef6c9 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/impl/SelectorImpl.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/impl/SelectorImpl.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.impl;
+package org.apache.inlong.audit.service.selector.impl;
 
-import org.apache.inlong.audit.config.ConfigConstants;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.selector.api.Selector;
-import org.apache.inlong.audit.selector.api.SelectorConfig;
-import org.apache.inlong.audit.selector.task.DBMonitorTask;
+import org.apache.inlong.audit.service.config.ConfigConstants;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.selector.api.Selector;
+import org.apache.inlong.audit.service.selector.api.SelectorConfig;
+import org.apache.inlong.audit.service.selector.task.DBMonitorTask;
 
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/task/DBMonitorTask.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/task/DBMonitorTask.java
similarity index 91%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/task/DBMonitorTask.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/task/DBMonitorTask.java
index 4d980aa632..ad0d0c9ebf 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/selector/task/DBMonitorTask.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/selector/task/DBMonitorTask.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.selector.task;
+package org.apache.inlong.audit.service.selector.task;
 
-import org.apache.inlong.audit.selector.api.SelectorConfig;
-import org.apache.inlong.audit.selector.impl.DBDataSource;
+import org.apache.inlong.audit.service.selector.api.SelectorConfig;
+import org.apache.inlong.audit.service.selector.impl.DBDataSource;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/AuditSink.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/AuditSink.java
similarity index 94%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/AuditSink.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/AuditSink.java
index be7250e2dc..4f7a2c3768 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/AuditSink.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/AuditSink.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.sink;
+package org.apache.inlong.audit.service.sink;
 
 public interface AuditSink {
 
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/CacheSink.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/CacheSink.java
similarity index 80%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/CacheSink.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/CacheSink.java
index a695d5d9b5..9fc9ab25e5 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/CacheSink.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/CacheSink.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.sink;
+package org.apache.inlong.audit.service.sink;
 
-import org.apache.inlong.audit.channel.DataQueue;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.utils.CacheUtils;
+import org.apache.inlong.audit.service.channel.DataQueue;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.utils.CacheUtils;
 
 import com.github.benmanes.caffeine.cache.Cache;
 import org.slf4j.Logger;
@@ -30,10 +30,10 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_QUEUE_PULL_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_INTERVAL;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_QUEUE_PULL_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SOURCE_DB_SINK_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_QUEUE_PULL_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_QUEUE_PULL_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SOURCE_DB_SINK_INTERVAL;
 
 /**
  * Cache sink
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/JdbcSink.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/JdbcSink.java
similarity index 83%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/JdbcSink.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/JdbcSink.java
index e802984da9..205b8edd30 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/sink/JdbcSink.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/sink/JdbcSink.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.sink;
+package org.apache.inlong.audit.service.sink;
 
-import org.apache.inlong.audit.channel.DataQueue;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.SinkConfig;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.utils.JdbcUtils;
+import org.apache.inlong.audit.service.channel.DataQueue;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.SinkConfig;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -36,12 +36,12 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_QUEUE_PULL_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_BATCH;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_INTERVAL;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_QUEUE_PULL_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SOURCE_DB_SINK_BATCH;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SOURCE_DB_SINK_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_QUEUE_PULL_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_BATCH;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SOURCE_DB_SINK_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_QUEUE_PULL_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SOURCE_DB_SINK_BATCH;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SOURCE_DB_SINK_INTERVAL;
 
 /**
  * Jdbc sink
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/source/JdbcSource.java
similarity index 88%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/source/JdbcSource.java
index da009ac62e..9f76c7a4c6 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/source/JdbcSource.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.source;
+package org.apache.inlong.audit.service.source;
 
-import org.apache.inlong.audit.channel.DataQueue;
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.SourceConfig;
-import org.apache.inlong.audit.entities.StartEndTime;
-import org.apache.inlong.audit.entities.StatData;
-import org.apache.inlong.audit.service.ConfigService;
-import org.apache.inlong.audit.utils.CacheUtils;
-import org.apache.inlong.audit.utils.JdbcUtils;
+import org.apache.inlong.audit.service.channel.DataQueue;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.SourceConfig;
+import org.apache.inlong.audit.service.entities.StartEndTime;
+import org.apache.inlong.audit.service.entities.StatData;
+import org.apache.inlong.audit.service.node.ConfigService;
+import org.apache.inlong.audit.service.utils.CacheUtils;
+import org.apache.inlong.audit.service.utils.JdbcUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -52,16 +52,16 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import static org.apache.inlong.audit.config.ConfigConstants.DATE_FORMAT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_SOURCE_DB_STAT_INTERVAL;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_STAT_BACK_INITIAL_OFFSET;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_STAT_THREAD_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_SOURCE_DB_STAT_INTERVAL;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_STAT_BACK_INITIAL_OFFSET;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_STAT_THREAD_POOL_SIZE;
 import static org.apache.inlong.audit.consts.ConfigConstants.DEFAULT_AUDIT_TAG;
-import static org.apache.inlong.audit.entities.AuditCycle.DAY;
-import static org.apache.inlong.audit.entities.AuditCycle.HOUR;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DATE_FORMAT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_SOURCE_DB_STAT_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_STAT_BACK_INITIAL_OFFSET;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_STAT_THREAD_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_SOURCE_DB_STAT_INTERVAL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_STAT_BACK_INITIAL_OFFSET;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_STAT_THREAD_POOL_SIZE;
+import static org.apache.inlong.audit.service.entities.AuditCycle.DAY;
+import static org.apache.inlong.audit.service.entities.AuditCycle.HOUR;
 /**
  * Jdbc source
  */
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/CacheUtils.java
similarity index 96%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/CacheUtils.java
index f1319b02f9..1dc45ecaf2 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/CacheUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.utils;
+package org.apache.inlong.audit.service.utils;
 
 /**
  * Cache utils
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/JdbcUtils.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/JdbcUtils.java
similarity index 62%
rename from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/JdbcUtils.java
rename to 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/JdbcUtils.java
index 07f40e2e6b..8761ca2e05 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/JdbcUtils.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/service/utils/JdbcUtils.java
@@ -15,33 +15,33 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.utils;
+package org.apache.inlong.audit.service.utils;
 
-import org.apache.inlong.audit.config.Configuration;
-import org.apache.inlong.audit.entities.JdbcConfig;
+import org.apache.inlong.audit.service.config.Configuration;
+import org.apache.inlong.audit.service.entities.JdbcConfig;
 
 import com.zaxxer.hikari.HikariConfig;
 
 import java.util.Objects;
 
-import static org.apache.inlong.audit.config.ConfigConstants.CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_CACHE_PREP_STMTS;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DATASOURCE_POOL_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_DEFAULT_MYSQL_DRIVER;
-import static org.apache.inlong.audit.config.ConfigConstants.KEY_MYSQL_DRIVER;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_MYSQL_JDBC_URL;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_MYSQL_PASSWORD;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_MYSQL_USERNAME;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SIZE;
-import static 
org.apache.inlong.audit.config.ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_CONNECTION_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_DATASOURCE_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.DEFAULT_PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_CACHE_PREP_STMTS;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DATASOURCE_CONNECTION_TIMEOUT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DATASOURCE_POOL_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_DEFAULT_MYSQL_DRIVER;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_MYSQL_DRIVER;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_MYSQL_JDBC_URL;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_MYSQL_PASSWORD;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_MYSQL_USERNAME;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.KEY_PREP_STMT_CACHE_SQL_LIMIT;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.PREP_STMT_CACHE_SIZE;
+import static 
org.apache.inlong.audit.service.config.ConfigConstants.PREP_STMT_CACHE_SQL_LIMIT;
 
 /**
  * Jdbc utils
diff --git 
a/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
 
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
index edb84812d5..d8bbc4b8ca 100644
--- 
a/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
+++ 
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
@@ -17,7 +17,8 @@
 
 package org.apache.inlong.audit.source;
 
-import org.apache.inlong.audit.entities.StartEndTime;
+import org.apache.inlong.audit.service.entities.StartEndTime;
+import org.apache.inlong.audit.service.source.JdbcSource;
 
 import org.junit.Test;
 
diff --git 
a/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
 
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
index 4032b3e739..f219b9474b 100644
--- 
a/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
+++ 
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.inlong.audit.utils;
 
+import org.apache.inlong.audit.service.utils.CacheUtils;
+
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
diff --git 
a/inlong-audit/audit-store/src/main/java/org/apache/inlong/audit/store/metric/prometheus/StorePrometheusMetric.java
 
b/inlong-audit/audit-store/src/main/java/org/apache/inlong/audit/store/metric/prometheus/StorePrometheusMetric.java
index 6aa60feb6c..bb72b7a178 100644
--- 
a/inlong-audit/audit-store/src/main/java/org/apache/inlong/audit/store/metric/prometheus/StorePrometheusMetric.java
+++ 
b/inlong-audit/audit-store/src/main/java/org/apache/inlong/audit/store/metric/prometheus/StorePrometheusMetric.java
@@ -80,12 +80,17 @@ public class StorePrometheusMetric extends Collector 
implements AbstractMetric {
 
     @Override
     public void report() {
-        LOGGER.info("Report store prometheus metric: {} ", 
metricItem.toString());
+        if (metricItem != null) {
+            LOGGER.info("Report store Prometheus metric: {}", metricItem);
+        } else {
+            LOGGER.warn("MetricItem is null, nothing to report.");
+        }
     }
 
     @Override
     public void stop() {
-        server.close();
+        if (server != null) {
+            server.close();
+        }
     }
-
 }
\ No newline at end of file

Reply via email to