From fc5f67f0849b092370829188c022890eca453d61 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Fri, 2 Mar 2018 22:55:02 +0800 Subject: [PATCH] Setting the alarm attributes in topology. --- .../service/ApplicationTopologyService.java | 4 +-- .../ui/service/ClusterTopologyService.java | 2 +- .../ui/service/ServiceTopologyService.java | 1 + .../collector/ui/service/TopologyBuilder.java | 33 ++++++++++++++++--- 4 files changed, 32 insertions(+), 8 deletions(-) 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 ecb02d2ec9..7d4fe41800 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 @@ -60,7 +60,7 @@ public class ApplicationTopologyService { public Topology getApplicationTopology(Step step, int applicationId, long startTimeBucket, long endTimeBucket, long startSecondTimeBucket, long endSecondTimeBucket) throws ParseException { - logger.debug("startTime: {}, endTime: {}", startTimeBucket, endTimeBucket); + logger.debug("startTimeBucket: {}, endTimeBucket: {}", startTimeBucket, endTimeBucket); List applicationComponents = applicationComponentUIDAO.load(step, startTimeBucket, endTimeBucket); List applicationMappings = applicationMappingUIDAO.load(step, startTimeBucket, endTimeBucket); @@ -82,6 +82,6 @@ public class ApplicationTopologyService { TopologyBuilder builder = new TopologyBuilder(moduleManager); - return builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, startSecondTimeBucket, endSecondTimeBucket); + return builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket); } } diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ClusterTopologyService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ClusterTopologyService.java index 2b215cd10d..8e1609c726 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ClusterTopologyService.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ClusterTopologyService.java @@ -72,6 +72,6 @@ public class ClusterTopologyService { TopologyBuilder builder = new TopologyBuilder(moduleManager); - return builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, startSecondTimeBucket, endSecondTimeBucket); + return builder.build(applicationComponents, applicationMappings, applicationMetrics, callerReferenceMetric, calleeReferenceMetric, startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket); } } diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceTopologyService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceTopologyService.java index f932d0969e..c8f54712b0 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceTopologyService.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceTopologyService.java @@ -94,6 +94,7 @@ public class ServiceTopologyService { } catch (ParseException e) { logger.error(e.getMessage(), e); } + call.setAlert(false); calls.add(call); }); diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java index fc4deefbaa..cbd013e2d2 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java @@ -33,6 +33,7 @@ import org.apache.skywalking.apm.collector.storage.dao.ui.IApplicationMappingUID import org.apache.skywalking.apm.collector.storage.dao.ui.IApplicationMetricUIDAO; import org.apache.skywalking.apm.collector.storage.dao.ui.IApplicationReferenceMetricUIDAO; import org.apache.skywalking.apm.collector.storage.table.register.Application; +import org.apache.skywalking.apm.collector.storage.ui.alarm.Alarm; import org.apache.skywalking.apm.collector.storage.ui.application.ApplicationNode; import org.apache.skywalking.apm.collector.storage.ui.application.ConjecturalNode; import org.apache.skywalking.apm.collector.storage.ui.common.Call; @@ -55,11 +56,13 @@ class TopologyBuilder { private final ApplicationCacheService applicationCacheService; private final ServerService serverService; private final SecondBetweenService secondBetweenService; + private final AlarmService alarmService; TopologyBuilder(ModuleManager moduleManager) { this.applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); this.serverService = new ServerService(moduleManager); this.secondBetweenService = new SecondBetweenService(moduleManager); + this.alarmService = new AlarmService(moduleManager); } Topology build(List applicationComponents, @@ -67,7 +70,7 @@ class TopologyBuilder { List applicationMetrics, List callerReferenceMetric, List calleeReferenceMetric, - long startSecondTimeBucket, long endSecondTimeBucket) { + long startTimeBucket, long endTimeBucket, long startSecondTimeBucket, long endSecondTimeBucket) { Map components = changeNodeComp2Map(applicationComponents); Map mappings = changeMapping2Map(applicationMappings); @@ -91,9 +94,29 @@ class TopologyBuilder { applicationNode.setAvgResponseTime((applicationMetric.getDurations() - applicationMetric.getErrorDurations()) / (applicationMetric.getCalls() - applicationMetric.getErrorCalls())); applicationNode.setApdex(ApdexCalculator.INSTANCE.calculate(applicationMetric.getSatisfiedCount(), applicationMetric.getToleratingCount(), applicationMetric.getFrustratedCount())); applicationNode.setAlarm(false); + try { + Alarm alarm = alarmService.loadApplicationAlarmList(Const.EMPTY_STRING, startTimeBucket, endTimeBucket, 1, 0); + if (alarm.getItems().size() > 0) { + applicationNode.setAlarm(true); + } + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + applicationNode.setNumOfServer(serverService.getAllServer(applicationId, startSecondTimeBucket, endSecondTimeBucket).size()); - applicationNode.setNumOfServerAlarm(1); - applicationNode.setNumOfServiceAlarm(1); + try { + Alarm alarm = alarmService.loadInstanceAlarmList(Const.EMPTY_STRING, startTimeBucket, endTimeBucket, 1000, 0); + applicationNode.setNumOfServerAlarm(alarm.getItems().size()); + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + + try { + Alarm alarm = alarmService.loadServiceAlarmList(Const.EMPTY_STRING, startTimeBucket, endTimeBucket, 1000, 0); + applicationNode.setNumOfServiceAlarm(alarm.getItems().size()); + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } nodes.add(applicationNode); }); @@ -117,7 +140,7 @@ class TopologyBuilder { int actualTargetId = mappings.getOrDefault(target.getApplicationId(), target.getApplicationId()); call.setTarget(actualTargetId); call.setTargetName(applicationCacheService.getApplicationById(actualTargetId).getApplicationCode()); - call.setAlert(true); + call.setAlert(false); call.setCallType(components.get(referenceMetric.getTarget())); try { call.setCallsPerSec(referenceMetric.getCalls() / secondBetweenService.calculate(source.getApplicationId(), startSecondTimeBucket, endSecondTimeBucket)); @@ -153,7 +176,7 @@ class TopologyBuilder { call.setSourceName(source.getApplicationCode()); call.setTarget(target.getApplicationId()); call.setTargetName(target.getApplicationCode()); - call.setAlert(true); + call.setAlert(false); if (source.getApplicationId() == Const.NONE_APPLICATION_ID) { call.setCallType(Const.EMPTY_STRING); -- GitLab