%@page contentType="text/html;charset=UTF-8"%> <%@page import="java.lang.management.*"%> <%@page import="java.net.*"%> <%@page import="java.util.*"%> <%@page import="javax.management.*"%> <%@page import="javax.management.openmbean.CompositeData"%> <%@page import="javax.management.openmbean.TabularData"%> <%! public static class EntryBean { private Object key; private Object value; public EntryBean(Object key, Object value) { this.key = key; this.value = value; } public Object getKey() { return key; } public Object getValue() { return value; } } Object getJmxObject(String objectNameString, String attributeNameString) throws Exception { ObjectName objectName = ObjectName.getInstance(objectNameString); Object value = ManagementFactory.getPlatformMBeanServer().getAttribute(objectName, attributeNameString); return value; } Object getJmxDate(String objectNameString, String attributeNameString) throws Exception { Object value = getJmxObject(objectNameString, attributeNameString); Date startTime = new Date((Long) value); return startTime; } Object getJmxComposite(String objectNameString, String attributeNameString) throws Exception { Object value = getJmxObject(objectNameString, attributeNameString); CompositeData compositeData = (CompositeData) value; StringBuffer buff = new StringBuffer(); for (String key : compositeData.getCompositeType().keySet()) { buff.append(key) .append("=") .append(compositeData.get(key)) .append(","); } return buff.toString(); } %>
| host name | <%=InetAddress.getLocalHost().getHostName()%> |
| host address | <%=InetAddress.getLocalHost().getHostAddress()%> |
| os | <%=(System.getProperty("os.name") + " " + System.getProperty("os.version"))%> |
| java | <%=System.getProperty("java.version")%> |
| Start Time | <%=getJmxDate("java.lang:type=Runtime", "StartTime")%> |
| Memory(total / free) | <%=getJmxObject("java.lang:type=OperatingSystem", "TotalPhysicalMemorySize")%> / <%=getJmxObject("java.lang:type=OperatingSystem", "FreePhysicalMemorySize")%> |
| Heap Memory | <%=getJmxComposite("java.lang:type=Memory", "HeapMemoryUsage")%> |
| Non Heap Memory | <%=getJmxComposite("java.lang:type=Memory", "NonHeapMemoryUsage")%> |
| System Load Average | <%=getJmxObject("java.lang:type=OperatingSystem", "SystemLoadAverage")%> |
| Loaded Classes (currently / total / unloaded) | <%=getJmxObject("java.lang:type=ClassLoading", "LoadedClassCount")%> / <%=getJmxObject("java.lang:type=ClassLoading", "TotalLoadedClassCount")%> / <%=getJmxObject("java.lang:type=ClassLoading", "UnloadedClassCount")%> |
| Threads (total / peak / daemon) | <%=getJmxObject("java.lang:type=Threading", "TotalStartedThreadCount")%> / <%=getJmxObject("java.lang:type=Threading", "PeakThreadCount")%> / <%=getJmxObject("java.lang:type=Threading", "DaemonThreadCount")%> |
| ${entry.key} | ${entry.value} |