content: package com.alipay.bluewhale.core.command;
  
  import java.util.Map;
  
  import org.apache.thrift7.protocol.TBinaryProtocol;
  import org.apache.thrift7.transport.TFramedTransport;
  import org.apache.thrift7.transport.TSocket;
  
  import backtype.storm.Config;
  import backtype.storm.generated.Nimbus;
  
  import com.alipay.bluewhale.core.cluster.ClusterState;
  import com.alipay.bluewhale.core.cluster.DistributedClusterState;
  import com.alipay.bluewhale.core.cluster.StormClusterState;
  import com.alipay.bluewhale.core.cluster.StormConfig;
  import com.alipay.bluewhale.core.cluster.StormZkClusterState;
  import com.alipay.bluewhale.core.task.error.TaskError;
  import com.alipay.bluewhale.core.utils.StormUtils;
  
  public class PrintStats {
      public static void main(String[] args) throws Exception {
  	
  	Map conf=StormConfig.read_storm_config();
  	String host=String.valueOf(conf.get(Config.NIMBUS_HOST));
  	Integer port=StormUtils.parseInt(conf.get(Config.NIMBUS_THRIFT_PORT));
  	TFramedTransport transport=new TFramedTransport(new TSocket(host, port));
  	TBinaryProtocol prot=new TBinaryProtocol(transport);
  	Nimbus.Client client=new Nimbus.Client(prot);
  	transport.open();
  	try{
  	    if(args[0].equals("cluster"))
  	    {
  		System.out.println(client.getClusterInfo().toString());
  
  	    } 
  	    else{
  		String stromId=args[0];
  		System.out.println(client.getTopologyInfo(stromId));
  		
  		
  		ClusterState cluster_state = new DistributedClusterState(conf);
  		StormClusterState zk = new StormZkClusterState(
  			cluster_state);
  		for(Integer taskid:zk.task_ids(stromId))
  		{
  			System.out.println("########"+taskid);
  		    for(TaskError err:zk.task_errors(stromId, taskid))
  		    {
  			System.out.println(err.getError());
  		    }
  
  		}
  		System.out.println("disconnect");
  
  		zk.disconnect();
  
  
  	    }
  	}finally{
  	    transport.close();
  	}
  
      }
  }
  