@Override
public Map<String, ComponentMetric> getMetricsForTopology(TopologyLayout topology, String asUser) {
String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser);
if (StringUtils.isEmpty(topologyId)) {
throw new TopologyNotAliveException("Topology not found in Storm Cluster - topology id: " + topology.getId());
}
Map<String, ?> responseMap = getTopologyInfo(topologyId, asUser);
Map<String, ComponentMetric> metricMap = new HashMap<>();
List<Map<String, ?>> spouts = (List<Map<String, ?>>) responseMap.get(TOPOLOGY_JSON_SPOUTS);
extractMetrics(metricMap, spouts, TOPOLOGY_JSON_SPOUT_ID);
List<Map<String, ?>> bolts = (List<Map<String, ?>>) responseMap.get(TOPOLOGY_JSON_BOLTS);
extractMetrics(metricMap, bolts, TOPOLOGY_JSON_BOLT_ID);
return metricMap;
}