![JAR search and dependency download from the Maven repository](/logo.png)
com.github.ltsopensource.tasktracker.monitor.TaskTrackerMStatReporter Maven / Gradle / Ivy
package com.github.ltsopensource.tasktracker.monitor;
import com.github.ltsopensource.core.AppContext;
import com.github.ltsopensource.core.cluster.NodeType;
import com.github.ltsopensource.core.domain.monitor.TaskTrackerMData;
import com.github.ltsopensource.core.monitor.AbstractMStatReporter;
import com.github.ltsopensource.core.domain.monitor.MData;
import java.util.concurrent.atomic.AtomicLong;
/**
* 主要用来监控TaskTracker的压力
* 1. 任务执行量,任务执行成功数,任务执行失败数
* 2. FailStore 容量
* 3. 内存占用情况
* 定时向 monitor 发送,方便生成图表在LTS-Admin查看,预警等
*
* @author Robert HG ([email protected]) on 8/21/15.
*/
public class TaskTrackerMStatReporter extends AbstractMStatReporter {
// 执行成功个数
private AtomicLong exeSuccessNum = new AtomicLong(0);
// 执行失败个数
private AtomicLong exeFailedNum = new AtomicLong(0);
// 延迟执行个数
private AtomicLong exeLaterNum = new AtomicLong(0);
// 执行异常个数
private AtomicLong exeExceptionNum = new AtomicLong(0);
// 总的运行时间
private AtomicLong totalRunningTime = new AtomicLong(0);
public TaskTrackerMStatReporter(AppContext appContext) {
super(appContext);
}
public void incSuccessNum() {
exeSuccessNum.incrementAndGet();
}
public void incFailedNum() {
exeFailedNum.incrementAndGet();
}
public void incExeLaterNum() {
exeLaterNum.incrementAndGet();
}
public void incExeExceptionNum() {
exeExceptionNum.incrementAndGet();
}
public void addRunningTime(Long time) {
totalRunningTime.addAndGet(time);
}
@Override
protected MData collectMData() {
TaskTrackerMData mData = new TaskTrackerMData();
mData.setExeSuccessNum(exeSuccessNum.getAndSet(0));
mData.setExeFailedNum(exeFailedNum.getAndSet(0));
mData.setExeLaterNum(exeLaterNum.getAndSet(0));
mData.setExeExceptionNum(exeExceptionNum.getAndSet(0));
mData.setTotalRunningTime(totalRunningTime.getAndSet(0));
return mData;
}
@Override
protected NodeType getNodeType() {
return NodeType.TASK_TRACKER;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy