package com.alimama.web; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import com.alimama.mdrill.partion.GetShards; import com.alipay.bluewhale.core.cluster.StormClusterState; import com.alipay.bluewhale.core.daemon.supervisor.SupervisorInfo; public class SupervisorList { public static String[] list() throws Exception { List<String> rtn=new ArrayList<String>(); StormClusterState stat=GetShards.getCluster(); List<String> list=stat.supervisors(null); for(String supervisor:list) { SupervisorContainer container=new SupervisorContainer(); container.setName(supervisor); SupervisorInfo info=stat.supervisor_info(supervisor); container.setInfo(info); StringBuffer buff=new StringBuffer(); buff.append("机器域名:"+info.getHostName()+"<br>"); buff.append("机器id:"+supervisor+"<br>"); buff.append("启动的端口号:"+info.getWorkPorts().toString()+"<br>"); SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String yyyymmmddd=fmt.format(new Date(1000l*info.getTimeSecs())); buff.append("最后一次心跳时间:"+yyyymmmddd+"<br>"); buff.append("运行时间:"+info.getUptimeSecs()/3600+"小时<br>"); rtn.add(buff.toString()); } Collections.sort(rtn); String[] rtnarr=new String[rtn.size()]; return rtn.toArray(rtnarr); } }