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 2018/09/28 11:22:27 UTC

[incubator-skywalking] branch master updated: Add endpoint id to trace query. (#1722)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4cae884  Add endpoint id to trace query. (#1722)
4cae884 is described below

commit 4cae884fc076c00b77258a8293742e4dd66c20e4
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Fri Sep 28 19:22:15 2018 +0800

    Add endpoint id to trace query. (#1722)
---
 .../oap/server/core/analysis/manual/segment/SegmentDispatcher.java   | 1 +
 .../oap/server/core/analysis/manual/segment/SegmentRecord.java       | 2 ++
 .../apache/skywalking/oap/server/core/query/TraceQueryService.java   | 5 +++--
 .../java/org/apache/skywalking/oap/server/core/source/Segment.java   | 1 +
 .../skywalking/oap/server/core/storage/query/ITraceQueryDAO.java     | 2 +-
 .../org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java | 5 +++--
 .../skywalking/oap/query/graphql/type/TraceQueryCondition.java       | 3 ++-
 .../query-graphql-plugin/src/main/resources/query-protocol           | 2 +-
 .../trace/provider/parser/listener/segment/SegmentSpanListener.java  | 2 ++
 .../server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java   | 5 ++++-
 10 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentDispatcher.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentDispatcher.java
index 9a4c51f..322abf9 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentDispatcher.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentDispatcher.java
@@ -33,6 +33,7 @@ public class SegmentDispatcher implements SourceDispatcher<Segment> {
         segment.setTraceId(source.getTraceId());
         segment.setServiceId(source.getServiceId());
         segment.setEndpointName(source.getEndpointName());
+        segment.setEndpointId(source.getEndpointId());
         segment.setStartTime(source.getStartTime());
         segment.setEndTime(source.getEndTime());
         segment.setLatency(source.getLatency());
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
index ba5fc88..1249ac8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
@@ -40,6 +40,7 @@ public class SegmentRecord extends Record {
     public static final String TRACE_ID = "trace_id";
     public static final String SERVICE_ID = "service_id";
     public static final String ENDPOINT_NAME = "endpoint_name";
+    public static final String ENDPOINT_ID = "endpoint_id";
     public static final String START_TIME = "start_time";
     public static final String END_TIME = "end_time";
     public static final String LATENCY = "latency";
@@ -50,6 +51,7 @@ public class SegmentRecord extends Record {
     @Setter @Getter @Column(columnName = TRACE_ID) @IDColumn private String traceId;
     @Setter @Getter @Column(columnName = SERVICE_ID) @IDColumn private int serviceId;
     @Setter @Getter @Column(columnName = ENDPOINT_NAME) @IDColumn private String endpointName;
+    @Setter @Getter @Column(columnName = ENDPOINT_ID) @IDColumn private int endpointId;
     @Setter @Getter @Column(columnName = START_TIME) @IDColumn private long startTime;
     @Setter @Getter @Column(columnName = END_TIME) @IDColumn private long endTime;
     @Setter @Getter @Column(columnName = LATENCY) @IDColumn private int latency;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
index eece165..12d21d5 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
@@ -87,12 +87,13 @@ public class TraceQueryService implements Service {
         return componentLibraryCatalogService;
     }
 
-    public TraceBrief queryBasicTraces(final int serviceId, final String traceId, final String endpointName,
+    public TraceBrief queryBasicTraces(final int serviceId, final int endpointId, final String traceId, final String endpointName,
         final int minTraceDuration, int maxTraceDuration, final TraceState traceState, final QueryOrder queryOrder,
         final Pagination paging, final long startTB, final long endTB) throws IOException {
         PaginationUtils.Page page = PaginationUtils.INSTANCE.exchange(paging);
 
-        return getTraceQueryDAO().queryBasicTraces(startTB, endTB, minTraceDuration, maxTraceDuration, endpointName, serviceId, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
+        return getTraceQueryDAO().queryBasicTraces(startTB, endTB, minTraceDuration, maxTraceDuration, endpointName,
+            serviceId, endpointId, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
     }
 
     public Trace queryTrace(final String traceId) throws IOException {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Segment.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Segment.java
index b669171..110f564 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Segment.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Segment.java
@@ -39,6 +39,7 @@ public class Segment extends Source {
     @Setter @Getter private String traceId;
     @Setter @Getter private int serviceId;
     @Setter @Getter private String endpointName;
+    @Setter @Getter private int endpointId;
     @Setter @Getter private long startTime;
     @Setter @Getter private long endTime;
     @Setter @Getter private int latency;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ITraceQueryDAO.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ITraceQueryDAO.java
index cfe8529..2fb4d87 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ITraceQueryDAO.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/ITraceQueryDAO.java
@@ -30,7 +30,7 @@ import org.apache.skywalking.oap.server.library.module.Service;
 public interface ITraceQueryDAO extends Service {
 
     TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
-        long maxDuration, String endpointName, int serviceId, String traceId, int limit, int from,
+        long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
         TraceState traceState, QueryOrder queryOrder) throws IOException;
 
     List<SegmentRecord> queryByTraceId(String traceId) throws IOException;
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
index 3a7920b..b2d662a 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
@@ -62,12 +62,13 @@ public class TraceQuery implements GraphQLQueryResolver {
         int minDuration = condition.getMinTraceDuration();
         int maxDuration = condition.getMaxTraceDuration();
         String endpointName = condition.getEndpointName();
-        int serviceId = condition.getServiceId();
+        int serviceId = StringUtils.isEmpty(condition.getServiceId()) ? 0 : Integer.parseInt(condition.getServiceId());
+        int endpointId = StringUtils.isEmpty(condition.getEndpointId()) ? 0 : Integer.parseInt(condition.getEndpointId());
         TraceState traceState = condition.getTraceState();
         QueryOrder queryOrder = condition.getQueryOrder();
         Pagination pagination = condition.getPaging();
 
-        return getQueryService().queryBasicTraces(serviceId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
+        return getQueryService().queryBasicTraces(serviceId, endpointId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
     }
 
     public Trace queryTrace(final String traceId) throws IOException {
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/TraceQueryCondition.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/TraceQueryCondition.java
index a26de80..6db4e79 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/TraceQueryCondition.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/type/TraceQueryCondition.java
@@ -24,9 +24,10 @@ import org.apache.skywalking.oap.server.core.query.entity.*;
 @Getter
 @Setter
 public class TraceQueryCondition {
-    private int serviceId;
+    private String serviceId;
     private String traceId;
     private String endpointName;
+    private String endpointId;
     private Duration queryDuration;
     private int minTraceDuration;
     private int maxTraceDuration;
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol
index d71d3f1..3a83be7 160000
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol
@@ -1 +1 @@
-Subproject commit d71d3f183a1e498aafad8c59c8d3373408140ac9
+Subproject commit 3a83be79a9c23aad6576ed2a4a04b82de6d7a829
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
index d3dceb8..bb5f06a 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
@@ -89,8 +89,10 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
         }
 
         if (entryEndpointId == 0) {
+            segment.setEndpointId(firstEndpointId);
             segment.setEndpointName(serviceNameCacheService.get(firstEndpointId).getName());
         } else {
+            segment.setEndpointId(entryEndpointId);
             segment.setEndpointName(serviceNameCacheService.get(entryEndpointId).getName());
         }
 
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java
index ab34a8c..e8682f9 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java
@@ -43,7 +43,7 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
 
     @Override
     public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
-        long maxDuration, String endpointName, int serviceId, String traceId, int limit, int from,
+        long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
         TraceState traceState, QueryOrder queryOrder) throws IOException {
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
 
@@ -71,6 +71,9 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
         if (serviceId != 0) {
             boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
         }
+        if (endpointId != 0) {
+            boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.ENDPOINT_ID, endpointId));
+        }
         if (StringUtils.isNotEmpty(traceId)) {
             boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.TRACE_ID, traceId));
         }