package backtype.storm.command; import java.util.Map; import java.security.InvalidParameterException; import backtype.storm.generated.MonitorOptions; import backtype.storm.utils.NimbusClient; import backtype.storm.utils.Utils; /** * Monitor topology * * @author Basti * */ public class metrics_monitor { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub if (args == null || args.length <= 1) { throw new InvalidParameterException("Should input topology name and enable flag"); } String topologyName = args[0]; NimbusClient client = null; try { Map conf = Utils.readStormConfig(); client = NimbusClient.getConfiguredClient(conf); boolean isEnable = Boolean.valueOf(args[1]).booleanValue(); MonitorOptions options = new MonitorOptions(); options.set_isEnable(isEnable); client.getClient().metricMonitor(topologyName, options); String str = (isEnable) ? "enable" : "disable"; System.out.println("Successfully submit command to " + str + " the monitor of " + topologyName); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); throw new RuntimeException(e); } finally { if (client != null) { client.close(); } } } }