@Override @OutboundActionMeta(name = "t") public void handleOutbound(Context ctx) throws ServletException, IOException { Model model = new Model(ctx); Payload payload = ctx.getPayload(); normalize(model, payload); String type = payload.getType(); switch (payload.getAction()) { case HOURLY_REPORT: showHourlyReport(model, payload); DisplayNames displayNameReport = model.getDisplayNameReport(); if ((!StringUtils.isEmpty(type)) && displayNameReport != null) { buildTransactionNameGraph(displayNameReport.getResults(), model); } break; case HISTORY_REPORT: showSummarizeReport(model, payload); displayNameReport = model.getDisplayNameReport(); if ((!StringUtils.isEmpty(type)) && displayNameReport != null) { buildTransactionNameGraph(displayNameReport.getResults(), model); } break; case HISTORY_GRAPH: m_historyGraph.buildTrendGraph(model, payload); break; case GRAPHS: showHourlyGraphs(model, payload); break; case MOBILE: showHourlyReport(model, payload); if (!StringUtils.isEmpty(payload.getType())) { DisplayNames report = model.getDisplayNameReport(); String json = m_gson.toJson(report); model.setMobileResponse(json); } else { DisplayTypes report = model.getDisplayTypeReport(); String json = m_gson.toJson(report); model.setMobileResponse(json); } break; case MOBILE_GRAPHS: MobileGraphs graphs = showMobileGraphs(model, payload); if (graphs != null) { model.setMobileResponse(m_gson.toJson(graphs)); } break; } if (payload.isXml()) { m_xmlViewer.view(ctx, model); } else { m_jspViewer.view(ctx, model); } }
@Test public void testBuildGraphDatasByType() throws IOException { HistoryGraphs handler = new HistoryGraphs(); long time = System.currentTimeMillis(); time = time - time % (ONE_DAY); Date start = new Date(time - ONE_DAY); Date end = new Date(time); List<Graph> graphs = new ArrayList<Graph>(); time = start.getTime(); for (; time < end.getTime(); time += 3600 * 1000) { Date addtime = new Date(time); graphs.add(creatGraph(addtime)); } Map<String, double[]> graphDatas = handler.buildGraphDatas(start, end, "heartbeat", "", graphs); double[] errors = graphDatas.get("errors"); double[] expectErrors = new double[errors.length]; for (int i = 0; i < expectErrors.length; i++) { expectErrors[i] = 1; } Assert.assertEquals(true, Arrays.equals(errors, expectErrors)); }
@Override @OutboundActionMeta(name = "t") public void handleOutbound(Context ctx) throws ServletException, IOException { Model model = new Model(ctx); Payload payload = ctx.getPayload(); normalize(model, payload); String domain = payload.getDomain(); Action action = payload.getAction(); String ipAddress = payload.getIpAddress(); String group = payload.getGroup(); String type = payload.getType(); String name = payload.getName(); String ip = payload.getIpAddress(); if (StringUtils.isEmpty(group)) { group = m_configManager.queryDefaultGroup(domain); payload.setGroup(group); } model.setGroupIps(m_configManager.queryIpByDomainAndGroup(domain, group)); model.setGroups(m_configManager.queryDomainGroup(payload.getDomain())); switch (action) { case HOURLY_REPORT: TransactionReport report = getHourlyReport(payload); report = m_mergeManager.mergerAllIp(report, ipAddress); calculateTps(payload, report); if (report != null) { model.setReport(report); buildTransactionMetaInfo(model, payload, report); } break; case HISTORY_REPORT: report = m_reportService.queryTransactionReport( domain, payload.getHistoryStartDate(), payload.getHistoryEndDate()); calculateTps(payload, report); if (report != null) { model.setReport(report); buildTransactionMetaInfo(model, payload, report); } break; case HISTORY_GRAPH: m_historyGraph.buildTrendGraph(model, payload); break; case GRAPHS: report = getTransactionGraphReport(model, payload); if (name == null || name.length() == 0) { name = Constants.ALL; } report = m_mergeManager.mergerAllName(report, ip, name); model.setReport(report); buildTransactionNameGraph(model, report, type, name, ip); break; case HOURLY_GROUP_REPORT: report = getHourlyReport(payload); report = filterReportByGroup(report, domain, group); report = m_mergeManager.mergerAllIp(report, ipAddress); calculateTps(payload, report); if (report != null) { model.setReport(report); buildTransactionMetaInfo(model, payload, report); } break; case HISTORY_GROUP_REPORT: report = m_reportService.queryTransactionReport( domain, payload.getHistoryStartDate(), payload.getHistoryEndDate()); calculateTps(payload, report); report = filterReportByGroup(report, domain, group); report = m_mergeManager.mergerAllIp(report, ipAddress); if (report != null) { model.setReport(report); buildTransactionMetaInfo(model, payload, report); } break; case GROUP_GRAPHS: report = getTransactionGraphReport(model, payload); report = filterReportByGroup(report, domain, group); if (name == null || name.length() == 0) { name = Constants.ALL; } report = m_mergeManager.mergerAllName(report, ip, name); model.setReport(report); buildTransactionNameGraph(model, report, type, name, ip); break; case HISTORY_GROUP_GRAPH: List<String> ips = m_configManager.queryIpByDomainAndGroup(domain, group); m_historyGraph.buildGroupTrendGraph(model, payload, ips); break; } if (payload.isXml()) { m_xmlViewer.view(ctx, model); } else { m_jspViewer.view(ctx, model); } }