提交 f6da6f67 编写于 作者: Y youyong205

youhua

上级 e523688a
...@@ -169,30 +169,6 @@ public class HistoryGraphs extends BaseHistoryGraphs { ...@@ -169,30 +169,6 @@ public class HistoryGraphs extends BaseHistoryGraphs {
model.setErrorsTrend(item.getJsonString()); model.setErrorsTrend(item.getJsonString());
} }
public void buildTrendGraph(Model model, Payload payload) {
Date start = payload.getHistoryStartDate();
Date end = payload.getHistoryEndDate();
int size = (int) ((end.getTime() - start.getTime()) * 60 / TimeUtil.ONE_HOUR);
String queryType = payload.getReportType();
String domain = model.getDomain();
String type = payload.getType();
String name = payload.getStatus();
String ip = model.getIpAddress();
long step = TimeUtil.ONE_MINUTE;
if (queryType.equalsIgnoreCase("week")) {
size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
step = TimeUtil.ONE_DAY;
} else if (queryType.equalsIgnoreCase("month")) {
size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
step = TimeUtil.ONE_DAY;
}
List<Map<String, double[]>> allDatas = buildLineChartData(start, end, queryType, domain, type, name, ip);
LineChart item = buildFail(allDatas, start, step, size, queryType);
model.setErrorsTrend(item.getJsonString());
}
private List<Map<String, double[]>> buildLineChartData(Date start, Date end, String domain, String type, private List<Map<String, double[]>> buildLineChartData(Date start, Date end, String domain, String type,
String name, String ip, String queryType) { String name, String ip, String queryType) {
List<Map<String, double[]>> allDatas = new ArrayList<Map<String, double[]>>(); List<Map<String, double[]>> allDatas = new ArrayList<Map<String, double[]>>();
...@@ -223,6 +199,30 @@ public class HistoryGraphs extends BaseHistoryGraphs { ...@@ -223,6 +199,30 @@ public class HistoryGraphs extends BaseHistoryGraphs {
return allDatas; return allDatas;
} }
public void buildTrendGraph(Model model, Payload payload) {
Date start = payload.getHistoryStartDate();
Date end = payload.getHistoryEndDate();
int size = (int) ((end.getTime() - start.getTime()) * 60 / TimeUtil.ONE_HOUR);
String queryType = payload.getReportType();
String domain = model.getDomain();
String type = payload.getType();
String name = payload.getStatus();
String ip = model.getIpAddress();
long step = TimeUtil.ONE_MINUTE;
if (queryType.equalsIgnoreCase("week")) {
size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
step = TimeUtil.ONE_DAY;
} else if (queryType.equalsIgnoreCase("month")) {
size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
step = TimeUtil.ONE_DAY;
}
List<Map<String, double[]>> allDatas = buildLineChartData(start, end, queryType, domain, type, name, ip);
LineChart item = buildFail(allDatas, start, step, size, queryType);
model.setErrorsTrend(item.getJsonString());
}
private Map<String, double[]> getGraphDatasFromDaily(Date start, Date end, String domain, String type, String name, private Map<String, double[]> getGraphDatasFromDaily(Date start, Date end, String domain, String type, String name,
String ip) { String ip) {
String queryIp = "All".equalsIgnoreCase(ip) == true ? "All" : ip; String queryIp = "All".equalsIgnoreCase(ip) == true ? "All" : ip;
......
...@@ -5,6 +5,7 @@ import java.util.ArrayList; ...@@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
...@@ -339,13 +340,31 @@ public class Handler implements PageHandler<Context> { ...@@ -339,13 +340,31 @@ public class Handler implements PageHandler<Context> {
private void metricConfigList(Payload payload, Model model) { private void metricConfigList(Payload payload, Model model) {
Map<String, ProductLine> productLines = m_productLineConfigManger.queryProductLines(); Map<String, ProductLine> productLines = m_productLineConfigManger.queryProductLines();
Map<ProductLine, List<MetricItemConfig>> metricConfigs = new HashMap<ProductLine, List<MetricItemConfig>>(); Map<ProductLine, List<MetricItemConfig>> metricConfigs = new HashMap<ProductLine, List<MetricItemConfig>>();
Set<String> exists = new HashSet<String>();
for (Entry<String, ProductLine> entry : productLines.entrySet()) { for (Entry<String, ProductLine> entry : productLines.entrySet()) {
Set<String> domains = entry.getValue().getDomains().keySet(); Set<String> domains = entry.getValue().getDomains().keySet();
List<MetricItemConfig> configs = m_metricConfigManager.queryMetricItemConfigs(domains); List<MetricItemConfig> configs = m_metricConfigManager.queryMetricItemConfigs(domains);
for (MetricItemConfig config : configs) {
exists.add(m_metricConfigManager.buildMetricKey(config.getDomain(), config.getType(), config.getMetricKey()));
}
metricConfigs.put(entry.getValue(), configs); metricConfigs.put(entry.getValue(), configs);
} }
Map<String, MetricItemConfig> allConfigs = m_metricConfigManager.getMetricConfig().getMetricItemConfigs();
Set<String> keys = allConfigs.keySet();
List<MetricItemConfig> otherConfigs = new ArrayList<MetricItemConfig>();
for (String key : exists) {
keys.remove(key);
}
for (String str : keys) {
otherConfigs.add(allConfigs.get(str));
}
ProductLine otherProductLine = new ProductLine("Other").setTitle("Other");
metricConfigs.put(otherProductLine, otherConfigs);
model.setProductMetricConfigs(metricConfigs); model.setProductMetricConfigs(metricConfigs);
} }
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
</br> </br>
<h4 class="text-success">第三步:产品线配置</h4> <h4 class="text-success">第三步:产品线配置</h4>
<p>业务监控展示的是一个产品线下所有的业务指标信息,CAT提供了产品的配置信息</p> <p>业务监控展示的是一个产品线下所有的业务指标信息,CAT提供了产品的配置信息</p>
<p><span class='text-error'>必须把一个产品线下的所有项目加入到此产品线,这样这个产品线下所有指标才能正确展示</span></p>
<h4 class="text-error">url : <a href="" target="_blank">链接</a></h4> <h4 class="text-error">url : <a href="" target="_blank">链接</a></h4>
<img class="img-polaroid" width='60%' src="${model.webapp}/images/business01.png"/> <img class="img-polaroid" width='60%' src="${model.webapp}/images/business01.png"/>
</br> </br>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<input type="hidden" name="op" value="topologyProductLineAddSubmit" /> <input type="hidden" name="op" value="topologyProductLineAddSubmit" />
<table class="table table-striped table-bordered table-condensed"> <table class="table table-striped table-bordered table-condensed">
<tr> <tr>
<td style="text-align: right" class="text-success">产品线名称(全英文)</td> <td style="width:20%" style="text-align: right" class="text-success">产品线名称(全英文)</td>
<td><input name="productLine.id" <td><input name="productLine.id"
value="${model.productLine.id}" required /></td> value="${model.productLine.id}" required /></td>
</tr> </tr>
......
...@@ -51,8 +51,12 @@ ...@@ -51,8 +51,12 @@
<h4 id="state" class="text-center text-error">&nbsp;</h4> <h4 id="state" class="text-center text-error">&nbsp;</h4>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
<tr class="text-success"> <tr class="text-success">
<th>产品线</th><th>标题</th><th>顺序</th><th>监控大盘显示</th><th>项目列表</th> <th width="6%">产品线</th>
<th>操作 <a href="?op=topologyProductLineAdd" class='update btn btn-primary btn-small'>新增</a></th> <th width="8%">标题</th>
<th width="5%">顺序</th>
<th width="12%">监控大盘显示</th>
<th>项目列表</th>
<th width="10%">操作 <a href="?op=topologyProductLineAdd" class='update btn btn-primary btn-small'>新增</a></th>
</tr> </tr>
<c:forEach var="entry" items="${model.productLines}" varStatus="status"> <c:forEach var="entry" items="${model.productLines}" varStatus="status">
<c:set var='item' value='${entry.value}'/> <c:set var='item' value='${entry.value}'/>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册