Package com.taobao.top.analysis.node.monitor

Source Code of com.taobao.top.analysis.node.monitor.SlaveMonitorInfo

package com.taobao.top.analysis.node.monitor;

import java.util.Date;
import java.util.concurrent.atomic.AtomicLong;

/**
* Slave节点监控信息
* @author sihai
*
*/
public class SlaveMonitorInfo extends MonitorInfo implements Cloneable {
 
  /**
   *
   */
  private static final long serialVersionUID = -7236590241815578921L;
 
  private static final String TITLE_SLAVE_STARTUP_TIME = "Slave启动时间";
  private static final String TITLE_SLAVE_TRY_PULL_TASK_COUNT = "Slave尝试拉取任务次数";
  private static final String TITLE_SLAVE_PULL_TASK_CONSUME_TIME = "Slave拉取任务花费的时间";
  private static final String TITLE_SLAVE_PULLED_TASK_COUNT = "Slave成功拉取的任务总数";
  private static final String TITLE_SLAVE_AVERAGE_PULL_TASK_CONSUME_TIME = "Slave平均每次拉取任务消耗时间";
  private static final String TITLE_SLAVE_AVERAGE_PULLED_TASK_COUNT = "平均每次成功拉取任务个数";
  private static final String TITLE_SLAVE_AVERAGE_TASK_CONSUME_TIME = "平均每个任务消耗时间";
  private static final String TITLE_SLAVE_EXECUTE_TASK_CONSUME_TIME = "Slave花费在执行任务的时间";
  private static final String TITLE_SLAVE_EXECUTEED_TASK_COUNT = "Slave成功执行的任务总数";
  private static final String TITLE_SLAVE_CONSUME_DATA_SIZE = "Slave处理数据总大小";
  private static final String TITLE_SLAVE_CONSUME_DATA_LINE = "Slave处理数据行总数";
  private static final String TITLE_SLAVE_CONSUME_EMPTY_LINE = "Slave处理空数据行总数";
  private static final String TITLE_SLAVE_CONSUME_EXCEPTION_LINE = "Slave处理异常数据行总数";
  private static final String TITLE_SLAVE_KEY_COUNT = "Slave Map Key总数";
  private static final String TITLE_SLAVE_VALUE_COUNT = "Slave Map Value总数";
  private static final String TITLE_SLAVE_MERGED_TASK_COUNT = "Slave Merged任务总数";
  private static final String TITLE_SLAVE_MERGED_TASK_CONSUME_TIME = "Slave 在Merged消耗的时间";
 
  //
  /**
   * Slave启动时间
   */
  private Date slaveStartupTime;
 
  /**
   * Slave尝试拉取任务次数, 不一定是每次都成功的或是每次都拉取到了任务
   */
  private volatile long slaveTryPullTaskCount;
 
  /**
   * Slave在拉取任务花费的时间, 单位毫秒
   */
  private volatile long slavePullTaskConsumeTime;
 
  /**
   * Slave成功拉取的任务总数
   */
  private volatile long slavePulledTaskCount;
 
 
  // 任务
  /**
   * Slave平均每次拉取任务消耗时间, 单位毫秒
   */
  private volatile double averagePullTaskConsumeTime;
 
  /**
   * 平均每次成功拉取任务个数
   */
  private volatile double averagePulledTaskCount;
 
  /**
   * 平均每个任务消耗时间
   */
  private volatile long averageTaskConsumeTime;
 
  /**
   * Slave花费在执行任务的时间, 单位毫秒
   */
  private AtomicLong slaveExecuteTaskTime;

  /**
   * Slave成功执行的任务总数
   */
  private AtomicLong slaveExecutedTaskCount;
 
 
  // 数据
  /**
   * Slave处理数据总大小
   */
  private AtomicLong slaveConsumeDataSize;
 
  /**
   * Slave处理数据行总数
   */
  private AtomicLong slaveConsumeDataLine;
 
  /**
   * Slave处理空数据行总数
   */
  private AtomicLong slaveConsumeEmptyLine;
 
  /**
   * Slave处理异常数据行总数
   */
  private AtomicLong slaveConsumeExceptionLine;
 
  /**
   * Slave Map key总数
   */
  private AtomicLong keyCount;
 
  /**
   * Slave Map value总数
   */
  private AtomicLong valueCount;
 
  // merge
  /**
   * merge多少task
   */
  private AtomicLong mergedTaskCount;
 
  /**
   * merge消耗多少时间, 单位毫秒
   */
  private AtomicLong megeredTaskConsumeTime;
 
 
  public SlaveMonitorInfo() {
    slaveExecuteTaskTime = new AtomicLong(0L);
    slaveExecutedTaskCount = new AtomicLong(0L);
    slaveConsumeDataSize = new AtomicLong(0L);
    slaveConsumeDataLine = new AtomicLong(0L);
    slaveConsumeEmptyLine = new AtomicLong(0L);
    slaveConsumeExceptionLine = new AtomicLong(0L);
    keyCount = new AtomicLong(0L);
    valueCount = new AtomicLong(0L);
    mergedTaskCount = new AtomicLong(0L);
    megeredTaskConsumeTime = new AtomicLong(0L);
  }

  public Date getSlaveStartupTime() {
    return slaveStartupTime;
  }

  public void setSlaveStartupTime(Date slaveStartupTime) {
    this.slaveStartupTime = slaveStartupTime;
  }

  public long getSlaveTryPullTaskCount() {
    return slaveTryPullTaskCount;
  }

  public void setSlaveTryPullTaskCount(long slaveTryPullTaskCount) {
    this.slaveTryPullTaskCount = slaveTryPullTaskCount;
  }

  public long getSlavePullTaskConsumeTime() {
    return slavePullTaskConsumeTime;
  }

  public void setSlavePullTaskConsumeTime(long slavePullTaskConsumeTime) {
    this.slavePullTaskConsumeTime = slavePullTaskConsumeTime;
  }
 
  public double getAveragePullTaskConsumeTime() {
    return averagePullTaskConsumeTime;
  }

  public void setAveragePullTaskConsumeTime(double averagePullTaskConsumeTime) {
    this.averagePullTaskConsumeTime = averagePullTaskConsumeTime;
  }

  public double getAveragePulledTaskCount() {
    return averagePulledTaskCount;
  }

  public void setAveragePulledTaskCount(double averagePulledTaskCount) {
    this.averagePulledTaskCount = averagePulledTaskCount;
  }

  public long getAverageTaskConsumeTime() {
    return averageTaskConsumeTime;
  }

  public void setAverageTaskConsumeTime(long averageTaskConsumeTime) {
    this.averageTaskConsumeTime = averageTaskConsumeTime;
  }

  public long getSlaveExecuteTaskTime() {
    return slaveExecuteTaskTime.get();
  }

  public long incSlaveExecuteTaskTime(long slaveExecuteTaskTime) {
    return this.slaveExecuteTaskTime.addAndGet(slaveExecuteTaskTime);
  }
 
  public long getSlavePulledTaskCount() {
    return slavePulledTaskCount;
  }

  public void setSlavePulledTaskCount(long slavePulledTaskCount) {
    this.slavePulledTaskCount = slavePulledTaskCount;
  }

  public long getSlaveExecutedTaskCount() {
    return slaveExecutedTaskCount.get();
  }

  public long incSlaveExecutedTaskCount(long slaveExecutedTaskCount) {
    return this.slaveExecutedTaskCount.addAndGet(slaveExecutedTaskCount);
  }

  public long getSlaveConsumeDataSize() {
    return slaveConsumeDataSize.get();
  }

  public void incSlaveConsumeDataSize(long slaveConsumeDataSize) {
    this.slaveConsumeDataSize.addAndGet(slaveConsumeDataSize);
  }

  public long getSlaveConsumeDataLine() {
    return slaveConsumeDataLine.get();
  }

  public long incSlaveConsumeDataLine(long slaveConsumeDataLine) {
    return this.slaveConsumeDataLine.addAndGet(slaveConsumeDataLine);
  }

  public long getSlaveConsumeEmptyLine() {
    return slaveConsumeEmptyLine.get();
  }

  public void incSlaveConsumeEmptyLine(long slaveConsumeEmptyLine) {
    this.slaveConsumeEmptyLine.addAndGet(slaveConsumeEmptyLine);
  }

  public long getSlaveConsumeExceptionLine() {
    return slaveConsumeExceptionLine.get();
  }

  public long incSlaveConsumeExceptionLine(long slaveConsumeExceptionLine) {
    return this.slaveConsumeExceptionLine.addAndGet(slaveConsumeExceptionLine);
  }

  public long getKeyCount() {
    return keyCount.get();
  }

  public void incKeyCount(long keyCount) {
    this.keyCount.addAndGet(keyCount);
  }

  public long getValueCount() {
    return valueCount.get();
  }

  public void incValueCount(long valueCount) {
    this.valueCount.addAndGet(valueCount);
  }
 
  public long getMergedTaskCount() {
    return mergedTaskCount.get();
  }

  public void incMergedTaskCount(long mergedTaskCount) {
    this.mergedTaskCount.addAndGet(mergedTaskCount);
  }
 
  public long getMegeredTaskConsumeTime() {
    return megeredTaskConsumeTime.get();
  }

  public void incMegeredTaskConsumeTime(long megeredTaskConsumeTime) {
    this.megeredTaskConsumeTime.addAndGet(megeredTaskConsumeTime);
  }
 
  public static String title() {
    StringBuilder sb = new StringBuilder(MonitorInfo.title());
    sb.append(",");
    sb.append(TITLE_SLAVE_STARTUP_TIME);
    sb.append(",");
    sb.append(TITLE_SLAVE_TRY_PULL_TASK_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_PULL_TASK_CONSUME_TIME);
    sb.append(",");
    sb.append(TITLE_SLAVE_PULLED_TASK_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_AVERAGE_PULL_TASK_CONSUME_TIME);
    sb.append(",");
    sb.append(TITLE_SLAVE_AVERAGE_PULLED_TASK_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_AVERAGE_TASK_CONSUME_TIME);
    sb.append(",");
    sb.append(TITLE_SLAVE_EXECUTE_TASK_CONSUME_TIME);
    sb.append(",");
    sb.append(TITLE_SLAVE_EXECUTEED_TASK_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_CONSUME_DATA_SIZE);
    sb.append(",");
    sb.append(TITLE_SLAVE_CONSUME_DATA_LINE);
    sb.append(",");
    sb.append(TITLE_SLAVE_CONSUME_EMPTY_LINE);
    sb.append(",");
    sb.append(TITLE_SLAVE_CONSUME_EXCEPTION_LINE);
    sb.append(",");
    sb.append(TITLE_SLAVE_KEY_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_VALUE_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_MERGED_TASK_COUNT);
    sb.append(",");
    sb.append(TITLE_SLAVE_MERGED_TASK_CONSUME_TIME);
    return sb.toString();
  }
 
  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder(super.toString());
    sb.append(",");
    sb.append(System.currentTimeMillis() - slaveStartupTime.getTime());
    sb.append(",");
    sb.append(slavePulledTaskCount);
    sb.append(",");
    sb.append(averagePullTaskConsumeTime);
    sb.append(",");
    sb.append(averagePulledTaskCount);
    sb.append(",");
    sb.append(averageTaskConsumeTime);
    sb.append(",");
    sb.append(slaveExecuteTaskTime.get());
    sb.append(",");
    sb.append(slaveExecutedTaskCount.get());
    sb.append(",");
    sb.append(slaveConsumeDataSize.get());
    sb.append(",");
    sb.append(slaveConsumeDataLine.get());
    sb.append(",");
    sb.append(slaveConsumeEmptyLine.get());
    sb.append(",");
    sb.append(slaveConsumeExceptionLine.get());
    sb.append(",");
    sb.append(keyCount.get());
    sb.append(",");
    sb.append(valueCount.get());
    sb.append(",");
    sb.append(mergedTaskCount.get());
    sb.append(",");
    sb.append(megeredTaskConsumeTime.get());
    return sb.toString();
  }
 
  @Override
  public Object clone() throws CloneNotSupportedException {
    SlaveMonitorInfo clone = (SlaveMonitorInfo)super.clone();
    clone.slaveStartupTime = slaveStartupTime;
    clone.slavePulledTaskCount = slavePulledTaskCount;
    clone.averagePullTaskConsumeTime = averagePullTaskConsumeTime;
    clone.averagePulledTaskCount = averagePulledTaskCount;
    clone.averageTaskConsumeTime = averageTaskConsumeTime;
    clone.slaveExecuteTaskTime = new AtomicLong(slaveExecuteTaskTime.get());
    clone.slaveExecutedTaskCount = new AtomicLong(slaveExecutedTaskCount.get());
    clone.slaveConsumeDataSize = new AtomicLong(slaveConsumeDataSize.get());
    clone.slaveConsumeDataLine = new AtomicLong(slaveConsumeDataLine.get());
    clone.slaveConsumeEmptyLine = new AtomicLong(slaveConsumeEmptyLine.get());
    clone.slaveConsumeExceptionLine = new AtomicLong(slaveConsumeExceptionLine.get());
    clone.keyCount = new AtomicLong(keyCount.get());
    clone.valueCount = new AtomicLong(valueCount.get());
    clone.megeredTaskConsumeTime = new AtomicLong(mergedTaskCount.get());
    clone.megeredTaskConsumeTime = new AtomicLong(megeredTaskConsumeTime.get());
    return clone;
  }
}
TOP

Related Classes of com.taobao.top.analysis.node.monitor.SlaveMonitorInfo

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.