You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ak...@apache.org on 2007/10/26 04:12:57 UTC

svn commit: r588469 - in /geronimo/sandbox/monitoring/client: client-ear/src/main/resources/ client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/ client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/ client-war...

Author: akulshreshtha
Date: Thu Oct 25 19:12:57 2007
New Revision: 588469

URL: http://svn.apache.org/viewvc?rev=588469&view=rev
Log:
GERONIMO-3527 Monitoring Client: Default Server view, Patch by Erik B. Craig

Modified:
    geronimo/sandbox/monitoring/client/client-ear/src/main/resources/MonitoringClientDB.sql
    geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MRCConnector.java
    geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/DBManager.java
    geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp
    geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringViewServer.jsp

Modified: geronimo/sandbox/monitoring/client/client-ear/src/main/resources/MonitoringClientDB.sql
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-ear/src/main/resources/MonitoringClientDB.sql?rev=588469&r1=588468&r2=588469&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-ear/src/main/resources/MonitoringClientDB.sql (original)
+++ geronimo/sandbox/monitoring/client/client-ear/src/main/resources/MonitoringClientDB.sql Thu Oct 25 19:12:57 2007
@@ -13,7 +13,7 @@
     server_id   INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),
     enabled SMALLINT DEFAULT 1 NOT NULL,
     name VARCHAR(128) DEFAULT NULL,
-    ip   VARCHAR(15) UNIQUE NOT NULL,
+    ip   VARCHAR(128) UNIQUE NOT NULL,
     username    VARCHAR(128) NOT NULL,
     password    VARCHAR(1024) NOT NULL,
     added       TIMESTAMP NOT NULL,
@@ -90,7 +90,7 @@
     added       TIMESTAMP NOT NULL,
     modified    TIMESTAMP NOT NULL
 );
-INSERT INTO servers VALUES(DEFAULT, DEFAULT, 'localhost', '127.0.0.1', 'system', 'manager', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
+INSERT INTO servers VALUES(DEFAULT, DEFAULT, 'Local host', '127.0.0.1', 'system', 'manager', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
 INSERT INTO graphs VALUES(  
     DEFAULT,
     DEFAULT,
@@ -193,5 +193,6 @@
     CURRENT_TIMESTAMP,
     CURRENT_TIMESTAMP
 );
+
 
 

Modified: geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MRCConnector.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MRCConnector.java?rev=588469&r1=588468&r2=588469&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MRCConnector.java (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MRCConnector.java Thu Oct 25 19:12:57 2007
@@ -288,165 +288,20 @@
     }
 
     @SuppressWarnings("unchecked")
-    public ArrayList<HashMap<String, HashMap<String, Object>>> getLatestSnapshots()
+    public HashMap<String, HashMap<String, Object>> getLatestSnapshots()
             throws Exception
     {
-        int snapCount = 2;
+        int snapCount = 1;
         int skipCount = 1;
         ArrayList<HashMap<String, HashMap<String, Object>>> snapshotList = mrc
                 .fetchSnapshotData(snapCount, skipCount);
         // Check if snapshotList is empty
         if (snapshotList.size() == 0)
         {
-            return snapshotList;
+            return null;
         }
-        /*
-         * If there are not enough snapshots available to fill the requested
-         * number, insert some with values of 0 and the proper times.
-         */
-        while (snapshotList.size() < snapCount)
-        {
-            // Temporary, always is first element (oldest)
-            HashMap<String, HashMap<String, Object>> mapTimeFix = snapshotList
-                    .get(0);
-
-            // Temporary map, used to generate blank data to be added to
-            // the
-            // list at position 0
-            HashMap<String, HashMap<String, Object>> tempMap = new HashMap<String, HashMap<String, Object>>();
-
-            // Temporary submap, used to store 0 elements to be added to
-            // the
-            // tempmap
-            HashMap<String, Object> subMap = new HashMap<String, Object>();
-
-            // Calculate appropriate time, add it to the submap, then
-            // add
-            // that to the tempMap
-            subMap
-                    .put("snapshot_time", ((Long) mapTimeFix.get("times").get(
-                            "snapshot_time") - (MRCConnector
-                            .getSnapshotDuration() * skipCount)));
-            Format formatter = null;
-            formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            Date date = new Date((Long) subMap.get("snapshot_time"));
-            subMap.put("snapshot_date", formatter.format(date));
-
-            // Add the submap back to the tempmap
-            tempMap.put("times", new HashMap<String, Object>(subMap));
-
-            // Clear out the subMap for use again
-            subMap.clear();
-
-            // Run through the mbeans
-
-            // Run through the mbeans
-            for (Iterator<String> it = mapTimeFix.keySet().iterator(); it
-                    .hasNext();)
-            {
-                // get the mbean name
-                String mbeanName = it.next();
-                HashMap<String, Object> stats = null;
-                // Verify that it's not times
-
-                if (mbeanName.equals(new String("times")))
-                {
-
-                }
-                else
-                {
-                    stats = mapTimeFix.get(mbeanName);
-                    // Run through the stats elements for the particular
-                    // mbean
-                    for (Iterator<String> itt = stats.keySet().iterator(); itt
-                            .hasNext();)
-                    {
-                        String key = itt.next();
-                        // Place faux data into the submap
-                        subMap.put(key, new Long(0));
-                    }
-                    // Add the submap to the tempmap, and clear it
-                    tempMap.put(mbeanName, new HashMap<String, Object>(subMap));
-                }
-            }
-            snapshotList.add(0, new HashMap<String, HashMap<String, Object>>(
-                    tempMap));
-        }
-
-        /*
-         * This is where we will be inserting data to fill 'gaps' in the
-         * snapshots The initial for-loop will travel from the most recent
-         * snapshot to the oldest, checking that the snapshot_time along the
-         * way all align with what they should be
-         */
-        for (int i = snapshotList.size() - 1; i > 0; i--)
-        {
-            if (i > 0)
-            {
-                HashMap<String, HashMap<String, Object>> mapTimeFix = snapshotList
-                        .get(i);
-                HashMap<String, HashMap<String, Object>> mapTimeFix2 = snapshotList
-                        .get(i - 1);
-                // here is where we will in missing data
-                while (((((Long) mapTimeFix.get("times").get("snapshot_time") / 1000) / 60)
-                        - (((Long) mapTimeFix2.get("times")
-                                .get("snapshot_time") / 1000) / 60) > (((MRCConnector
-                        .getSnapshotDuration() / 1000) / 60) * skipCount)))
-                {
-                    HashMap<String, HashMap<String, Object>> tempMap = new HashMap<String, HashMap<String, Object>>();
-                    HashMap<String, Object> subMap = new HashMap<String, Object>();
-
-                    for (Iterator<String> it = mapTimeFix.keySet().iterator(); it
-                            .hasNext();)
-                    {
-                        // get the mbean name
-                        String mbeanName = it.next();
-                        HashMap<String, Object> stats = null;
-                        // Verify that it's not times
-                        if (!mbeanName.equals("times"))
-                        {
-                            stats = mapTimeFix.get(mbeanName);
-                            // Run through the stats elements for the
-                            // particular
-                            // mbean
-                            for (Iterator<String> itt = stats.keySet()
-                                    .iterator(); itt.hasNext();)
-                            {
-                                String key = itt.next();
-                                // Place faux data into the submap
-                                subMap.put(key, new Long(0));
-                            }
-                            // Add the submap to the tempmap, and clear it
-                            tempMap.put(mbeanName, new HashMap<String, Object>(
-                                    subMap));
-                            subMap.clear();
-                        }
-                    }
-
-                    subMap
-                            .put(
-                                    "snapshot_time",
-                                    new Long(
-                                            (Long) mapTimeFix.get("times").get(
-                                                    "snapshot_time")
-                                                    - (MRCConnector
-                                                            .getSnapshotDuration() * skipCount)));
-                    Format formatter = null;
-                    formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    Date date = new Date((Long) subMap.get("snapshot_time"));
-                    subMap.put("snapshot_date", formatter.format(date));
-                    tempMap.put("times", new HashMap<String, Object>(subMap));
-                    subMap.clear();
-                    snapshotList.add(i,
-                            new HashMap<String, HashMap<String, Object>>(
-                                    tempMap));
-                    snapshotList.remove(0);
-                    mapTimeFix = tempMap;
-                    mapTimeFix2 = snapshotList.get(i - 1);
-                }
-            }
-        }
-        return snapshotList;
+        else
+            return snapshotList.get(0);
     }
 
     /**
@@ -678,6 +533,12 @@
     {
         mrc.addMBeanForSnapshot(MBean);
         return true;
+    }
+
+    @SuppressWarnings("unchecked")
+    public HashMap<String, Long> getStats(String MBean) throws Exception
+    {
+        return mrc.getStats(MBean);
     }
 
 }

Modified: geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/DBManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/DBManager.java?rev=588469&r1=588468&r2=588469&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/DBManager.java (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/util/DBManager.java Thu Oct 25 19:12:57 2007
@@ -112,7 +112,7 @@
                             + "server_id   INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),"
                             + "enabled SMALLINT DEFAULT 1 NOT NULL,"
                             + "name VARCHAR(128) DEFAULT NULL,"
-                            + "ip   VARCHAR(15) UNIQUE NOT NULL,"
+                            + "ip   VARCHAR(128) UNIQUE NOT NULL,"
                             + "username    VARCHAR(128) NOT NULL,"
                             + "password    VARCHAR(1024) NOT NULL,"
                             + "added       TIMESTAMP NOT NULL,"
@@ -155,7 +155,7 @@
                             + "modified    TIMESTAMP NOT NULL)");
             pStmt.executeUpdate();
             pStmt = con
-                    .prepareStatement("INSERT INTO servers VALUES(DEFAULT, DEFAULT, 'localhost', '127.0.0.1', 'system', 'manager', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)");
+                    .prepareStatement("INSERT INTO servers VALUES(DEFAULT, DEFAULT, 'Local host', '127.0.0.1', 'system', 'manager', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)");
             pStmt.executeUpdate();
             pStmt = con
                     .prepareStatement("INSERT INTO graphs VALUES("

Modified: geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp?rev=588469&r1=588468&r2=588469&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp Thu Oct 25 19:12:57 2007
@@ -78,7 +78,7 @@
  <thead align="center"><strong>Servers</strong></thead>
  <tr>
   <th class="DarkBackground" width="20%">Name</th>
-  <th class="DarkBackground" width="10%">IP</th>
+  <th class="DarkBackground" width="10%">Address</th>
   <th class="DarkBackground" width="10%">Status</th>
   <th class="DarkBackground" width="10%">Stat. Query</th>
   <th class="DarkBackground" width="20%" colspan="2">Actions</th>

Modified: geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringViewServer.jsp
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringViewServer.jsp?rev=588469&r1=588468&r2=588469&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringViewServer.jsp (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringViewServer.jsp Thu Oct 25 19:12:57 2007
@@ -21,6 +21,7 @@
 <%@ page import="java.util.Vector" %>
 <%@ page import="java.util.Set" %>
 <%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.HashMap" %>
 <%@ page import="java.util.TreeMap" %>
 <%@ page import="java.lang.String" %>
 <%@ page import="java.sql.Connection" %>
@@ -103,7 +104,9 @@
  if (message != null)
  {
  %>
-<p><%=message %></p><br>
+<div align="left" style="width: 500px">
+<%=message %><br>
+</div>
 <%} %>
 <table>
     <tr>
@@ -116,9 +119,43 @@
             </p>         
             <p><%=rs2.getString("ip")%></p>
             <table>
-            <tr><th>Stat</th><th>Value</th></tr>
-            </tr><td>JVM Memory:</td><td>5</td></tr>
-             </tr><td>JVM Stat:</td><td>2</td></tr>
+            <%
+            Integer counter = 0;
+            for (Iterator <String> it = trackedBeansMap.keySet().iterator(); it.hasNext();)
+            {
+                String prettyBean = it.next().toString();
+                Set<String> statAttributes = MRCConnection.getStatAttributesOnMBean(trackedBeansMap.get(prettyBean));
+                HashMap<String, Long> beanStats = MRCConnection.getStats(trackedBeansMap.get(prettyBean));
+                if ((counter%3) == 0)
+                {
+                 %>
+                 <tr>
+                <%
+                }
+            %>
+                <td valign="top">
+                <table style="padding-left: 8px; padding-bottom: 10px;">
+                <tr><th colspan="2"><%=prettyBean%></th></tr>
+                <%
+                for (Iterator <String> itt = statAttributes.iterator(); itt.hasNext();)
+                {
+                    String dataName = itt.next().toString();
+                %>
+                    <tr><td><%=dataName%></td><td><%=beanStats.get(dataName) %></td></tr>
+                <%
+                }
+                %>
+                </table>
+                </td>
+                <%
+                if ((counter%3) == 2)
+                {
+                 %>
+                 </tr>
+                <%
+                }
+                counter = counter + 1;
+             }%>
             </table>
 <% for (StatsGraph graph : GraphVector) 
 {
@@ -166,14 +203,13 @@
 
                         
                         <%
-                        Iterator<String> itTracked = trackedBeansMap.keySet().iterator(); 
-                        while  ( itTracked.hasNext() )   
+                        for (Iterator <String> it = trackedBeansMap.keySet().iterator(); it.hasNext();)   
                         {
-                            String prettyBean = itTracked.next().toString();
+                            String prettyBean = it.next().toString();
                           %>
                                            <tr>
                     <td width=95% bgcolor="#FFFFFF" nowrap>
-                           <a href="#"><%=prettyBean%></a>
+                           <%=prettyBean%>
                            </td>
                     <td align="right" width=5% bgcolor="#f2f2f2" nowrap>
                     <a href="<portlet:actionURL portletMode="view"><portlet:param name="action" value="stopTrackingMbean" /><portlet:param name="server_id" value="<%=server_id%>" /><portlet:param name="mbean" value="<%=trackedBeansMap.get(prettyBean)%>" /></portlet:actionURL>">X</a><br>
@@ -195,14 +231,13 @@
 
                         
                         <%
-                        Iterator<String> itAvailable = availableBeansMap.keySet().iterator(); 
-                        while  ( itAvailable.hasNext() )   
+                        for (Iterator <String> it = availableBeansMap.keySet().iterator(); it.hasNext();)   
                         {
-                            String prettyBean = itAvailable.next().toString();
+                            String prettyBean = it.next().toString();
                           %>
                                            <tr>
                     <td width=95% bgcolor="#FFFFFF" nowrap>
-                           <a href="#"><%=prettyBean%></a>
+                           <%=prettyBean%>
                            </td>
                     <td align="right" width=5% bgcolor="#f2f2f2" nowrap>
                     <a href="<portlet:actionURL portletMode="view"><portlet:param name="action" value="startTrackingMbean" /><portlet:param name="server_id" value="<%=server_id%>" /><portlet:param name="mbean" value="<%=availableBeansMap.get(prettyBean)%>" /></portlet:actionURL>">+</a><br>
@@ -261,6 +296,7 @@
     </tr>
 </table>
     <%}%>
+