| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- <%@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();
- }
- %>
- <html>
- <head>
- <meta charset="utf-8">
- <title>system info</title>
- <style type="text/css">
- tbody tr:nth-child(odd) td,
- tbody tr:nth-child(odd) th {
- background-color: #f9f9f9;
- }
- td {
- font-size: 12px;
- }
- </style>
- </head>
- <body>
- <h1>server</h1>
- <table border="1" width="100%">
- <tbody>
- <tr>
- <td>host name</td>
- <td><%=InetAddress.getLocalHost().getHostName()%></td>
- </tr>
- <tr>
- <td>host address</td>
- <td><%=InetAddress.getLocalHost().getHostAddress()%></td>
- </tr>
- <tr>
- <td>os</td>
- <td><%=(System.getProperty("os.name") + " " + System.getProperty("os.version"))%></td>
- </tr>
- <tr>
- <td>java</td>
- <td><%=System.getProperty("java.version")%></td>
- </tr>
- </tbody>
- </table>
- <!-- ====================================================================== -->
- <br>
- <!-- ====================================================================== -->
- <h1>jvm statistics</h1>
- <table border="1" width="100%">
- <tbody>
- <%
- {
- %>
- <tr>
- <td>Start Time</td>
- <td><%=getJmxDate("java.lang:type=Runtime", "StartTime")%></td>
- </tr>
- <tr>
- <td>Memory(total / free)</td>
- <td>
- <%=getJmxObject("java.lang:type=OperatingSystem", "TotalPhysicalMemorySize")%> /
- <%=getJmxObject("java.lang:type=OperatingSystem", "FreePhysicalMemorySize")%>
- </td>
- </tr>
- <tr>
- <td>Heap Memory</td>
- <td><%=getJmxComposite("java.lang:type=Memory", "HeapMemoryUsage")%></td>
- </tr>
- <tr>
- <td>Non Heap Memory</td>
- <td><%=getJmxComposite("java.lang:type=Memory", "NonHeapMemoryUsage")%></td>
- </tr>
- <tr>
- <td>System Load Average</td>
- <td><%=getJmxObject("java.lang:type=OperatingSystem", "SystemLoadAverage")%></td>
- </tr>
- <tr>
- <td>Loaded Classes (currently / total / unloaded)</td>
- <td>
- <%=getJmxObject("java.lang:type=ClassLoading", "LoadedClassCount")%> /
- <%=getJmxObject("java.lang:type=ClassLoading", "TotalLoadedClassCount")%> /
- <%=getJmxObject("java.lang:type=ClassLoading", "UnloadedClassCount")%>
- </td>
- </tr>
- <tr>
- <td>Threads (total / peak / daemon)</td>
- <td>
- <%=getJmxObject("java.lang:type=Threading", "TotalStartedThreadCount")%> /
- <%=getJmxObject("java.lang:type=Threading", "PeakThreadCount")%> /
- <%=getJmxObject("java.lang:type=Threading", "DaemonThreadCount")%>
- </td>
- </tr>
- <%
- }
- %>
- </tbody>
- </table>
- <!-- ====================================================================== -->
- <br>
- <!-- ====================================================================== -->
- <h1>system info</h1>
- <table border="1" width="100%">
- <tbody>
- <%
- {
- Map<Object, Object> sortedMap = new TreeMap<Object, Object>(System.getProperties());
- for (Map.Entry<Object, Object> entry : sortedMap.entrySet()) {
- pageContext.setAttribute("entry", entry);
- if ("line.separator".equals(entry.getKey())) {
- Object key = entry.getKey();
- Object value = entry.getValue();
- value = value.toString()
- .replace("\n", "\\n")
- .replace("\r", "\\r");
- pageContext.setAttribute("entry", new EntryBean(key, value));
- }
- %>
- <tr>
- <td>${entry.key}</td>
- <td>${entry.value}</td>
- </tr>
- <%
- }
- }
- %>
- </tbody>
- </table>
- <!-- ====================================================================== -->
- <br>
- <!-- ====================================================================== -->
- <h1>env info</h1>
- <table border="1" width="100%">
- <tbody>
- <%
- {
- Map<Object, Object> sortedMap = new TreeMap<Object, Object>(System.getenv());
- for (Map.Entry<Object, Object> entry : sortedMap.entrySet()) {
- pageContext.setAttribute("entry", entry);
- if ("line.separator".equals(entry.getKey())) {
- Object key = entry.getKey();
- Object value = entry.getValue();
- value = value.toString()
- .replace("\n", "\\n")
- .replace("\r", "\\r");
- pageContext.setAttribute("entry", new EntryBean(key, value));
- }
- %>
- <tr>
- <td>${entry.key}</td>
- <td>${entry.value}</td>
- </tr>
- <%
- }
- }
- %>
- </tbody>
- </table>
- </body>
- </html>
|