Package com.dianping.cat.consumer.metric.model.entity

Examples of com.dianping.cat.consumer.metric.model.entity.MetricReport


    Map<String, MetricReport> reports = new HashMap<String, MetricReport>();

    for (String group : groups) {
      Date end = new Date(period.getTime() + TimeHelper.ONE_HOUR);
      MetricReport report = m_reportService.queryMetricReport(group, period, end);

      reports.put(group, report);
    }

    NetGraphSet netGraphSet = m_netGraphBuilder
View Full Code Here


      MessageTree tree = generateMessageTree(i);

      m_analyzer.process(tree);
    }

    MetricReport report = m_analyzer.getReport(m_domain);
    String expected = Files.forIO().readFrom(getClass().getResourceAsStream("metric_analyzer.xml"), "utf-8");

    Assert.assertEquals(expected.replaceAll("\r", ""), report.toString().replaceAll("\r", ""));

    m_analyzer.storeReports(true);

    Assert.assertEquals(2, m_businessReportDao.m_count);
    Assert.assertEquals(2, m_bucketCount);
View Full Code Here

  @Inject
  private BusinessReportDao m_businessReportDao;

  @Override
  public MetricReport makeReport(String domain, Date start, Date end) {
    MetricReport report = new MetricReport(domain);

    report.setStartTime(start);
    report.setEndTime(end);
    return report;
  }
View Full Code Here

    throw new RuntimeException("Metric report don't support daily report");
  }

  @Override
  public MetricReport queryHourlyReport(String group, Date start, Date end) {
    MetricReportMerger merger = new MetricReportMerger(new MetricReport(group));

    try {
      List<BusinessReport> reports = m_businessReportDao.findAllByPeriodProductLineName(start, group,
            BusinessReportEntity.READSET_FULL);

      for (BusinessReport report : reports) {
        byte[] content = report.getContent();

        try {
          MetricReport reportModel = DefaultNativeParser.parse(content);

          reportModel.accept(merger);
        } catch (Exception e) {
          Cat.logError(e);
          Cat.getProducer().logEvent("ErrorXML", MetricAnalyzer.ID, Event.SUCCESS,
                report.getProductLine() + " " + report.getPeriod() + " " + report.getId());
        }
      }
    } catch (DalNotFoundException e) {
      m_logger.warn(this.getClass().getSimpleName() + " " + group + " " + start + " " + end);
    } catch (Exception e) {
      Cat.logError(e);
    }
    MetricReport metricReport = merger.getMetricReport();

    metricReport.setStartTime(start);
    metricReport.setEndTime(new Date(end.getTime() - 1));
    return transform(metricReport);
  }
View Full Code Here

      s_threadPool.submit(new Runnable() {
        @Override
        public void run() {
          try {
            MetricReport report = invoke(request, server);

            if (report != null) {
              reports.add(report);
              ips.add(server.getKey());
            }
          } catch (Exception e) {
            logError(e);
            t.setStatus(e);
          } finally {
            semaphore.release();
          }
        }
      });
      count++;
    }

    try {
      semaphore.tryAcquire(count, 10000, TimeUnit.MILLISECONDS);
    } catch (InterruptedException e) {
      // ignore it
      t.setStatus(e);
    } finally {
      t.complete();
    }
    String require = request.getProperty("requireAll");

    if (reports.size() != count && require != null) {
      Cat.logEvent("FetchMetricReportError", request.getDomain(), Event.SUCCESS, null);

      return null;
    } else {
      MetricReportMerger merger = new MetricReportMerger(new MetricReport(request.getDomain()));

      for (MetricReport report : reports) {
        report.accept(merger);
      }
      return merger.getMetricReport();
    }
  }
View Full Code Here

      int len = xml == null ? 0 : xml.length();

      t.addData("length", len);

      if (len > 0) {
        MetricReport report = buildModel(xml);

        t.setStatus(Message.SUCCESS);
        return report;
      } else {
        t.setStatus("NoReport");
View Full Code Here

    Pair<Integer, List<Condition>> resultPair = queryCheckMinuteAndConditions(configs);
    int maxMinute = resultPair.getKey();
    List<Condition> conditions = resultPair.getValue();

    if (minute >= maxMinute - 1) {
      MetricReport report = fetchMetricReport(product, ModelPeriod.CURRENT);

      if (report != null) {
        int start = minute + 1 - maxMinute;
        int end = minute;

        value = queryRealData(start, end, metricKey, report, type);
        baseline = queryBaseLine(start, end, metricKey, new Date(ModelPeriod.CURRENT.getStartTime()), type);

        return m_dataChecker.checkData(value, baseline, conditions);
      }
    } else if (minute < 0) {
      MetricReport lastReport = fetchMetricReport(product, ModelPeriod.LAST);

      if (lastReport != null) {
        int start = 60 + minute + 1 - (maxMinute);
        int end = 60 + minute;

        value = queryRealData(start, end, metricKey, lastReport, type);
        baseline = queryBaseLine(start, end, metricKey, new Date(ModelPeriod.LAST.getStartTime()), type);
        return m_dataChecker.checkData(value, baseline, conditions);
      }
    } else {
      MetricReport currentReport = fetchMetricReport(product, ModelPeriod.CURRENT);
      MetricReport lastReport = fetchMetricReport(product, ModelPeriod.LAST);

      if (currentReport != null && lastReport != null) {
        int currentStart = 0, currentEnd = minute;
        double[] currentValue = queryRealData(currentStart, currentEnd, metricKey, currentReport, type);
        double[] currentBaseline = queryBaseLine(currentStart, currentEnd, metricKey,
View Full Code Here

    return new ArrayList<AlertResultEntity>();
  }

  protected MetricReport fetchMetricReport(String product, ModelPeriod period) {
    if (period == ModelPeriod.CURRENT) {
      MetricReport report = m_currentReports.get(product);

      if (report != null) {
        return report;
      } else {
        ModelRequest request = new ModelRequest(product, ModelPeriod.CURRENT.getStartTime()).setProperty(
              "requireAll", "ture");

        report = m_service.invoke(request);
        if (report != null) {
          m_currentReports.put(product, report);
        }
        return report;
      }
    } else if (period == ModelPeriod.LAST) {
      MetricReport report = m_lastReports.get(product);

      if (report != null) {
        return report;
      } else {
        ModelRequest request = new ModelRequest(product, ModelPeriod.LAST.getStartTime()).setProperty("requireAll",
View Full Code Here

  }

  protected void processProductLine(ProductLine productLine) {
    int minute = getAlreadyMinute();
    String product = productLine.getId();
    MetricReport report = fetchMetricReport(product, ModelPeriod.CURRENT);

    if (report != null) {
      for (Entry<String, MetricItem> entry : report.getMetricItems().entrySet()) {
        try {
          processMetricItem(minute, productLine, entry.getKey());
        } catch (Exception e) {
          Cat.logError(e);
        }
View Full Code Here

    }
    return des;
  }

  private Map<String, double[]> queryMetricValueByDate(String productLine, long start) {
    MetricReport metricReport = m_metricReportService.queryMetricReport(productLine, new Date(start));
    List<String> domains = m_productLineConfigManager.queryDomainsByProductLine(productLine);
    List<MetricItemConfig> metricConfigs = m_metricConfigManager.queryMetricItemConfigs(domains);

    Collections.sort(metricConfigs, new Comparator<MetricItemConfig>() {
      @Override
View Full Code Here

TOP

Related Classes of com.dianping.cat.consumer.metric.model.entity.MetricReport

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.