提交 c662740a 编写于 作者: Y yong.you

modify the compute score style

上级 b154893c
......@@ -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<Context> {
@Inject
......@@ -61,6 +62,9 @@ public class Handler implements PageHandler<Context> {
@Inject
private BugConfigManager m_bugConfigManager;
@Inject
private UtilizationConfigManager m_configManager;
@Inject
private PayloadNormalizer m_normalizePayload;
......@@ -225,7 +229,7 @@ public class Handler implements PageHandler<Context> {
private UtilizationReport queryUtilizationReport(Payload payload) {
Pair<Date, Date> 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;
}
......
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;
}
}
......@@ -2767,6 +2767,9 @@
<requirement>
<role>com.dianping.cat.system.config.BugConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.UtilizationConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
......@@ -2790,6 +2793,15 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.UtilizationConfigManager</role>
<implementation>com.dianping.cat.system.config.UtilizationConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.SystemModule</role>
<implementation>com.dianping.cat.system.SystemModule</implementation>
......@@ -3060,15 +3072,6 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.UtilizationConfigManager</role>
<implementation>com.dianping.cat.system.config.UtilizationConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.abtest.Handler</role>
<implementation>com.dianping.cat.system.page.abtest.Handler</implementation>
......
......@@ -4,7 +4,7 @@
<li class='nav-header'><h4>Statistics</h4></li>
<li id="bug" class="text-right " id="bug"><a href="?domain=${model.domain}&ip=${model.ipAddress}&date=${model.date}&op=view"><strong>项目异常</strong></a></li>
<li id="service" class="text-right" id="service"><a href="?domain=${model.domain}&ip=${model.ipAddress}&date=${model.date}&op=service"><strong>服务可用性</strong></a></li>
<li id="utilization" class="text-right" id="service"><a href="?domain=${model.domain}&ip=${model.ipAddress}&date=${model.date}&op=utilization"><strong>应用节能排行榜</strong></a></li>
<li id="utilization" class="text-right" id="service"><a href="?domain=${model.domain}&ip=${model.ipAddress}&date=${model.date}&op=utilization"><strong>应用排行榜</strong></a></li>
<li id="heavy" class="text-right" id="heavy"><a href="?domain=${model.domain}&ip=${model.ipAddress}&date=${model.date}&op=heavy"><strong>重量级访问</strong></a></li>
</ul>
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册