From a9850c136ef686d2fb8f0354faef250662e7e670 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Mon, 5 Mar 2018 13:18:42 +0800 Subject: [PATCH] Report @ 2018/03/04 23:00, Application, [COLLECTOR] The topology is incorrect. Fixed the getApplicationTopology bug, remove the application node which not contains the source or target of calls. --- .../ui/service/ApplicationTopologyService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationTopologyService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationTopologyService.java index d50b431b8..5d310d27d 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationTopologyService.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationTopologyService.java @@ -82,6 +82,20 @@ public class ApplicationTopologyService { TopologyBuilder builder = new TopologyBuilder(moduleManager); - return builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, step, startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket); + Topology topology = builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, step, startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket); + + Set nodeIds = new HashSet<>(); + topology.getCalls().forEach(call -> { + nodeIds.add(call.getSource()); + nodeIds.add(call.getTarget()); + }); + + for (int i = topology.getNodes().size() - 1; i >= 0; i--) { + if (!nodeIds.contains(topology.getNodes().get(i).getId())) { + topology.getNodes().remove(i); + } + } + + return topology; } }