Package com.alipay.bluewhale.core.stats

Source Code of com.alipay.bluewhale.core.stats.BoltTaskStatsData

package com.alipay.bluewhale.core.stats;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import backtype.storm.generated.BoltStats;
import backtype.storm.generated.GlobalStreamId;
import backtype.storm.generated.TaskSpecificStats;
import backtype.storm.generated.TaskStats;

/**
* bolt�����ͳ�ƽ��
*
* @author yannian
*
*/
public class BoltTaskStatsData extends BaseStatsData{

  private static final long serialVersionUID = -6250304684824361807L;
  private CommonStatsData common = new CommonStatsData();
  private HashMap<Integer, Object> acked = new HashMap<Integer, Object>();
  private HashMap<Integer, Object> failed = new HashMap<Integer, Object>();
  private HashMap<Integer, Object> process_latencies = new HashMap<Integer, Object>();

  public String getType() {
    return "bolt";
  }

  public BoltTaskStatsData(CommonStatsData common,
      HashMap<Integer, Object> acked, HashMap<Integer, Object> failed,
      HashMap<Integer, Object> process_latencies) {
    super();
    this.common = common;
    this.acked = acked;
    this.failed = failed;
    this.process_latencies = process_latencies;
  }

  public CommonStatsData getCommon() {
    return common;
  }

  public void setCommon(CommonStatsData common) {
    this.common = common;
  }

  public HashMap<Integer, Object> getAcked() {
    return acked;
  }

  public void setAcked(HashMap<Integer, Object> acked) {
    this.acked = acked;
  }

  public HashMap<Integer, Object> getFailed() {
    return failed;
  }

  public void setFailed(HashMap<Integer, Object> failed) {
    this.failed = failed;
  }

  public HashMap<Integer, Object> getProcess_latencies() {
    return process_latencies;
  }

  public void setProcess_latencies(HashMap<Integer, Object> process_latencies) {
    this.process_latencies = process_latencies;
  }

  public TaskStats getTaskStats() {
    return new TaskStats(common.get_emitted(), common.get_transferred(),
        getThirftstats());
  }

  public TaskSpecificStats getThirftstats() {
    return TaskSpecificStats.bolt(new BoltStats(get_acked(), get_fail(),
        get_process_latencies()));
  }

  @SuppressWarnings("unchecked")
  private Map<String, Map<GlobalStreamId, Long>> get_acked() {
    Map<String, Map<GlobalStreamId, Long>> rtn = new HashMap<String, Map<GlobalStreamId, Long>>();
    for (Entry<Integer, Object> times : acked.entrySet()) {
      Map<Object, Long> val = (Map<Object, Long>) times.getValue();
      String key = Stats.parseTimeKey(times.getKey());
      Map<GlobalStreamId, Long> stats = new HashMap<GlobalStreamId, Long>();
      for (Entry<Object, Long> stat : val.entrySet()) {
        stats.put((GlobalStreamId) stat.getKey(), stat.getValue());
      }

      rtn.put(key, stats);
    }
    return rtn;
  }

  @SuppressWarnings("unchecked")
  private Map<String, Map<GlobalStreamId, Long>> get_fail() {
    Map<String, Map<GlobalStreamId, Long>> rtn = new HashMap<String, Map<GlobalStreamId, Long>>();
    for (Entry<Integer, Object> times : failed.entrySet()) {
      Map<Object, Long> val = (Map<Object, Long>) times.getValue();
      String key = Stats.parseTimeKey(times.getKey());
      Map<GlobalStreamId, Long> stats = new HashMap<GlobalStreamId, Long>();
      for (Entry<Object, Long> stat : val.entrySet()) {
        stats.put((GlobalStreamId) stat.getKey(), stat.getValue());
      }

      rtn.put(key, stats);
    }
    return rtn;
  }

  @SuppressWarnings("unchecked")
  private Map<String, Map<GlobalStreamId, Double>> get_process_latencies() {
    Map<String, Map<GlobalStreamId, Double>> rtn = new HashMap<String, Map<GlobalStreamId, Double>>();
    for (Entry<Integer, Object> times : process_latencies.entrySet()) {
      Map<Object, Double> val = (Map<Object, Double>) times.getValue();
      String key = Stats.parseTimeKey(times.getKey());
      Map<GlobalStreamId, Double> stats = new HashMap<GlobalStreamId, Double>();
      for (Entry<Object, Double> stat : val.entrySet()) {
        stats.put((GlobalStreamId) stat.getKey(), stat.getValue());
      }

      rtn.put(key, stats);
    }
    return rtn;
  }

  @Override
  public boolean equals(Object assignment) {
    if (assignment instanceof BoltTaskStatsData

        && ((BoltTaskStatsData) assignment).getCommon().equals(common)
        && ((BoltTaskStatsData) assignment).getAcked().equals(acked)
        && ((BoltTaskStatsData) assignment).getFailed().equals(failed)
        && ((BoltTaskStatsData) assignment).getProcess_latencies()
            .equals(process_latencies)

    ) {
      return true;
    }
    return false;
  }

  @Override
  public int hashCode() {
    return common.hashCode() + acked.hashCode() + failed.hashCode()
        + process_latencies.hashCode();
  }

  @Override
  public String toString() {
    return "BoltTaskStatsData [common=" + common + ", acked=" + acked
        + ", failed=" + failed + ", process_latencies="
        + process_latencies + "]";
  }
 
 
}
TOP

Related Classes of com.alipay.bluewhale.core.stats.BoltTaskStatsData

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.