Exemple #1
0
  public void buildTrendGraph(Model model, Payload payload) {
    Date start = payload.getHistoryStartDate();
    Date end = payload.getHistoryEndDate();
    String type = payload.getType();
    String name = payload.getName();
    String display = name != null ? name : type;
    int size = (int) ((end.getTime() - start.getTime()) * 12 / TimeUtil.ONE_HOUR);
    String queryType = payload.getReportType();
    List<Map<String, double[]>> allDatas = new ArrayList<Map<String, double[]>>();
    long step = TimeUtil.ONE_MINUTE * 5;

    if (queryType.equalsIgnoreCase("day")) {
      Map<String, double[]> currentGraph = getGraphDatasForHour(start, end, model, payload);
      Map<String, double[]> lastDayGraph =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_DAY),
              new Date(end.getTime() - TimeUtil.ONE_DAY),
              model,
              payload);
      Map<String, double[]> lastWeekGraph =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_WEEK),
              new Date(end.getTime() - TimeUtil.ONE_WEEK),
              model,
              payload);

      allDatas.add(currentGraph);
      allDatas.add(lastDayGraph);
      allDatas.add(lastWeekGraph);
    } else if (queryType.equalsIgnoreCase("week")) {
      Map<String, double[]> currentGraph = getGraphDatasForHour(start, end, model, payload);
      Map<String, double[]> lastWeek =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_WEEK),
              new Date(end.getTime() - TimeUtil.ONE_WEEK),
              model,
              payload);

      allDatas.add(currentGraph);
      allDatas.add(lastWeek);
    } else if (queryType.equalsIgnoreCase("month")) {
      size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
      step = TimeUtil.ONE_DAY;
      Map<String, double[]> graphData = getGraphDatasFromDaily(start, end, model, payload);

      allDatas.add(graphData);
    } else {
      throw new RuntimeException("Error graph query type");
    }

    LineChart item = buildTotal(allDatas, start, size, step, display, queryType);
    model.setHitTrend(item.getJsonString());

    item = buildFail(allDatas, start, size, step, display, queryType);
    model.setFailureTrend(item.getJsonString());
  }
Exemple #2
0
  private void showSummarizeReport(Model model, Payload payload) {
    String type = payload.getType();
    String sorted = payload.getSortBy();
    String ip = payload.getIpAddress();
    String domain = model.getDomain();

    Date start = payload.getHistoryStartDate();
    Date end = payload.getHistoryEndDate();
    TransactionReport transactionReport =
        m_reportService.queryTransactionReport(domain, start, end);
    calculateTps(payload, transactionReport);
    model.setReport(transactionReport);
    if (transactionReport != null) {
      if (!StringUtils.isEmpty(type)) {
        model.setDisplayNameReport(
            new DisplayNames()
                .display(sorted, type, ip, transactionReport, payload.getQueryName()));
      } else {
        model.setDisplayTypeReport(new DisplayTypes().display(sorted, ip, transactionReport));
      }
    }
  }
Exemple #3
0
  @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);
    }
  }