
ru.taskurotta.service.hz.config.ComputeMetricsStatDataTask Maven / Gradle / Ivy
The newest version!
package ru.taskurotta.service.hz.config;
import ru.taskurotta.service.console.model.MetricsStatDataVO;
import ru.taskurotta.service.metrics.handler.MetricsDataHandler;
import ru.taskurotta.service.metrics.MetricsDataUtils;
import ru.taskurotta.service.metrics.RateUtils;
import ru.taskurotta.service.metrics.model.DataPointVO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.concurrent.Callable;
/**
* User: dimadin
* Date: 08.10.13 17:02
*/
public class ComputeMetricsStatDataTask implements Callable>, Serializable {
private Collection metricsNames;
private Collection actorIds;
public ComputeMetricsStatDataTask(Collection metricsNames, Collection actorIds) {
this.metricsNames = metricsNames;
this.actorIds = actorIds;
}
@Override
public Collection call() throws Exception {
MetricsDataHandler metricsDataRetriever = MetricsDataHandler.getInstance();
if (metricsDataRetriever == null) {
return null;
}
Collection result = new ArrayList<>();
for (String actorId: actorIds) {
for (String metricName: metricsNames) {
DataPointVO[] hourCounts = metricsDataRetriever.getCountsForLastHour(metricName, actorId);
DataPointVO[] hourMeans = metricsDataRetriever.getMeansForLastHour(metricName, actorId);
DataPointVO[] dayCounts = metricsDataRetriever.getCountsForLastDay(metricName, actorId);
DataPointVO[] dayMeans = metricsDataRetriever.getMeansForLastDay(metricName, actorId);
Date lastActivity = metricsDataRetriever.getLastActivityTime(metricName, actorId);
MetricsStatDataVO statData = new MetricsStatDataVO();
statData.setDatasetName(actorId);
statData.setMetricName(metricName);
statData.setLastActivity(lastActivity);
statData.setMeanTimeDay(RateUtils.round(MetricsDataUtils.getMeanTime(dayMeans), 2));
statData.setMeanTimeHour(RateUtils.round(MetricsDataUtils.getMeanTime(hourMeans), 2));
statData.setTotalCountsDay(MetricsDataUtils.getTotalCounts(dayCounts));
statData.setTotalCountsHour(MetricsDataUtils.getTotalCounts(hourCounts));
result.add(statData);
}
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy