提交 06cad87a 编写于 作者: J jialinsun

chengjunxia bootcamp task modify & merge request

上级 f705887f
......@@ -3,7 +3,9 @@ package com.dianping.cat.report.page.metric;
public enum Action implements org.unidal.web.mvc.Action {
METRIC("view"),
DASHBOARD("dashboard");
DASHBOARD("dashboard"),
JSON("json");
private String m_name;
......
......@@ -8,6 +8,7 @@ import java.util.Set;
import javax.servlet.ServletException;
import org.codehaus.plexus.util.StringUtils;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
......@@ -35,7 +36,7 @@ public class Handler implements PageHandler<Context> {
@Inject
private MetricGroupConfigManager m_metricGroupConfigManager;
@Inject
private MetricGraphCreator m_graphCreator;
......@@ -56,24 +57,21 @@ public class Handler implements PageHandler<Context> {
int timeRange = payload.getTimeRange();
Date start = new Date(date - (timeRange - 1) * TimeUtil.ONE_HOUR);
Date end = new Date(date + TimeUtil.ONE_HOUR);
Map<String, LineChart> allCharts = buildLineCharts(payload, start, end);
switch (payload.getAction()) {
case METRIC:
Map<String, LineChart> charts = m_graphCreator.buildChartsByProductLine(payload.getProduct(), start, end);
model.setLineCharts(new ArrayList<LineChart>(charts.values()));
break;
case DASHBOARD:
String group = payload.getGroup();
Map<String, LineChart> allCharts = null;
if (group == null || group.length() == 0) {
allCharts = m_graphCreator.buildDashboard(start, end);
} else {
allCharts = m_graphCreator.buildDashboardByGroup(start, end, group);
}
model.setLineCharts(new ArrayList<LineChart>(allCharts.values()));
break;
case JSON:
String id = payload.getId();
LineChart lineChart = allCharts.get(id);
if (lineChart != null) {
model.setJson(allCharts.get(id).getJsonString());
}
break;
}
Set<String> groups = m_metricGroupConfigManager.getMetricGroupConfig().getMetricGroups().keySet();
......@@ -82,14 +80,28 @@ public class Handler implements PageHandler<Context> {
m_jspViewer.view(ctx, model);
}
private void normalize(Model model, Payload payload) {
model.setPage(ReportPage.METRIC);
String poduct = payload.getProduct();
private Map<String, LineChart> buildLineCharts(Payload payload, Date start, Date end) {
Map<String, LineChart> allCharts = null;
String productLine = payload.getProduct();
if (StringUtils.isEmpty(productLine)) {
String group = payload.getGroup();
if (poduct == null || poduct.length() == 0) {
payload.setAction(Action.DASHBOARD.getName());
if (StringUtils.isEmpty(group)) {
allCharts = m_graphCreator.buildDashboard(start, end);
} else {
allCharts = m_graphCreator.buildDashboardByGroup(start, end, group);
}
} else {
allCharts = m_graphCreator.buildChartsByProductLine(productLine, start, end);
}
return allCharts;
}
private void normalize(Model model, Payload payload) {
model.setPage(ReportPage.METRIC);
m_normalizePayload.normalize(model, payload);
int timeRange = payload.getTimeRange();
Date startTime = new Date(payload.getDate() - (timeRange - 1) * TimeUtil.ONE_HOUR);
Date endTime = new Date(payload.getDate() + TimeUtil.ONE_HOUR - 1);
......@@ -97,5 +109,4 @@ public class Handler implements PageHandler<Context> {
model.setStartTime(startTime);
model.setEndTime(endTime);
}
}
......@@ -3,7 +3,9 @@ package com.dianping.cat.report.page.metric;
public enum JspFile {
METRIC("/jsp/report/metric/metric.jsp"),
DASHBOARD("/jsp/report/metric/dashboard.jsp"), ;
DASHBOARD("/jsp/report/metric/dashboard.jsp"),
JSON("/jsp/report/metric/json.jsp");
private String m_path;
......
......@@ -14,6 +14,8 @@ public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model>
return JspFile.METRIC.getPath();
case DASHBOARD:
return JspFile.DASHBOARD.getPath();
case JSON:
return JspFile.JSON.getPath();
}
throw new RuntimeException("Unknown action: " + action);
......
......@@ -20,13 +20,15 @@ public class Model extends AbstractReportModel<Action, Context> {
private List<LineChart> m_lineCharts;
private Collection<ProductLine> m_productLines;
private List<String> m_metricGroups;
private Date m_startTime;
private Date m_endTime;
private String m_json;
public Model(Context ctx) {
super(ctx);
}
......@@ -59,8 +61,8 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public List<String> getMetricGroups() {
return m_metricGroups;
}
return m_metricGroups;
}
public Collection<ProductLine> getProductLines() {
return m_productLines;
......@@ -79,8 +81,8 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public void setMetricGroups(List<String> metricGroups) {
m_metricGroups = metricGroups;
}
m_metricGroups = metricGroups;
}
public void setProductLines(Collection<ProductLine> productLines) {
m_productLines = productLines;
......@@ -89,5 +91,13 @@ public class Model extends AbstractReportModel<Action, Context> {
public void setStartTime(Date startTime) {
m_startTime = startTime;
}
public String getJson() {
return m_json;
}
public void setJson(String json) {
this.m_json = json;
}
}
......@@ -26,13 +26,16 @@ public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("fullScreen")
private boolean m_fullScreen = false;
@FieldMeta("hideNav")
private boolean m_hideNav = true;
@FieldMeta("group")
private String m_group;
@FieldMeta("id")
private String m_id;
public Payload() {
super(ReportPage.METRIC);
}
......@@ -63,6 +66,10 @@ public class Payload extends AbstractReportPayload<Action> {
return m_timeRange;
}
public String getId() {
return m_id;
}
public boolean isFullScreen() {
return m_fullScreen;
}
......@@ -99,14 +106,18 @@ public class Payload extends AbstractReportPayload<Action> {
public void setRefresh(boolean refresh) {
m_refresh = refresh;
}
public boolean isHideNav() {
return m_hideNav;
}
return m_hideNav;
}
public void setHideNav(boolean hideNav) {
m_hideNav = hideNav;
}
m_hideNav = hideNav;
}
public void setId(String id) {
m_id = id;
}
@Override
public void validate(ActionContext<?> ctx) {
......
......@@ -78,8 +78,9 @@ public class ThirdPartyAlert implements Task {
String domain = entry.getKey();
List<ThirdPartyAlertEntity> thirdPartyAlerts = entry.getValue();
AlertEntity entity = new AlertEntity();
entity.setDate(new Date()).setContent(thirdPartyAlerts.toString()).setLevel("warning");
entity.setDate(new Date()).setContent(thirdPartyAlerts.toString())
.setLevel(AlertConstants.WARNING_EXCEPTION);
entity.setMetric(getName()).setType(getName()).setGroup(domain);
m_sendManager.addAlert(entity);
......
<%@ page contentType="text/html; charset=utf-8" %>
<jsp:useBean id="ctx" type="com.dianping.cat.report.page.metric.Context" scope="request"/>
<jsp:useBean id="payload" type="com.dianping.cat.report.page.metric.Payload" scope="request"/>
<jsp:useBean id="model" type="com.dianping.cat.report.page.metric.Model" scope="request"/>
${model.json}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册