You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/03/26 02:46:55 UTC

[skywalking] branch remove-endpoint-register updated: Make startup successful and persistence works.

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

wusheng pushed a commit to branch remove-endpoint-register
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/remove-endpoint-register by this push:
     new 5e78bd0  Make startup successful and persistence works.
5e78bd0 is described below

commit 5e78bd00ec487e55ae266f0cbe0332ba0cab2af8
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Mar 26 10:46:15 2020 +0800

    Make startup successful and persistence works.
---
 .../analysis/manual/endpoint/EndpointTraffic.java  | 17 ++++---------
 .../manual/endpoint/EndpointTrafficDispatcher.java |  1 +
 .../analysis/manual/log/AbstractLogRecord.java     |  7 ++++++
 .../manual/log/HTTPAccessLogDispatcher.java        |  1 +
 .../oap/server/core/query/LogQueryService.java     |  4 +--
 .../oap/server/core/query/entity/Log.java          |  1 +
 .../oap/server/core/source/AbstractLog.java        |  1 +
 .../server/core/storage/query/ILogQueryDAO.java    |  2 +-
 .../oap/query/graphql/type/LogQueryCondition.java  |  2 +-
 .../plugin/elasticsearch/query/LogQueryEsDAO.java  |  8 +++---
 .../elasticsearch7/query/LogQueryEs7DAO.java       |  8 +++---
 .../storage/plugin/influxdb/query/LogQuery.java    | 11 +++++---
 .../storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java  | 29 ++++++++++++----------
 13 files changed, 53 insertions(+), 39 deletions(-)

diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
index c46993b..b0041c4 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
@@ -29,7 +29,6 @@ import lombok.Setter;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.UnexpectedException;
 import org.apache.skywalking.oap.server.core.analysis.Stream;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
 import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
 import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
 import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
@@ -113,7 +112,7 @@ public class EndpointTraffic extends Metrics {
     public String id() {
         // Downgrade the time bucket to day level only.
         // supportDownSampling == false for this entity.
-        String splitJointId = String.valueOf(getTimeBucket());
+        String splitJointId = String.valueOf(getTimeBucket() / 10000);
         splitJointId += Const.ID_SPLIT + entityId;
         return splitJointId;
     }
@@ -151,19 +150,10 @@ public class EndpointTraffic extends Metrics {
         remoteBuilder.addDataLongs(getTimeBucket());
 
         remoteBuilder.addDataStrings(Strings.isNullOrEmpty(name) ? Const.EMPTY_STRING : name);
+        remoteBuilder.addDataStrings(Strings.isNullOrEmpty(entityId) ? Const.EMPTY_STRING : entityId);
         return remoteBuilder;
     }
 
-    /**
-     * Only accept the minute level time bucket and convert it to day level.
-     */
-    @Override
-    public void setTimeBucket(long timeBucket) {
-        if (TimeBucket.isMinuteBucket(timeBucket)) {
-            super.setTimeBucket(timeBucket / 10000);
-        }
-    }
-
     @Override
     public void deserialize(RemoteData remoteData) {
         setServiceId(remoteData.getDataIntegers(0));
@@ -172,6 +162,7 @@ public class EndpointTraffic extends Metrics {
         setTimeBucket(remoteData.getDataLongs(0));
 
         setName(remoteData.getDataStrings(0));
+        setEntityId(remoteData.getDataStrings(1));
     }
 
     @Override
@@ -215,6 +206,7 @@ public class EndpointTraffic extends Metrics {
             EndpointTraffic inventory = new EndpointTraffic();
             inventory.setServiceId(((Number) dbMap.get(SERVICE_ID)).intValue());
             inventory.setName((String) dbMap.get(NAME));
+            inventory.setEntityId((String) dbMap.get(ENTITY_ID));
             inventory.setDetectPoint(((Number) dbMap.get(DETECT_POINT)).intValue());
             inventory.setTimeBucket(((Number) dbMap.get(TIME_BUCKET)).longValue());
             return inventory;
@@ -225,6 +217,7 @@ public class EndpointTraffic extends Metrics {
             Map<String, Object> map = new HashMap<>();
             map.put(SERVICE_ID, storageData.getServiceId());
             map.put(NAME, storageData.getName());
+            map.put(ENTITY_ID, storageData.getEntityId());
             map.put(DETECT_POINT, storageData.getDetectPoint());
             map.put(TIME_BUCKET, storageData.getTimeBucket());
             return map;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTrafficDispatcher.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTrafficDispatcher.java
index 41db2cf..eecfa21 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTrafficDispatcher.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTrafficDispatcher.java
@@ -32,6 +32,7 @@ public class EndpointTrafficDispatcher implements SourceDispatcher<Endpoint> {
 
     public void generateTraffic(final Endpoint source) {
         EndpointTraffic traffic = new EndpointTraffic();
+        traffic.setTimeBucket(source.getTimeBucket());
         traffic.setName(source.getName());
         traffic.setServiceId(source.getServiceId());
         traffic.setDetectPoint(DetectPoint.SERVER.value());
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
index e7eb0ba..a35da2b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
@@ -33,6 +33,7 @@ public abstract class AbstractLogRecord extends Record {
     public static final String SERVICE_ID = "service_id";
     public static final String SERVICE_INSTANCE_ID = "service_instance_id";
     public static final String ENDPOINT_NAME = "endpoint_name";
+    public static final String ENDPOINT_ID = "endpoint_id";
     public static final String TRACE_ID = "trace_id";
     public static final String IS_ERROR = "is_error";
     public static final String STATUS_CODE = "status_code";
@@ -50,6 +51,10 @@ public abstract class AbstractLogRecord extends Record {
     private int serviceInstanceId;
     @Setter
     @Getter
+    @Column(columnName = ENDPOINT_ID)
+    private String endpointId;
+    @Setter
+    @Getter
     @Column(columnName = ENDPOINT_NAME)
     private String endpointName;
     @Setter
@@ -86,6 +91,7 @@ public abstract class AbstractLogRecord extends Record {
         protected void map2Data(T record, Map<String, Object> dbMap) {
             record.setServiceId(((Number) dbMap.get(SERVICE_ID)).intValue());
             record.setServiceInstanceId(((Number) dbMap.get(SERVICE_INSTANCE_ID)).intValue());
+            record.setEndpointId((String) dbMap.get(ENDPOINT_ID));
             record.setEndpointName((String) dbMap.get(ENDPOINT_NAME));
             record.setIsError(((Number) dbMap.get(IS_ERROR)).intValue());
             record.setTraceId((String) dbMap.get(TRACE_ID));
@@ -101,6 +107,7 @@ public abstract class AbstractLogRecord extends Record {
             Map<String, Object> map = new HashMap<>();
             map.put(SERVICE_ID, record.getServiceId());
             map.put(SERVICE_INSTANCE_ID, record.getServiceInstanceId());
+            map.put(ENDPOINT_ID, record.getEndpointId());
             map.put(ENDPOINT_NAME, record.getEndpointName());
             map.put(TRACE_ID, record.getTraceId());
             map.put(IS_ERROR, record.getIsError());
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/HTTPAccessLogDispatcher.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/HTTPAccessLogDispatcher.java
index 9a6914f..0bbde3f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/HTTPAccessLogDispatcher.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/HTTPAccessLogDispatcher.java
@@ -31,6 +31,7 @@ public class HTTPAccessLogDispatcher implements SourceDispatcher<HTTPAccessLog>
         record.setTimeBucket(source.getTimeBucket());
         record.setServiceId(source.getServiceId());
         record.setServiceInstanceId(source.getServiceInstanceId());
+        record.setEndpointId(source.getEndpointId());
         record.setEndpointName(source.getEndpointName());
         record.setTraceId(source.getTraceId());
         record.setIsError(source.getIsError());
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/LogQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/LogQueryService.java
index fe58e7f..1444a76 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/LogQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/LogQueryService.java
@@ -70,7 +70,7 @@ public class LogQueryService implements Service {
     public Logs queryLogs(final String metricName,
                           int serviceId,
                           int serviceInstanceId,
-                          int endpointId,
+                          String endpointId,
                           String traceId,
                           LogState state,
                           String stateCode,
@@ -90,7 +90,7 @@ public class LogQueryService implements Service {
                 log.setServiceInstanceName(getServiceInstanceInventoryCache().get(log.getServiceInstanceId())
                                                                              .getName());
             }
-            log.setEndpointName(log.getEndpointName());
+            log.setEndpointId(log.getEndpointId());
         });
         return logs;
     }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Log.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Log.java
index cf774a5..b570cb3 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Log.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Log.java
@@ -28,6 +28,7 @@ public class Log {
     private int serviceId;
     private String serviceInstanceName;
     private int serviceInstanceId;
+    private String endpointId;
     private String endpointName;
     private String traceId;
     private String timestamp;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/AbstractLog.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/AbstractLog.java
index fc9f824..165e2d1 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/AbstractLog.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/AbstractLog.java
@@ -30,6 +30,7 @@ public abstract class AbstractLog extends Source {
     private long timestamp;
     private int serviceId;
     private int serviceInstanceId;
+    private String endpointId;
     private String endpointName;
     private String traceId;
     private int isError;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ILogQueryDAO.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ILogQueryDAO.java
index 0dc122f..69b5e6f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ILogQueryDAO.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ILogQueryDAO.java
@@ -25,7 +25,7 @@ import org.apache.skywalking.oap.server.core.query.entity.Pagination;
 import org.apache.skywalking.oap.server.library.module.Service;
 
 public interface ILogQueryDAO extends Service {
-    Logs queryLogs(final String metricName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
+    Logs queryLogs(final String metricName, int serviceId, int serviceInstanceId, String endpointId, String traceId,
         LogState state, String stateCode, Pagination paging, int from, int limit, final long startTB,
         final long endTB) throws IOException;
 }
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/LogQueryCondition.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/LogQueryCondition.java
index d4a15c1..69ceaa0 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/LogQueryCondition.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/LogQueryCondition.java
@@ -29,7 +29,7 @@ public class LogQueryCondition {
     private String metricName;
     private int serviceId;
     private int serviceInstanceId;
-    private int endpointId;
+    private String endpointId;
     private String traceId;
     private LogState state;
     private String stateCode;
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java
index ec44f00..ee99ae5 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query;
 import com.google.common.base.Strings;
 import java.io.IOException;
 import java.util.List;
+import org.apache.skywalking.apm.util.StringUtil;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord;
 import org.apache.skywalking.oap.server.core.analysis.record.Record;
@@ -48,7 +49,7 @@ public class LogQueryEsDAO extends EsDAO implements ILogQueryDAO {
     }
 
     @Override
-    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
+    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, String endpointId, String traceId,
                           LogState state, String stateCode, Pagination paging, int from, int limit, long startSecondTB,
                           long endSecondTB) throws IOException {
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
@@ -68,8 +69,8 @@ public class LogQueryEsDAO extends EsDAO implements ILogQueryDAO {
             boolQueryBuilder.must()
                             .add(QueryBuilders.termQuery(AbstractLogRecord.SERVICE_INSTANCE_ID, serviceInstanceId));
         }
-        if (endpointId != Const.NONE) {
-            boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.ENDPOINT_NAME, endpointId));
+        if (StringUtil.isNotEmpty(endpointId)) {
+            boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.ENDPOINT_ID, endpointId));
         }
         if (!Strings.isNullOrEmpty(stateCode)) {
             boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.STATUS_CODE, stateCode));
@@ -101,6 +102,7 @@ public class LogQueryEsDAO extends EsDAO implements ILogQueryDAO {
             log.setServiceId(((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.SERVICE_ID)).intValue());
             log.setServiceInstanceId(((Number) searchHit.getSourceAsMap()
                                                         .get(AbstractLogRecord.SERVICE_INSTANCE_ID)).intValue());
+            log.setEndpointId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_ID));
             log.setEndpointName((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_NAME));
             log.setError(BooleanUtils.valueToBoolean(((Number) searchHit.getSourceAsMap()
                                                                         .get(AbstractLogRecord.IS_ERROR)).intValue()));
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java
index 6d2e997..5683eea 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.query;
 import com.google.common.base.Strings;
 import java.io.IOException;
 import java.util.List;
+import org.apache.skywalking.apm.util.StringUtil;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord;
 import org.apache.skywalking.oap.server.core.analysis.record.Record;
@@ -48,7 +49,7 @@ public class LogQueryEs7DAO extends EsDAO implements ILogQueryDAO {
     }
 
     @Override
-    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
+    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, String endpointId, String traceId,
                           LogState state, String stateCode, Pagination paging, int from, int limit, long startSecondTB,
                           long endSecondTB) throws IOException {
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
@@ -68,8 +69,8 @@ public class LogQueryEs7DAO extends EsDAO implements ILogQueryDAO {
             boolQueryBuilder.must()
                             .add(QueryBuilders.termQuery(AbstractLogRecord.SERVICE_INSTANCE_ID, serviceInstanceId));
         }
-        if (endpointId != Const.NONE) {
-            boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.ENDPOINT_NAME, endpointId));
+        if (StringUtil.isNotEmpty(endpointId)) {
+            boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.ENDPOINT_ID, endpointId));
         }
         if (!Strings.isNullOrEmpty(stateCode)) {
             boolQueryBuilder.must().add(QueryBuilders.termQuery(AbstractLogRecord.STATUS_CODE, stateCode));
@@ -101,6 +102,7 @@ public class LogQueryEs7DAO extends EsDAO implements ILogQueryDAO {
             log.setServiceId(((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.SERVICE_ID)).intValue());
             log.setServiceInstanceId(((Number) searchHit.getSourceAsMap()
                                                         .get(AbstractLogRecord.SERVICE_INSTANCE_ID)).intValue());
+            log.setEndpointId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_ID));
             log.setEndpointName((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_NAME));
             log.setError(BooleanUtils.valueToBoolean(((Number) searchHit.getSourceAsMap()
                                                                         .get(AbstractLogRecord.IS_ERROR)).intValue()));
diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java
index a43384c..fdfaa90 100644
--- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java
+++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.skywalking.apm.util.StringUtil;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord;
 import org.apache.skywalking.oap.server.core.query.entity.ContentType;
@@ -42,6 +43,7 @@ import org.influxdb.querybuilder.clauses.ConjunctionClause;
 
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.CONTENT;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.CONTENT_TYPE;
+import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.ENDPOINT_ID;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.ENDPOINT_NAME;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.IS_ERROR;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.SERVICE_ID;
@@ -63,7 +65,7 @@ public class LogQuery implements ILogQueryDAO {
     }
 
     @Override
-    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
+    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, String endpointId, String traceId,
                           LogState state, String stateCode, Pagination paging, int from, int limit,
                           long startTB, long endTB) throws IOException {
         WhereQueryImpl<SelectQueryImpl> recallQuery = select().regex("*::field")
@@ -75,8 +77,8 @@ public class LogQuery implements ILogQueryDAO {
         if (serviceInstanceId != Const.NONE) {
             recallQuery.and(eq(SERVICE_INSTANCE_ID, serviceInstanceId));
         }
-        if (endpointId != Const.NONE) {
-            recallQuery.and(eq(ENDPOINT_NAME, endpointId));
+        if (StringUtil.isNotEmpty(endpointId)) {
+            recallQuery.and(eq(ENDPOINT_ID, endpointId));
         }
         if (!Strings.isNullOrEmpty(traceId)) {
             recallQuery.and(eq(TRACE_ID, traceId));
@@ -103,7 +105,7 @@ public class LogQuery implements ILogQueryDAO {
             recallQuery.limit(limit);
         }
 
-        SelectQueryImpl countQuery = select().count(ENDPOINT_NAME).from(client.getDatabase(), metricName);
+        SelectQueryImpl countQuery = select().count(ENDPOINT_ID).from(client.getDatabase(), metricName);
         for (ConjunctionClause clause : recallQuery.getClauses()) {
             countQuery.where(clause);
         }
@@ -135,6 +137,7 @@ public class LogQuery implements ILogQueryDAO {
                 log.setContent((String) data.get(CONTENT));
                 log.setContentType(ContentType.instanceOf((int) data.get(CONTENT_TYPE)));
 
+                log.setEndpointId((String) data.get(ENDPOINT_ID));
                 log.setEndpointName((String) data.get(ENDPOINT_NAME));
                 log.setTraceId((String) data.get(TRACE_ID));
                 log.setTimestamp((String) data.get(TIMESTAMP));
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java
index 95f90a1..45cda21 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java
@@ -19,6 +19,13 @@
 package org.apache.skywalking.oap.server.storage.plugin.jdbc.h2.dao;
 
 import com.google.common.base.Strings;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.skywalking.apm.util.StringUtil;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord;
 import org.apache.skywalking.oap.server.core.query.entity.ContentType;
@@ -30,15 +37,9 @@ import org.apache.skywalking.oap.server.core.storage.query.ILogQueryDAO;
 import org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCHikariCPClient;
 import org.apache.skywalking.oap.server.library.util.BooleanUtils;
 
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.CONTENT;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.CONTENT_TYPE;
+import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.ENDPOINT_ID;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.ENDPOINT_NAME;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.SERVICE_ID;
 import static org.apache.skywalking.oap.server.core.analysis.manual.log.AbstractLogRecord.SERVICE_INSTANCE_ID;
@@ -54,9 +55,9 @@ public class H2LogQueryDAO implements ILogQueryDAO {
     }
 
     @Override
-    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
-        LogState state, String stateCode, Pagination paging, int from, int limit, long startSecondTB,
-        long endSecondTB) throws IOException {
+    public Logs queryLogs(String metricName, int serviceId, int serviceInstanceId, String endpointId, String traceId,
+                          LogState state, String stateCode, Pagination paging, int from, int limit, long startSecondTB,
+                          long endSecondTB) throws IOException {
         StringBuilder sql = new StringBuilder();
         List<Object> parameters = new ArrayList<>(10);
 
@@ -77,8 +78,8 @@ public class H2LogQueryDAO implements ILogQueryDAO {
             sql.append(" and ").append(AbstractLogRecord.SERVICE_INSTANCE_ID).append(" = ?");
             parameters.add(serviceInstanceId);
         }
-        if (endpointId != Const.NONE) {
-            sql.append(" and ").append(AbstractLogRecord.ENDPOINT_NAME).append(" = ?");
+        if (StringUtil.isNotEmpty(endpointId)) {
+            sql.append(" and ").append(AbstractLogRecord.ENDPOINT_ID).append(" = ?");
             parameters.add(endpointId);
         }
         if (!Strings.isNullOrEmpty(stateCode)) {
@@ -109,11 +110,13 @@ public class H2LogQueryDAO implements ILogQueryDAO {
 
             buildLimit(sql, from, limit);
 
-            try (ResultSet resultSet = h2Client.executeQuery(connection, "select * " + sql.toString(), parameters.toArray(new Object[0]))) {
+            try (ResultSet resultSet = h2Client.executeQuery(
+                connection, "select * " + sql.toString(), parameters.toArray(new Object[0]))) {
                 while (resultSet.next()) {
                     Log log = new Log();
                     log.setServiceId(resultSet.getInt(SERVICE_ID));
                     log.setServiceInstanceId(resultSet.getInt(SERVICE_INSTANCE_ID));
+                    log.setEndpointId(resultSet.getString(ENDPOINT_ID));
                     log.setEndpointName(resultSet.getString(ENDPOINT_NAME));
                     log.setTraceId(resultSet.getString(TRACE_ID));
                     log.setTimestamp(resultSet.getString(TIMESTAMP));