Package com.dianping.cat.consumer.event

Source Code of com.dianping.cat.consumer.event.EventReportMerger

package com.dianping.cat.consumer.event;

import com.dianping.cat.Constants;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.entity.EventType;
import com.dianping.cat.consumer.event.model.entity.Machine;
import com.dianping.cat.consumer.event.model.entity.Range;
import com.dianping.cat.consumer.event.model.transform.DefaultMerger;

public class EventReportMerger extends DefaultMerger {
  public EventReportMerger(EventReport eventReport) {
    super(eventReport);
  }

  @Override
  public void mergeMachine(Machine old, Machine machine) {
  }

  @Override
  public void mergeName(EventName old, EventName other) {
    old.setTotalCount(old.getTotalCount() + other.getTotalCount());
    old.setFailCount(old.getFailCount() + other.getFailCount());

    if (old.getTotalCount() > 0) {
      old.setFailPercent(old.getFailCount() * 100.0 / old.getTotalCount());
    }

    if (old.getSuccessMessageUrl() == null) {
      old.setSuccessMessageUrl(other.getSuccessMessageUrl());
    }

    if (old.getFailMessageUrl() == null) {
      old.setFailMessageUrl(other.getFailMessageUrl());
    }
  }

  @Override
  public void mergeRange(Range old, Range range) {
    old.setCount(old.getCount() + range.getCount());
    old.setFails(old.getFails() + range.getFails());
  }

  public Machine mergesForAllMachine(EventReport report) {
    Machine machine = new Machine(Constants.ALL);

    for (Machine m : report.getMachines().values()) {
      if (!m.getIp().equals(Constants.ALL)) {
        visitMachineChildren(machine, m);
      }
    }

    return machine;
  }

  @Override
  public void mergeType(EventType old, EventType other) {
    old.setTotalCount(old.getTotalCount() + other.getTotalCount());
    old.setFailCount(old.getFailCount() + other.getFailCount());

    if (old.getTotalCount() > 0) {
      old.setFailPercent(old.getFailCount() * 100.0 / old.getTotalCount());
    }

    if (old.getSuccessMessageUrl() == null) {
      old.setSuccessMessageUrl(other.getSuccessMessageUrl());
    }

    if (old.getFailMessageUrl() == null) {
      old.setFailMessageUrl(other.getFailMessageUrl());
    }
  }

  @Override
  public void visitEventReport(EventReport eventReport) {
    super.visitEventReport(eventReport);

    EventReport report = getEventReport();
    report.getDomainNames().addAll(eventReport.getDomainNames());
    report.getIps().addAll(eventReport.getIps());
  }

}
TOP

Related Classes of com.dianping.cat.consumer.event.EventReportMerger

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.