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

Examples of com.dianping.cat.consumer.dependency.model.entity.DependencyReport


public class DependencyReportMergerTest {
  @Test
  public void testDependencyReportMerge() throws Exception {
    String oldXml = Files.forIO().readFrom(getClass().getResourceAsStream("old.xml"), "utf-8");
    String newXml = Files.forIO().readFrom(getClass().getResourceAsStream("new.xml"), "utf-8");
    DependencyReport reportOld = DefaultSaxParser.parse(oldXml);
    DependencyReport reportNew = DefaultSaxParser.parse(newXml);
    String expected = Files.forIO().readFrom(getClass().getResourceAsStream("result.xml"), "utf-8");
    DependencyReport result = DefaultSaxParser.parse(expected);

    DependencyReportMerger merger = new DependencyReportMerger(new DependencyReport(reportOld.getDomain()));

    reportOld.accept(merger);
    reportNew.accept(merger);

    Assert.assertEquals("Check the merge result!", result.toString(), merger.getDependencyReport().toString());
  }
View Full Code Here


  @Override
  protected DependencyReport merge(ModelRequest request, List<ModelResponse<DependencyReport>> responses) {
    if (responses.size() == 0) {
      return null;
    }
    DependencyReportMerger merger = new DependencyReportMerger(new DependencyReport(request.getDomain()));
    for (ModelResponse<DependencyReport> response : responses) {
      DependencyReport model = response.getModel();

      if (model != null) {
        model.accept(merger);
      }
    }

    return merger.getDependencyReport();
  }
View Full Code Here

    super(DependencyAnalyzer.ID);
  }

  @Override
  protected DependencyReport getReport(ModelRequest request, ModelPeriod period, String domain) throws Exception {
    DependencyReport report = super.getReport(request, period, domain);

    if (report == null && period.isLast()) {
      long startTime = request.getStartTime();
      report = getReportFromLocalDisk(startTime, domain);

      if (report == null) {
        report = new DependencyReport(domain);
        report.setStartTime(new Date(startTime));
        report.setEndTime(new Date(startTime + TimeHelper.ONE_HOUR - 1));
      }
    }
    return report;
  }
View Full Code Here

  @Override
  protected DependencyReport buildModel(ModelRequest request) throws Exception {
    String domain = request.getDomain();
    long date = request.getStartTime();
    DependencyReport report;

    if (isLocalMode()) {
      report = getReportFromLocalDisk(date, domain);
    } else {
      report = getReportFromDatabase(date, domain);
View Full Code Here

public class DependencyReportService extends AbstractReportService<DependencyReport> {

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

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

    HourlyReportContent content = m_hourlyReportContentDao.findByPK(id, HourlyReportContentEntity.READSET_FULL);

    if (content != null) {
      return DefaultNativeParser.parse(content.getContent());
    } else {
      return new DependencyReport(domain);
    }
  }
View Full Code Here

    }
  }

  @Override
  public DependencyReport queryHourlyReport(String domain, Date start, Date end) {
    DependencyReportMerger merger = new DependencyReportMerger(new DependencyReport(domain));
    long startTime = start.getTime();
    long endTime = end.getTime();
    String name = DependencyAnalyzer.ID;

    for (; startTime < endTime; startTime = startTime + TimeHelper.ONE_HOUR) {
      List<HourlyReport> reports = null;
      try {
        reports = m_hourlyReportDao.findAllByDomainNamePeriod(new Date(startTime), domain, name,
              HourlyReportEntity.READSET_FULL);
      } catch (DalException e) {
        Cat.logError(e);
      }
      if (reports != null) {
        for (HourlyReport report : reports) {
          String xml = report.getContent();

          try {
            if (xml != null && xml.length() > 0) {
              DependencyReport reportModel = com.dianping.cat.consumer.dependency.model.transform.DefaultSaxParser
                    .parse(xml);
              reportModel.accept(merger);
            } else {
              DependencyReport reportModel = queryFromHourlyBinary(report.getId(), domain);
              reportModel.accept(merger);
            }
          } catch (DalNotFoundException e) {
            //ignore
          } catch (Exception e) {
            Cat.logError(e);
          }
        }
      }
    }
    DependencyReport dependencyReport = merger.getDependencyReport();

    dependencyReport.setStartTime(start);
    dependencyReport.setEndTime(new Date(end.getTime() - 1));

    Set<String> domains = queryAllDomainNames(start, end, DependencyAnalyzer.ID);
    dependencyReport.getDomainNames().addAll(domains);
    return dependencyReport;
  }
View Full Code Here

    model.setDashboardGraph(dashboardGraph.toJson());
    model.setDashboardGraphData(dashboardGraph);
  }

  private void buildDependencyLineChart(Model model, Payload payload, Date reportTime) {
    DependencyReport dependencyReport = queryDependencyReport(payload);
    buildHourlyReport(dependencyReport, model, payload);
    buildHourlyLineGraph(dependencyReport, model);

    Segment segment = dependencyReport.findSegment(model.getMinute());
    Map<String, List<String>> dependency = parseDependencies(segment);

    model.setEvents(m_externalInfoBuilder.queryDependencyEvent(dependency, model.getDomain(), reportTime));
  }
View Full Code Here

    TopologyGraph topologyGraph = m_graphManager.buildTopologyGraph(model.getDomain(), reportTime.getTime());
    Map<String, List<String>> graphDependency = parseDependencies(topologyGraph);
    Map<String, List<Event>> externalErrors = m_externalInfoBuilder.queryDependencyEvent(graphDependency,
          model.getDomain(), reportTime);

    DependencyReport report = queryDependencyReport(payload);
    buildHourlyReport(report, model, payload);
    model.setEvents(externalErrors);
    m_externalInfoBuilder.buildZabbixErrorOnGraph(topologyGraph,
          m_externalInfoBuilder.buildZabbixHeader(payload, model), externalErrors);
    m_externalInfoBuilder.buildExceptionInfoOnGraph(payload, model, topologyGraph);
View Full Code Here

    String domain = payload.getDomain();
    ModelRequest request = new ModelRequest(domain, payload.getDate());

    if (m_dependencyService.isEligable(request)) {
      ModelResponse<DependencyReport> response = m_dependencyService.invoke(request);
      DependencyReport report = response.getModel();

      if (report != null && report.getStartTime() == null) {
        report.setStartTime(new Date(payload.getDate()));
        report.setStartTime(new Date(payload.getDate() + TimeHelper.ONE_HOUR));
      }
      return report;
    } else {
      throw new RuntimeException("Internal error: no eligable dependency service registered for " + request + "!");
    }
View Full Code Here

TOP

Related Classes of com.dianping.cat.consumer.dependency.model.entity.DependencyReport

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.