public DurationAggregator(String name) { this.name = name; this.clear(); }
public void logStats() { LOG.info(getStats()); }
public synchronized void logStats() { Map<String, DurationAggregator> hankTimerDurationAggregators = new TreeMap<String, DurationAggregator>(); for (Map.Entry<Domain, List<PartitionUpdateTaskStatistics>> entry1 : domainToPartitionUpdateTaskStatistics.entrySet()) { Domain domain = entry1.getKey(); List<PartitionUpdateTaskStatistics> partitionUpdateTaskStatisticsList = entry1.getValue(); for (PartitionUpdateTaskStatistics partitionUpdateTaskStatistics : partitionUpdateTaskStatisticsList) { for (Map.Entry<String, Long> entry2 : partitionUpdateTaskStatistics.getDurationsMs().entrySet()) { String name = domain.getName() + " - " + entry2.getKey(); Long duration = entry2.getValue(); DurationAggregator aggregator = hankTimerDurationAggregators.get(name); if (aggregator == null) { aggregator = new DurationAggregator(name); hankTimerDurationAggregators.put(name, aggregator); } aggregator.add(duration); } } } for (DurationAggregator aggregator : hankTimerDurationAggregators.values()) { aggregator.logStats(); } } }
public String getStats() { long totalDurationMs = getTotalDurationMs(); long averageDurationMs = 0; if (durationsMs.size() > 0) { averageDurationMs = totalDurationMs / durationsMs.size(); } StringBuilder logStr = new StringBuilder(); logStr.append("Statistics for: "); logStr.append(name); logStr.append(", average duration: "); logStr.append(FormatUtils.formatSecondsDuration(averageDurationMs / 1000)); logStr.append(", total duration: "); logStr.append(FormatUtils.formatSecondsDuration(totalDurationMs / 1000)); logStr.append(", count: "); logStr.append(durationsMs.size()); return logStr.toString(); }