use of com.alibaba.otter.manager.biz.statistics.throughput.param.AnalysisType in project otter by alibaba.
the class ThroughputStatServiceImpl method listRealtimeThroughput.
/**
* 3种时间间隔的统计信息
*/
public Map<AnalysisType, ThroughputInfo> listRealtimeThroughput(RealtimeThroughputCondition condition) {
Assert.assertNotNull(condition);
Map<AnalysisType, ThroughputInfo> throughputInfos = new HashMap<AnalysisType, ThroughputInfo>();
TimelineThroughputCondition timelineCondition = new TimelineThroughputCondition();
Date realtime = new Date(System.currentTimeMillis());
timelineCondition.setPipelineId(condition.getPipelineId());
timelineCondition.setType(condition.getType());
timelineCondition.setStart(new Date(realtime.getTime() - condition.getMax() * 60 * 1000));
timelineCondition.setEnd(realtime);
List<ThroughputStatDO> throughputStatDOs = throughputDao.listTimelineThroughputStat(timelineCondition);
for (AnalysisType analysisType : condition.getAnalysisType()) {
ThroughputInfo throughputInfo = new ThroughputInfo();
List<ThroughputStat> throughputStat = new ArrayList<ThroughputStat>();
for (ThroughputStatDO throughputStatDO : throughputStatDOs) {
if (realtime.getTime() - throughputStatDO.getEndTime().getTime() <= analysisType.getValue() * 60 * 1000) {
throughputStat.add(throughputStatDOToModel(throughputStatDO));
}
}
throughputInfo.setItems(throughputStat);
throughputInfo.setSeconds(analysisType.getValue() * 60L);
throughputInfos.put(analysisType, throughputInfo);
}
return throughputInfos;
}
use of com.alibaba.otter.manager.biz.statistics.throughput.param.AnalysisType in project otter by alibaba.
the class AnalysisThroughputStat method execute.
public void execute(@Param("pipelineId") Long pipelineId, Context context) throws Exception {
Channel channel = channelService.findByPipelineId(pipelineId);
RealtimeThroughputCondition condition1 = new RealtimeThroughputCondition();
RealtimeThroughputCondition condition2 = new RealtimeThroughputCondition();
ThroughputCondition condition11 = new ThroughputCondition();
ThroughputCondition condition22 = new ThroughputCondition();
List<AnalysisType> analysisType = new ArrayList<AnalysisType>();
analysisType.add(AnalysisType.ONE_MINUTE);
analysisType.add(AnalysisType.FIVE_MINUTE);
analysisType.add(AnalysisType.FIFTEEN_MINUTE);
condition1.setPipelineId(pipelineId);
condition1.setAnalysisType(analysisType);
condition1.setType(ThroughputType.FILE);
condition2.setPipelineId(pipelineId);
condition2.setAnalysisType(analysisType);
condition2.setType(ThroughputType.ROW);
condition11.setPipelineId(pipelineId);
condition11.setType(ThroughputType.FILE);
condition22.setPipelineId(pipelineId);
condition22.setType(ThroughputType.ROW);
Map<AnalysisType, ThroughputInfo> throughputInfos1 = throughputStatService.listRealtimeThroughput(condition1);
Map<AnalysisType, ThroughputInfo> throughputInfos2 = throughputStatService.listRealtimeThroughput(condition2);
ThroughputStat throughputStat1 = throughputStatService.findThroughputStatByPipelineId(condition11);
ThroughputStat throughputStat2 = throughputStatService.findThroughputStatByPipelineId(condition22);
context.put("throughputInfos1", throughputInfos1);
context.put("throughputInfos2", throughputInfos2);
context.put("channel", channel);
context.put("pipelineId", pipelineId);
context.put("throughputStat1", throughputStat1);
context.put("throughputStat2", throughputStat2);
context.put("one", AnalysisType.ONE_MINUTE);
context.put("five", AnalysisType.FIVE_MINUTE);
context.put("fifteen", AnalysisType.FIFTEEN_MINUTE);
}
Aggregations