wu-sheng closed pull request #1736: Fixed the bug from topology.
URL: https://github.com/apache/incubator-skywalking/pull/1736
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/EndpointInventoryCache.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/EndpointInventoryCache.java
index 5e7ff6552..eb178a4ea 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/EndpointInventoryCache.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/EndpointInventoryCache.java
@@ -37,15 +37,21 @@
     private static final Logger logger = 
LoggerFactory.getLogger(EndpointInventoryCache.class);
 
     private final ModuleManager moduleManager;
+    private final EndpointInventory userEndpoint;
+    private final Cache<String, Integer> endpointNameCache = 
CacheBuilder.newBuilder().initialCapacity(5000).maximumSize(100000).build();
+
+    private final Cache<Integer, EndpointInventory> endpointIdCache = 
CacheBuilder.newBuilder().initialCapacity(5000).maximumSize(100000).build();
+
     private IEndpointInventoryCacheDAO cacheDAO;
 
     public EndpointInventoryCache(ModuleManager moduleManager) {
         this.moduleManager = moduleManager;
-    }
 
-    private final Cache<String, Integer> endpointNameCache = 
CacheBuilder.newBuilder().initialCapacity(5000).maximumSize(100000).build();
-
-    private final Cache<Integer, EndpointInventory> endpointIdCache = 
CacheBuilder.newBuilder().initialCapacity(5000).maximumSize(100000).build();
+        this.userEndpoint = new EndpointInventory();
+        this.userEndpoint.setSequence(Const.USER_ENDPOINT_ID);
+        this.userEndpoint.setName(Const.USER_CODE);
+        this.userEndpoint.setServiceId(Const.USER_SERVICE_ID);
+    }
 
     private IEndpointInventoryCacheDAO getCacheDAO() {
         if (isNull(cacheDAO)) {
@@ -69,6 +75,10 @@ public int getEndpointId(int serviceId, String endpointName) 
{
     }
 
     public EndpointInventory get(int endpointId) {
+        if (Const.USER_ENDPOINT_ID == endpointId) {
+            return userEndpoint;
+        }
+
         EndpointInventory endpointInventory = 
endpointIdCache.getIfPresent(endpointId);
 
         if (isNull(endpointInventory)) {
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInstanceInventoryCache.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInstanceInventoryCache.java
index 777c57486..5fc05aaf4 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInstanceInventoryCache.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInstanceInventoryCache.java
@@ -25,6 +25,7 @@
 import org.apache.skywalking.oap.server.core.storage.StorageModule;
 import 
org.apache.skywalking.oap.server.core.storage.cache.IServiceInstanceInventoryCacheDAO;
 import org.apache.skywalking.oap.server.library.module.*;
+import org.apache.skywalking.oap.server.library.util.BooleanUtils;
 import org.slf4j.*;
 
 import static java.util.Objects.isNull;
@@ -36,6 +37,7 @@
 
     private static final Logger logger = 
LoggerFactory.getLogger(ServiceInstanceInventoryCache.class);
 
+    private final ServiceInstanceInventory userServiceInstance;
     private final Cache<Integer, ServiceInstanceInventory> 
serviceInstanceIdCache = 
CacheBuilder.newBuilder().initialCapacity(100).maximumSize(5000).build();
 
     private final Cache<String, Integer> serviceInstanceNameCache = 
CacheBuilder.newBuilder().initialCapacity(100).maximumSize(5000).build();
@@ -47,6 +49,12 @@
 
     public ServiceInstanceInventoryCache(ModuleManager moduleManager) {
         this.moduleManager = moduleManager;
+
+        this.userServiceInstance = new ServiceInstanceInventory();
+        this.userServiceInstance.setSequence(Const.USER_INSTANCE_ID);
+        this.userServiceInstance.setName(Const.USER_CODE);
+        this.userServiceInstance.setServiceId(Const.USER_SERVICE_ID);
+        this.userServiceInstance.setIsAddress(BooleanUtils.FALSE);
     }
 
     private IServiceInstanceInventoryCacheDAO getCacheDAO() {
@@ -57,6 +65,10 @@ private IServiceInstanceInventoryCacheDAO getCacheDAO() {
     }
 
     public ServiceInstanceInventory get(int serviceInstanceId) {
+        if (Const.USER_INSTANCE_ID == serviceInstanceId) {
+            return userServiceInstance;
+        }
+
         ServiceInstanceInventory serviceInstanceInventory = 
serviceInstanceIdCache.getIfPresent(serviceInstanceId);
 
         if (Objects.isNull(serviceInstanceInventory)) {
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInventoryCache.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInventoryCache.java
index 8571a6340..4aa798c61 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInventoryCache.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cache/ServiceInventoryCache.java
@@ -25,6 +25,7 @@
 import org.apache.skywalking.oap.server.core.storage.StorageModule;
 import 
org.apache.skywalking.oap.server.core.storage.cache.IServiceInventoryCacheDAO;
 import org.apache.skywalking.oap.server.library.module.*;
+import org.apache.skywalking.oap.server.library.util.BooleanUtils;
 import org.slf4j.*;
 
 import static java.util.Objects.*;
@@ -36,6 +37,7 @@
 
     private static final Logger logger = 
LoggerFactory.getLogger(ServiceInventoryCache.class);
 
+    private final ServiceInventory userService;
     private final Cache<String, Integer> serviceNameCache = 
CacheBuilder.newBuilder().initialCapacity(100).maximumSize(1000).build();
     private final Cache<String, Integer> addressIdCache = 
CacheBuilder.newBuilder().initialCapacity(100).maximumSize(1000).build();
     private final Cache<Integer, ServiceInventory> serviceIdCache = 
CacheBuilder.newBuilder().initialCapacity(100).maximumSize(1000).build();
@@ -45,6 +47,11 @@
 
     public ServiceInventoryCache(ModuleManager moduleManager) {
         this.moduleManager = moduleManager;
+
+        this.userService = new ServiceInventory();
+        this.userService.setSequence(Const.USER_SERVICE_ID);
+        this.userService.setName(Const.USER_CODE);
+        this.userService.setIsAddress(BooleanUtils.FALSE);
     }
 
     private IServiceInventoryCacheDAO getCacheDAO() {
@@ -79,6 +86,14 @@ public int getServiceId(int addressId) {
     }
 
     public ServiceInventory get(int serviceId) {
+        if (logger.isDebugEnabled()) {
+            logger.debug("Get service by id {} from cache", serviceId);
+        }
+
+        if (Const.USER_SERVICE_ID == serviceId) {
+            return userService;
+        }
+
         ServiceInventory serviceInventory = 
serviceIdCache.getIfPresent(serviceId);
 
         if (isNull(serviceInventory)) {
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyBuilder.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyBuilder.java
index a933a5082..5cdcdab3d 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyBuilder.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyBuilder.java
@@ -78,6 +78,11 @@ Topology build(List<ServiceComponent> serviceComponents, 
List<ServiceMapping> se
                 serviceNode.setId(source.getSequence());
                 serviceNode.setName(source.getName());
                 
serviceNode.setType(nodeCompMap.getOrDefault(source.getSequence(), 
Const.UNKNOWN));
+                if (BooleanUtils.valueToBoolean(source.getIsAddress())) {
+                    serviceNode.setReal(false);
+                } else {
+                    serviceNode.setReal(true);
+                }
                 nodes.add(serviceNode);
             }
 
@@ -88,6 +93,7 @@ Topology build(List<ServiceComponent> serviceComponents, 
List<ServiceMapping> se
             call.setTarget(actualTargetId);
             call.setCallType(nodeCompMap.get(clientCall.getTarget()));
             call.setId(clientCall.getId());
+            call.setDetectPoint(DetectPoint.CLIENT);
             calls.add(call);
         });
 
@@ -101,6 +107,7 @@ Topology build(List<ServiceComponent> serviceComponents, 
List<ServiceMapping> se
                     visualUserNode.setId(source.getSequence());
                     visualUserNode.setName(Const.USER_CODE);
                     visualUserNode.setType(Const.USER_CODE.toUpperCase());
+                    visualUserNode.setReal(false);
                     nodes.add(visualUserNode);
                     nodeIds.add(source.getSequence());
                 }
@@ -112,6 +119,7 @@ Topology build(List<ServiceComponent> serviceComponents, 
List<ServiceMapping> se
                     conjecturalNode.setId(source.getSequence());
                     conjecturalNode.setName(source.getName());
                     
conjecturalNode.setType(conjecturalNodeCompMap.getOrDefault(target.getSequence(),
 Const.UNKNOWN));
+                    conjecturalNode.setReal(true);
                     nodeIds.add(source.getSequence());
                     nodes.add(conjecturalNode);
                 }
@@ -121,6 +129,7 @@ Topology build(List<ServiceComponent> serviceComponents, 
List<ServiceMapping> se
             call.setSource(source.getSequence());
             call.setTarget(target.getSequence());
             call.setId(serverCall.getId());
+            call.setDetectPoint(DetectPoint.SERVER);
 
             if (source.getSequence() == Const.USER_SERVICE_ID) {
                 call.setCallType(Const.EMPTY_STRING);
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
index 3ba322f01..06be80dfc 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
@@ -98,7 +98,7 @@ public Topology getServiceTopology(final Step step, final 
long startTB, final lo
         List<Call> serviceRelationServerCalls = 
getTopologyQueryDAO().loadSpecifiedServerSideServiceRelations(step, startTB, 
endTB, serviceIdList);
 
         TopologyBuilder builder = new TopologyBuilder(moduleManager);
-        Topology topology = builder.build(serviceComponents, serviceMappings, 
serviceRelationClientCalls, serviceRelationServerCalls);
+        Topology topology = builder.build(serviceComponents, new 
ArrayList<>(), serviceRelationClientCalls, serviceRelationServerCalls);
 
         Set<Integer> nodeIds = new HashSet<>();
         topology.getCalls().forEach(call -> {
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterDistinctWorker.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterDistinctWorker.java
index 6227a4dc7..4a677cecf 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterDistinctWorker.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterDistinctWorker.java
@@ -38,7 +38,7 @@
     private final Map<RegisterSource, RegisterSource> sources;
     private int messageNum;
 
-    public RegisterDistinctWorker(int workerId, AbstractWorker<RegisterSource> 
nextWorker) {
+    RegisterDistinctWorker(int workerId, AbstractWorker<RegisterSource> 
nextWorker) {
         super(workerId);
         this.nextWorker = nextWorker;
         this.sources = new HashMap<>();
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
index eb94d665e..c4283f0d4 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
@@ -39,7 +39,7 @@
     private final IRegisterLockDAO registerLockDAO;
     private final IRegisterDAO registerDAO;
 
-    public RegisterPersistentWorker(int workerId, String modelName, 
ModuleManager moduleManager,
+    RegisterPersistentWorker(int workerId, String modelName, ModuleManager 
moduleManager,
         IRegisterDAO registerDAO, Scope scope) {
         super(workerId);
         this.modelName = modelName;
diff --git 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ConsumerMock.java
 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ConsumerMock.java
index 9d33e919d..f91d4a207 100644
--- 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ConsumerMock.java
+++ 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ConsumerMock.java
@@ -40,8 +40,8 @@ void mock(StreamObserver<UpstreamSegment> streamObserver, 
UniqueId.Builder globa
     private ByteString createSegment(long startTimestamp, UniqueId.Builder 
segmentId, boolean isPrepare) {
         TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
         segment.setTraceSegmentId(segmentId);
-        segment.setApplicationId(1);
-        segment.setApplicationInstanceId(1);
+        segment.setApplicationId(2);
+        segment.setApplicationInstanceId(2);
         segment.addSpans(createEntrySpan(startTimestamp, isPrepare));
         segment.addSpans(createLocalSpan(startTimestamp, isPrepare));
         segment.addSpans(createMqEntrySpan(startTimestamp, isPrepare));
@@ -64,7 +64,7 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         if (isPrepare) {
             span.setOperationName("/dubbox-case/case/dubbox-rest");
         } else {
-            span.setOperationNameId(1);
+            span.setOperationNameId(2);
         }
         span.setIsError(false);
         return span;
@@ -80,7 +80,7 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         if (isPrepare) {
             span.setOperationName("org.apache.skywalking.Local.do");
         } else {
-            span.setOperationNameId(2);
+            span.setOperationNameId(3);
         }
         span.setIsError(false);
         return span;
@@ -98,7 +98,7 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         if (isPrepare) {
             span.setOperationName("org.apache.skywalking.RocketMQ");
         } else {
-            span.setOperationNameId(3);
+            span.setOperationNameId(4);
         }
         span.setIsError(false);
         return span;
@@ -117,8 +117,8 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
             span.setPeer("172.25.0.4:20880");
             
span.setOperationName("org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()");
         } else {
-            span.setOperationNameId(4);
-            span.setPeerId(2);
+            span.setOperationNameId(5);
+            span.setPeerId(3);
         }
         span.setIsError(false);
         return span;
@@ -136,7 +136,7 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         if (isPrepare) {
             span.setOperationName("org.apache.skywalking.RocketMQ");
         } else {
-            span.setOperationNameId(3);
+            span.setOperationNameId(4);
         }
         span.setIsError(false);
         return span;
@@ -155,8 +155,8 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
             span.setPeer("172.25.0.4:20880");
             
span.setOperationName("org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()");
         } else {
-            span.setOperationNameId(4);
-            span.setPeerId(2);
+            span.setOperationNameId(5);
+            span.setPeerId(3);
         }
         span.setIsError(false);
         return span;
diff --git 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ProviderMock.java
 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ProviderMock.java
index 5b353c92b..42bb3b168 100644
--- 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ProviderMock.java
+++ 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ProviderMock.java
@@ -41,8 +41,8 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
         TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
         segment.setTraceSegmentId(segmentId);
-        segment.setApplicationId(2);
-        segment.setApplicationInstanceId(2);
+        segment.setApplicationId(3);
+        segment.setApplicationInstanceId(3);
         segment.addSpans(createExitSpan(startTimestamp, isPrepare));
         segment.addSpans(createEntrySpan(startTimestamp, parentTraceSegmentId, 
isPrepare));
 
@@ -52,9 +52,9 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
     private TraceSegmentReference.Builder createReference(UniqueId.Builder 
parentTraceSegmentId, boolean isPrepare) {
         TraceSegmentReference.Builder reference = 
TraceSegmentReference.newBuilder();
         reference.setParentTraceSegmentId(parentTraceSegmentId);
-        reference.setParentApplicationInstanceId(1);
+        reference.setParentApplicationInstanceId(2);
         reference.setParentSpanId(1);
-        reference.setEntryApplicationInstanceId(1);
+        reference.setEntryApplicationInstanceId(2);
         reference.setRefType(RefType.CrossProcess);
 
         if (isPrepare) {
@@ -62,9 +62,9 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
             reference.setNetworkAddress("172.25.0.4:20880");
             reference.setEntryServiceName("/dubbox-case/case/dubbox-rest");
         } else {
-            reference.setParentServiceId(1);
-            reference.setNetworkAddressId(2);
-            reference.setEntryServiceId(1);
+            reference.setParentServiceId(2);
+            reference.setNetworkAddressId(3);
+            reference.setEntryServiceId(2);
         }
         return reference;
     }
@@ -84,8 +84,8 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
             
span.setOperationName("mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]");
             span.setPeer("localhost:27017");
         } else {
-            span.setOperationNameId(5);
-            span.setPeerId(1);
+            span.setOperationNameId(6);
+            span.setPeerId(2);
         }
         return span;
     }
@@ -105,7 +105,7 @@ private ByteString createSegment(long startTimestamp, 
UniqueId.Builder segmentId
         if (isPrepare) {
             
span.setOperationName("org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()");
         } else {
-            span.setOperationNameId(6);
+            span.setOperationNameId(7);
         }
         return span;
     }
diff --git 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
index 3e9915a61..b9514c9ec 100644
--- 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
+++ 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
@@ -19,7 +19,6 @@
 package org.apache.skywalking.oap.server.receiver.trace.mock;
 
 import io.grpc.ManagedChannel;
-import java.util.UUID;
 import java.util.concurrent.*;
 import org.apache.skywalking.apm.network.language.agent.*;
 import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
@@ -59,7 +58,7 @@ private void registerConsumer() throws InterruptedException {
 
         ApplicationInstance.Builder instance = 
ApplicationInstance.newBuilder();
         
instance.setApplicationId(applicationMapping.getApplication().getValue());
-        instance.setAgentUUID(UUID.randomUUID().toString());
+        instance.setAgentUUID("pengys");
         instance.setRegisterTime(new 
DateTime("2017-01-01T00:01:01.001").getMillis());
 
         OSInfo.Builder osInfo = OSInfo.newBuilder();
@@ -104,7 +103,7 @@ private void registerProvider() throws InterruptedException 
{
 
         ApplicationInstance.Builder instance = 
ApplicationInstance.newBuilder();
         
instance.setApplicationId(applicationMapping.getApplication().getValue());
-        instance.setAgentUUID(UUID.randomUUID().toString());
+        instance.setAgentUUID("peng-yongsheng");
         instance.setRegisterTime(new 
DateTime("2017-01-01T00:01:01.001").getMillis());
 
         OSInfo.Builder osInfo = OSInfo.newBuilder();
diff --git a/oap-server/server-starter/src/main/resources/log4j2.xml 
b/oap-server/server-starter/src/main/resources/log4j2.xml
index a6ce5a263..2bb72264c 100644
--- a/oap-server/server-starter/src/main/resources/log4j2.xml
+++ b/oap-server/server-starter/src/main/resources/log4j2.xml
@@ -20,7 +20,7 @@
 <Configuration status="INFO">
     <Appenders>
         <Console name="Console" target="SYSTEM_OUT">
-            <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x 
- %m%n"/>
+            <PatternLayout charset="UTF-8" pattern="%d - %c - %L [%t] %-5p %x 
- %m%n"/>
         </Console>
     </Appenders>
     <Loggers>
diff --git 
a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
 
b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
index 13c6711dc..1790854e7 100644
--- 
a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java
@@ -91,7 +91,7 @@ private int getResponse(String modelName, SearchSourceBuilder 
searchSourceBuilde
 
         int id = (int)agg.getValue();
         if (id == Integer.MAX_VALUE || id == Integer.MIN_VALUE) {
-            return 0;
+            return 1;
         } else {
             return id;
         }
diff --git 
a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopologyQueryEsDAO.java
 
b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopologyQueryEsDAO.java
index 00de99eac..f9a037115 100644
--- 
a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopologyQueryEsDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopologyQueryEsDAO.java
@@ -79,17 +79,17 @@ public TopologyQueryEsDAO(ElasticSearchClient client) {
     private void setQueryCondition(SearchSourceBuilder sourceBuilder, long 
startTB, long endTB,
         List<Integer> serviceIds) {
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        
boolQuery.must().add(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).lte(startTB).gte(endTB));
+        
boolQuery.must().add(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).gte(startTB).lte(endTB));
 
         BoolQueryBuilder serviceIdBoolQuery = QueryBuilders.boolQuery();
         boolQuery.must().add(serviceIdBoolQuery);
 
         if (serviceIds.size() == 1) {
-            
boolQuery.should().add(QueryBuilders.termQuery(ServiceRelationServerSideIndicator.SOURCE_SERVICE_ID,
 serviceIds.get(0)));
-            
boolQuery.should().add(QueryBuilders.termQuery(ServiceRelationServerSideIndicator.DEST_SERVICE_ID,
 serviceIds.get(0)));
+            
serviceIdBoolQuery.should().add(QueryBuilders.termQuery(ServiceRelationServerSideIndicator.SOURCE_SERVICE_ID,
 serviceIds.get(0)));
+            
serviceIdBoolQuery.should().add(QueryBuilders.termQuery(ServiceRelationServerSideIndicator.DEST_SERVICE_ID,
 serviceIds.get(0)));
         } else {
-            
boolQuery.should().add(QueryBuilders.termsQuery(ServiceRelationServerSideIndicator.SOURCE_SERVICE_ID,
 serviceIds));
-            
boolQuery.should().add(QueryBuilders.termsQuery(ServiceRelationServerSideIndicator.DEST_SERVICE_ID,
 serviceIds));
+            
serviceIdBoolQuery.should().add(QueryBuilders.termsQuery(ServiceRelationServerSideIndicator.SOURCE_SERVICE_ID,
 serviceIds));
+            
serviceIdBoolQuery.should().add(QueryBuilders.termsQuery(ServiceRelationServerSideIndicator.DEST_SERVICE_ID,
 serviceIds));
         }
         sourceBuilder.query(boolQuery);
     }
@@ -97,7 +97,7 @@ private void setQueryCondition(SearchSourceBuilder 
sourceBuilder, long startTB,
     @Override public List<Call> loadServerSideServiceRelations(Step step, long 
startTB, long endTB) throws IOException {
         String indexName = TimePyramidTableNameBuilder.build(step, 
ServiceRelationServerSideIndicator.INDEX_NAME);
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).lte(startTB).gte(endTB));
+        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).gte(startTB).lte(endTB));
         sourceBuilder.size(0);
 
         return load(sourceBuilder, indexName, 
ServiceRelationServerSideIndicator.SOURCE_SERVICE_ID, 
ServiceRelationServerSideIndicator.DEST_SERVICE_ID, Source.Service);
@@ -106,7 +106,7 @@ private void setQueryCondition(SearchSourceBuilder 
sourceBuilder, long startTB,
     @Override public List<Call> loadClientSideServiceRelations(Step step, long 
startTB, long endTB) throws IOException {
         String indexName = TimePyramidTableNameBuilder.build(step, 
ServiceRelationClientSideIndicator.INDEX_NAME);
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).lte(startTB).gte(endTB));
+        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceRelationServerSideIndicator.TIME_BUCKET).gte(startTB).lte(endTB));
         sourceBuilder.size(0);
 
         return load(sourceBuilder, indexName, 
ServiceRelationClientSideIndicator.SOURCE_SERVICE_ID, 
ServiceRelationClientSideIndicator.DEST_SERVICE_ID, Source.Service);
@@ -115,7 +115,7 @@ private void setQueryCondition(SearchSourceBuilder 
sourceBuilder, long startTB,
     @Override public List<ServiceMapping> loadServiceMappings(Step step, long 
startTB, long endTB) throws IOException {
         String indexName = TimePyramidTableNameBuilder.build(step, 
ServiceMappingIndicator.INDEX_NAME);
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceMappingIndicator.TIME_BUCKET).lte(startTB).gte(endTB));
+        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceMappingIndicator.TIME_BUCKET).gte(startTB).lte(endTB));
         sourceBuilder.size(0);
 
         TermsAggregationBuilder sourceAggregation = 
AggregationBuilders.terms(ServiceMappingIndicator.SERVICE_ID).field(ServiceMappingIndicator.SERVICE_ID).size(1000);
@@ -142,7 +142,7 @@ private void setQueryCondition(SearchSourceBuilder 
sourceBuilder, long startTB,
     public List<ServiceComponent> loadServiceComponents(Step step, long 
startTB, long endTB) throws IOException {
         String indexName = TimePyramidTableNameBuilder.build(step, 
ServiceComponentIndicator.INDEX_NAME);
         SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceComponentIndicator.TIME_BUCKET).lte(startTB).gte(endTB));
+        
sourceBuilder.query(QueryBuilders.rangeQuery(ServiceComponentIndicator.TIME_BUCKET).gte(startTB).lte(endTB));
         sourceBuilder.size(0);
 
         TermsAggregationBuilder sourceAggregation = 
AggregationBuilders.terms(ServiceComponentIndicator.SERVICE_ID).field(ServiceComponentIndicator.SERVICE_ID).size(1000);
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 e8682f9c1..17a0703d9 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
@@ -90,7 +90,7 @@ public TraceBrief queryBasicTraces(long startSecondTB, long 
endSecondTB, long mi
                 sourceBuilder.sort(SegmentRecord.START_TIME, SortOrder.DESC);
                 break;
             case BY_DURATION:
-                sourceBuilder.sort(SegmentRecord.START_TIME, SortOrder.DESC);
+                sourceBuilder.sort(SegmentRecord.LATENCY, SortOrder.DESC);
                 break;
         }
         sourceBuilder.size(limit);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to