diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java index 4df807a1b7e89745a35e309c1c359760c0aaa5b2..48b996c3840580bc29b0c7b1792cab414c873539 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java @@ -47,6 +47,7 @@ import com.dianping.cat.report.service.ReportService; import com.dianping.cat.report.task.heavy.HeavyReportMerger.ServiceComparator; import com.dianping.cat.report.task.heavy.HeavyReportMerger.UrlComparator; import com.dianping.cat.system.config.BugConfigManager; +import com.dianping.cat.system.config.UtilizationConfigManager; public class Handler implements PageHandler { @Inject @@ -61,6 +62,9 @@ public class Handler implements PageHandler { @Inject private BugConfigManager m_bugConfigManager; + @Inject + private UtilizationConfigManager m_configManager; + @Inject private PayloadNormalizer m_normalizePayload; @@ -225,7 +229,7 @@ public class Handler implements PageHandler { private UtilizationReport queryUtilizationReport(Payload payload) { Pair pair = queryStartEndTime(payload); UtilizationReport report = m_reportService.queryUtilizationReport(CatString.CAT, pair.getKey(), pair.getValue()); - new UtilizationReportScore().visitUtilizationReport(report); + new UtilizationReportScore().setConfigManager(m_configManager).visitUtilizationReport(report); return report; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/bug/UtilizationReportScore.java b/cat-home/src/main/java/com/dianping/cat/report/page/bug/UtilizationReportScore.java index d758b5e6155b636b3c9ff774acb1167dbb229770..490c06ed5529374c9c0aeda94abcbed3e3422d70 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/bug/UtilizationReportScore.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/bug/UtilizationReportScore.java @@ -1,41 +1,57 @@ package com.dianping.cat.report.page.bug; +import com.dianping.cat.home.utilization.config.entity.UtilizationConfig; import com.dianping.cat.home.utilization.entity.Domain; import com.dianping.cat.home.utilization.transform.BaseVisitor; +import com.dianping.cat.system.config.UtilizationConfigManager; public class UtilizationReportScore extends BaseVisitor { + private UtilizationConfigManager m_configManager; + + private double m_callWeight; + + private double m_sqlWeight; + + private double m_cacheWeight; + + private double m_swallWeight; + @Override public void visitDomain(Domain domain) { long urlCount = domain.getUrlCount(); long serviceCount = domain.getServiceCount(); if (urlCount > 0) { - domain.setWebScore(computeWebScore(domain)); + domain.setWebScore(computeScore(domain)); } if (serviceCount > 0) { - domain.setServiceScore(computeServiceScore(domain)); + domain.setServiceScore(computeScore(domain)); } } - private int computeWebScore(Domain domain) { + private int computeScore(Domain domain) { long urlCount = domain.getUrlCount(); + long serviceCount = domain.getServiceCount(); long cacheCount = domain.getMemcacheCount(); long sqlCount = domain.getSqlCount(); long callCount = domain.getPigeonCallCount(); long swallowCount = domain.getSwallowCallCount(); - return (int) ((callCount * 100 + sqlCount * 10 + cacheCount + swallowCount * 10) * 1.0 / urlCount); + return (int) ((callCount * m_callWeight + sqlCount * m_sqlWeight + cacheCount * m_cacheWeight + swallowCount + * m_swallWeight) * 1.0 / (urlCount + serviceCount)); } - private int computeServiceScore(Domain domain) { + public UtilizationReportScore setConfigManager(UtilizationConfigManager configManager) { + m_configManager = configManager; - long serviceCount = domain.getServiceCount(); - long cacheCount = domain.getMemcacheCount(); - long sqlCount = domain.getSqlCount(); - long callCount = domain.getPigeonCallCount(); - long swallowCount = domain.getSwallowCallCount(); + UtilizationConfig utilizationConfig = m_configManager.getUtilizationConfig(); + m_callWeight = utilizationConfig.getPigeoncallWeight(); + m_sqlWeight = utilizationConfig.getSqlWeight(); + m_cacheWeight = utilizationConfig.getCacheWeight(); + m_swallWeight = utilizationConfig.getSwallowWeight(); - return (int) ((callCount * 100 + sqlCount * 10 + cacheCount + swallowCount * 10) * 1.0 / serviceCount); + return this; } + } diff --git a/cat-home/src/main/resources/META-INF/plexus/components.xml b/cat-home/src/main/resources/META-INF/plexus/components.xml index 46858d5621109b4bedfdbca99ab899395097a4ec..688d8b1d65662abaa4d0ef2ea6d1b4d638013df0 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -2767,6 +2767,9 @@ com.dianping.cat.system.config.BugConfigManager + + com.dianping.cat.system.config.UtilizationConfigManager + com.dianping.cat.report.page.PayloadNormalizer @@ -2790,6 +2793,15 @@ + + com.dianping.cat.system.config.UtilizationConfigManager + com.dianping.cat.system.config.UtilizationConfigManager + + + com.dianping.cat.core.config.ConfigDao + + + com.dianping.cat.system.SystemModule com.dianping.cat.system.SystemModule @@ -3060,15 +3072,6 @@ - - com.dianping.cat.system.config.UtilizationConfigManager - com.dianping.cat.system.config.UtilizationConfigManager - - - com.dianping.cat.core.config.ConfigDao - - - com.dianping.cat.system.page.abtest.Handler com.dianping.cat.system.page.abtest.Handler diff --git a/cat-home/src/main/webapp/jsp/report/bugTree.jsp b/cat-home/src/main/webapp/jsp/report/bugTree.jsp index 6986c67b974b79b10e31da46363509fdebb8bee2..f0c808cdc59f37dc8031b814a996a1ef9c1e6b9e 100644 --- a/cat-home/src/main/webapp/jsp/report/bugTree.jsp +++ b/cat-home/src/main/webapp/jsp/report/bugTree.jsp @@ -4,7 +4,7 @@
  • 项目异常
  • 服务可用性
  • -
  • 应用节能排行榜
  • +
  • 应用排行榜
  • 重量级访问