package com.taobao.top.analysis.node.monitor;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.ThreadMXBean;
import com.taobao.top.analysis.util.ReportUtil;
/**
*
* @author sihai
*
*/
public abstract class MonitorUtil {
/**
* 收集系统, JVM信息
* @return
*/
public static void monitor(MonitorInfo info) {
info.setIp(ReportUtil.getIp());
info.setJvmTotalMemory(Runtime.getRuntime().totalMemory());
info.setJvmFreeMemory(Runtime.getRuntime().freeMemory());
info.setJvmMaxMemory(Runtime.getRuntime().maxMemory());
OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
info.setOsName(osmxb.getName());
info.setOsVersion(osmxb.getVersion());
info.setSystemLoadAverage(osmxb.getSystemLoadAverage());
ThreadMXBean tmxb = ManagementFactory.getThreadMXBean();
info.setJvmThreadCount(tmxb.getThreadCount());
info.setJvmPeakThreadCount(tmxb.getPeakThreadCount());
}
}