private static List<Double> extractBoltValues(List<ExecutorSummary> summaries, GlobalStreamId id, Function<BoltStats, Map<String, Map<GlobalStreamId, Double>>> func) { List<Double> ret = new ArrayList<>(); if (summaries != null) { for (ExecutorSummary summ : summaries) { if (summ != null && summ.is_set_stats()) { Map<String, Map<GlobalStreamId, Double>> data = func.apply(summ.get_stats().get_specific().get_bolt()); if (data != null) { List<Double> subvalues = data.values().stream() .map((subMap) -> subMap.get(id)) .filter((value) -> value != null) .collect(Collectors.toList()); ret.addAll(subvalues); } } } } return ret; }
/** * convert thrift ExecutorStats structure into a java HashMap. */ public static Map<String, Object> convertExecutorStats(ExecutorStats stats) { Map<String, Object> ret = new HashMap<>(); ret.put(EMITTED, stats.get_emitted()); ret.put(TRANSFERRED, stats.get_transferred()); ret.put(RATE, stats.get_rate()); if (stats.get_specific().is_set_bolt()) { ret.putAll(convertSpecificStats(stats.get_specific().get_bolt())); ret.put(TYPE, ClientStatsUtil.BOLT); } else { ret.putAll(convertSpecificStats(stats.get_specific().get_spout())); ret.put(TYPE, ClientStatsUtil.SPOUT); } return ret; }
for (ExecutorSummary summary : statsSeq) { ExecutorStats stat = summary.get_stats(); acked.add(stat.get_specific().get_bolt().get_acked()); failed.add(stat.get_specific().get_bolt().get_failed()); executed.add(stat.get_specific().get_bolt().get_executed()); processLatencies.add(stat.get_specific().get_bolt().get_process_ms_avg()); executeLatencies.add(stat.get_specific().get_bolt().get_execute_ms_avg());