Package com.dianping.cat.report.task.event

Source Code of com.dianping.cat.report.task.event.EventMerger

/**
*
*/
package com.dianping.cat.report.task.event;

import java.util.Date;
import java.util.List;
import java.util.Set;

import com.dianping.cat.consumer.event.EventReportCountFilter;
import com.dianping.cat.consumer.event.EventReportMerger;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.entity.Machine;
import com.dianping.cat.report.task.TaskHelper;

public class EventMerger {

  private EventReport merge(String reportDomain, List<EventReport> reports, boolean isDaily) {
    EventReportMerger merger = null;

    if (isDaily) {
      merger = new HistoryEventReportMerger(new EventReport(reportDomain));
    } else {
      merger = new EventReportMerger(new EventReport(reportDomain));
    }
    for (EventReport report : reports) {
      report.accept(merger);
    }
    return merger.getEventReport();
  }

  public EventReport mergeForDaily(String reportDomain, List<EventReport> reports, Set<String> domains) {
    EventReport eventReport = merge(reportDomain, reports, true);
    HistoryEventReportMerger merger = new HistoryEventReportMerger(new EventReport(reportDomain));
    EventReport eventReport2 = merge(reportDomain, reports, true);
    Machine allMachines = merger.mergesForAllMachine(eventReport2);

    eventReport.addMachine(allMachines);
    eventReport.getIps().add("All");
    eventReport.getDomainNames().addAll(domains);

    Date date = eventReport.getStartTime();
    eventReport.setStartTime(TaskHelper.todayZero(date));
    Date end = new Date(TaskHelper.tomorrowZero(date).getTime() - 1000);
    eventReport.setEndTime(end);
   
    new EventReportCountFilter().visitEventReport(eventReport);
    return eventReport;
  }

}
TOP

Related Classes of com.dianping.cat.report.task.event.EventMerger

TOP
Copyright © 2018 www.massapi.com. 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.