in uReplicator-Controller/src/main/java/com/uber/stream/kafka/mirrormaker/controller/rest/resources/MirrorMakerManagerRestletResource.java [37:82]
public Representation get() {
final String instanceName = (String) getRequest().getAttributes().get("instanceName");
try {
JSONObject responseJson = new JSONObject();
PriorityQueue<InstanceTopicPartitionHolder> currentServingInstance = _helixMirrorMakerManager
.getCurrentServingInstance();
WorkloadInfoRetriever workloadRetriever = _helixMirrorMakerManager.getWorkloadInfoRetriever();
Iterator<InstanceTopicPartitionHolder> iter = currentServingInstance.iterator();
JSONObject instanceMapJson = new JSONObject();
while (iter.hasNext()) {
InstanceTopicPartitionHolder instance = iter.next();
String name = instance.getInstanceName();
if (instanceName == null || instanceName.equals(name)) {
if (!instanceMapJson.containsKey(name)) {
instanceMapJson.put(name, new JSONArray());
}
double totalWorkload = 0;
for (TopicPartition tp : instance.getServingTopicPartitionSet()) {
double tpw = workloadRetriever.topicWorkload(tp.getTopic()).getBytesPerSecondPerPartition();
totalWorkload += tpw;
instanceMapJson.getJSONArray(name).add(tp.getTopic() + "." + tp.getPartition() + ":" + Math.round(tpw));
}
instanceMapJson.getJSONArray(name).add("TOTALWORKLOAD." + instance.getServingTopicPartitionSet().size()
+ ":" + Math.round(totalWorkload));
}
}
responseJson.put("instances", instanceMapJson);
JSONArray blacklistedArray = new JSONArray();
blacklistedArray.addAll(_helixMirrorMakerManager.getBlacklistedInstances());
responseJson.put("blacklisted", blacklistedArray);
JSONArray allInstances = new JSONArray();
allInstances.addAll(_helixMirrorMakerManager.getCurrentLiveInstanceNames());
responseJson.put("allInstances", allInstances);
return new StringRepresentation(responseJson.toJSONString());
} catch (Exception e) {
LOGGER.error("Got error during processing Get request", e);
getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
return new StringRepresentation(String
.format("Failed to get serving topics for %s, with exception: %s",
instanceName == null ? "all instances" : instanceName, e));
}
}