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.
This commit is contained in:
peng-yongsheng 2018-03-05 13:18:42 +08:00
parent c587b9f009
commit a9850c136e
1 changed files with 15 additions and 1 deletions

View File

@ -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<Integer> 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;
}
}