private void updateHistogram(ClusterSummary newSummary) { for (NimbusSummary nimbusSummary : newSummary.get_nimbuses()) { nimbusUptime.update(nimbusSummary.get_uptime_secs()); } for (SupervisorSummary summary : newSummary.get_supervisors()) { supervisorsUptime.update(summary.get_uptime_secs()); supervisorsNumWorkers.update(summary.get_num_workers()); supervisorsNumUsedWorkers.update(summary.get_num_used_workers()); supervisorsUsedMem.update(Math.round(summary.get_used_mem())); supervisorsUsedCpu.update(Math.round(summary.get_used_cpu())); supervisorsFragmentedMem.update(Math.round(summary.get_fragmented_mem())); supervisorsFragmentedCpu.update(Math.round(summary.get_fragmented_cpu())); } for (TopologySummary summary : newSummary.get_topologies()) { topologiesNumTasks.update(summary.get_num_tasks()); topologiesNumExecutors.update(summary.get_num_executors()); topologiesNumWorker.update(summary.get_num_workers()); topologiesUptime.update(summary.get_uptime_secs()); topologiesReplicationCount.update(summary.get_replication_count()); topologiesRequestedMemOnHeap.update(Math.round(summary.get_requested_memonheap())); topologiesRequestedMemOffHeap.update(Math.round(summary.get_requested_memoffheap())); topologiesRequestedCpu.update(Math.round(summary.get_requested_cpu())); topologiesAssignedMemOnHeap.update(Math.round(summary.get_assigned_memonheap())); topologiesAssignedMemOffHeap.update(Math.round(summary.get_assigned_memoffheap())); topologiesAssignedCpu.update(Math.round(summary.get_assigned_cpu())); } }
@Override public void run(Nimbus.Iface nimbus) throws Exception { List<TopologySummary> topologies = nimbus.getClusterInfo().get_topologies(); if (topologies == null || topologies.isEmpty()) { System.out.println("No topologies running."); } else { System.out.printf(MSG_FORMAT, "Topology_name", "Status", "Num_tasks", "Num_workers", "Uptime_secs", "Topology_Id", "Owner"); System.out.println("----------------------------------------------------------------------------------------"); for (TopologySummary topology : topologies) { System.out.printf(MSG_FORMAT, topology.get_name(), topology.get_status(), topology.get_num_tasks(), topology.get_num_workers(), topology.get_uptime_secs(), topology.get_id(), topology.get_owner()); } } } });
result.put("uptimeSeconds", topologySummary.get_uptime_secs()); result.put("tasksTotal", topologySummary.get_num_tasks()); result.put("workersTotal", topologySummary.get_num_workers()); result.put("executorsTotal", topologySummary.get_num_executors()); result.put("replicationCount", topologySummary.get_replication_count());
public static MetricsSample factory(Nimbus.Iface client, String topologyName) throws Exception { // "************ Sampling Metrics ***************** ClusterSummary clusterSummary = client.getClusterInfo(); // get topology info TopologySummary topSummary = getTopologySummary(clusterSummary, topologyName); int topologyExecutors = topSummary.get_num_executors(); int topologyWorkers = topSummary.get_num_workers(); int topologyTasks = topSummary.get_num_tasks(); TopologyInfo topInfo = client.getTopologyInfo(topSummary.get_id()); MetricsSample sample = getMetricsSample(topInfo); sample.numWorkers = topologyWorkers; sample.numExecutors = topologyExecutors; sample.numTasks = topologyTasks; return sample; }
return get_num_workers();
private void parseResults(List<TopologySummary> topologies) { if (topologies == null) { return; } for (TopologySummary topology : topologies) { String[] result = new String[RESULTSHEAD.length]; result[0] = topology.get_name(); result[1] = topology.get_status(); result[2] = String.valueOf(topology.get_num_workers()); result[3] = String.valueOf(topology.get_uptime_secs()); results.add(result); } }
private Pair<Integer, Integer> getExecutorNum(List<TopologySummary> summaries) { int currentExecutorNum = 0; int currentWorkerNum = 0; for (TopologySummary summary : summaries) { if (summary.get_name().equals(getAppName())) { currentExecutorNum = summary.get_num_executors(); currentWorkerNum = summary.get_num_workers(); } } return new Pair<Integer, Integer>(currentExecutorNum, currentWorkerNum); }