Package com.dianping.cat.report.task.utilization

Source Code of com.dianping.cat.report.task.utilization.UtilizationReportMerger

package com.dianping.cat.report.task.utilization;

import com.dianping.cat.home.utilization.entity.ApplicationState;
import com.dianping.cat.home.utilization.entity.Domain;
import com.dianping.cat.home.utilization.entity.MachineState;
import com.dianping.cat.home.utilization.entity.UtilizationReport;
import com.dianping.cat.home.utilization.transform.DefaultMerger;

public class UtilizationReportMerger extends DefaultMerger {

  public UtilizationReportMerger(UtilizationReport utilizationReport) {
    super(utilizationReport);
  }

  @Override
  protected void mergeApplicationState(ApplicationState to, ApplicationState from) {
    to.setAvg95((to.getAvg95() * to.getCount() + from.getAvg95() * from.getCount())
          / (to.getCount() + from.getCount()));
    if (from.getMaxQps() > to.getMaxQps()) {
      to.setMaxQps(from.getMaxQps());
    }
    to.setSum(to.getSum() + from.getSum());
    to.setCount(to.getCount() + from.getCount());
    to.setFailureCount(to.getFailureCount() + from.getFailureCount());
    to.setAvg(to.getSum() / to.getCount());
    to.setFailurePercent(to.getFailureCount() * 1.0 / to.getCount());
  }

  @Override
  protected void mergeDomain(Domain old, Domain domain) {
    if (domain.getMachineNumber() > old.getMachineNumber()) {
      old.setMachineNumber(domain.getMachineNumber());
    }
  }

  @Override
  protected void mergeMachineState(MachineState to, MachineState from) {
    if (from.getAvgMax() > to.getAvgMax()) {
      to.setAvgMax(from.getAvgMax());
    }
    to.setSum(to.getSum() + from.getSum());
    to.setCount(to.getCount() + from.getCount());
    to.setAvg(to.getSum() * 1.0 / to.getCount());
  }

  @Override
  protected void mergeUtilizationReport(UtilizationReport old, UtilizationReport bugReport) {
    super.mergeUtilizationReport(old, bugReport);
  }

  @Override
  public void visitUtilizationReport(UtilizationReport utilizationReport) {
    UtilizationReport oldReport = getUtilizationReport();

    oldReport.setDomain(utilizationReport.getDomain());
    oldReport.setStartTime(utilizationReport.getStartTime());
    oldReport.setEndTime(utilizationReport.getEndTime());
    super.visitUtilizationReport(utilizationReport);
  }

}
TOP

Related Classes of com.dianping.cat.report.task.utilization.UtilizationReportMerger

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.