package com.taobao.top.analysis.node.monitor;
/**
* JobTask执行统计日志
* @author sihai
*
*/
public class JobExecutionLog extends MonitorLog {
/**
* 标题常量
*/
public static final String TITLE_JOB_NAME = "实例名称";
public static final String TITLE_JOB_EXECUTED_COUNT = "任务总执行次数";
public static final String TITLE_JOB_EXECUTED_SUCCEED_COUNT = "任务成功总执行次数";
public static final String TITLE_JOB_CONSUME_TIME = "实例执行耗时";
public static final String TITLE_JOB_DATA_SIZE = "实例数据量";
public static final String TITLE_JOB_TOTAL_LINE = "实例数据行数";
public static final String TITLE_JOB_ERROR_LINE = "实例错误数据行数";
public static final String TITLE_JOB_EMPTY_LINE = "实例空数据行数";
public static final String TITLE_JOB_KEY_COUNT = "实例产生Key数";
public static final String TITLE_JOB_VALUE_COUNT = "实例产生Value数";
/**
* 被执行的job
*/
private String jobName;
private long executedCount; //
private long executedSucceedCount; //
private long analysisConsume; //
private long jobDataSize; //
private long totalLine; //
private long errorLine; //
private long emptyLine; //
private long keyCount; //
private long valueCount; //
/**
* 构造函数
* @param jobTask
* @param jobTaskExecuteInfo
*/
public JobExecutionLog(String jobName) {
this.jobName = jobName;
}
/**
*
* @param taskLog
*/
public void plus(JobTaskExecutionLog taskLog) {
executedCount++;
if(taskLog.isSuccess()) {
executedSucceedCount++;
}
analysisConsume += taskLog.getAnalysisConsume();
jobDataSize += taskLog.getJobDataSize();
totalLine += taskLog.getTotalLine();
errorLine += taskLog.getErrorLine();
emptyLine += taskLog.getEmptyLine();
keyCount += taskLog.getKeyCount();
valueCount += taskLog.getValueCount();
}
public static String title() {
StringBuilder sb = new StringBuilder(TITLE_JOB_NAME);
sb.append(",");
sb.append(TITLE_JOB_EXECUTED_COUNT);
sb.append(",");
sb.append(TITLE_JOB_EXECUTED_SUCCEED_COUNT);
sb.append(",");
sb.append(TITLE_JOB_CONSUME_TIME);
sb.append(",");
sb.append(TITLE_JOB_DATA_SIZE);
sb.append(",");
sb.append(TITLE_JOB_TOTAL_LINE);
sb.append(",");
sb.append(TITLE_JOB_ERROR_LINE);
sb.append(",");
sb.append(TITLE_JOB_EMPTY_LINE);
sb.append(",");
sb.append(TITLE_JOB_KEY_COUNT);
sb.append(",");
sb.append(TITLE_JOB_VALUE_COUNT);
return sb.toString();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(jobName);
sb.append(",");
sb.append(executedCount);
sb.append(",");
sb.append(executedSucceedCount);
sb.append(",");
sb.append(analysisConsume);
sb.append(",");
sb.append(jobDataSize);
sb.append(",");
sb.append(totalLine);
sb.append(",");
sb.append(errorLine);
sb.append(",");
sb.append(emptyLine);
sb.append(",");
sb.append(keyCount);
sb.append(",");
sb.append(valueCount);
return sb.toString();
}
}