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/09 05:27:26 UTC
svn commit: r583038 [1/2] - 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/
clie...
Author: akulshreshtha
Date: Mon Oct 8 20:27:25 2007
New Revision: 583038
URL: http://svn.apache.org/viewvc?rev=583038&view=rev
Log:
GERONIMO-3517 Monitoring Client Patch by Eric B. Craig
Added:
geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringEdit.jsp (with props)
geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringNormal.jsp (with props)
geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringPage.jsp (with props)
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/GraphsBuilder.java
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/MonitoringPortlet.java
geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/StatsGraph.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/geronimo-web.xml
geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/portlet.xml
geronimo/sandbox/monitoring/client/client-war/src/main/webapp/WEB-INF/view/monitoringHelp.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=583038&r1=583037&r2=583038&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 Mon Oct 8 20:27:25 2007
@@ -1,11 +1,196 @@
-CREATE TABLE mrc_servers(
- server_id INTEGER PRIMARY KEY,
- server_ip VARCHAR(15),
- username VARCHAR(128),
- password VARCHAR(1024)
-);
-
-INSERT INTO mrc_servers VALUES('0', '127.0.0.1', 'system', 'manager');
-INSERT INTO mrc_servers VALUES('1', '127.0.0.2', 'system', 'manager');
-INSERT INTO mrc_servers VALUES('2', '127.0.0.3', 'system', 'manager');
+/*
+ * server_id ID number for server - auto generated
+ * enabled Enable/disable this server - defaults to 1
+ * name Name for this server - alphanum
+ * ip IP address of this server
+ * username username to use for connecting
+ * password password to use for connecting
+ * added Timestamp when this server was added
+ * modified Timestamp when this record was changed
+ * last_seen Timestamp when this server was last seen
+ */
+CREATE TABLE servers(
+ 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,
+ username VARCHAR(128) NOT NULL,
+ password VARCHAR(1024) NOT NULL,
+ added TIMESTAMP NOT NULL,
+ modified TIMESTAMP NOT NULL,
+ last_seen TIMESTAMP NOT NULL
+);
+/*
+ * graph_id Id number for graph - auto generated
+ * enabled Enable/disable display of graph defaults 1
+ * server_id server id graph is associated with
+ * name name for graph - alphanumeric for js.
+ * description Description for the graph
+ * timeframe Timeframe for graph in minutes, defaults to 60
+ * mbean Mbean for graph
+ * data1operation Operation to be performed on data 1
+ * D indicates delta (subtracts i-1 from i)
+ * dataname1 Stats name for data1
+ * operation Operation between data1 and 2 done in JS
+ * Simple math.. for example.. /10/ would divide data1 by 10, then divide result by data2
+ * Simply / would divide data1 by data2
+ * data2operation Operation to be performed on data 2
+ * D indicates delta (subtracts i-1 from i)
+ * dataname2 Name for data2
+ * xlabel xLabel at the bottom of the graph
+ * ylabel yLabel on the side of the graph
+ * warninglevel1 Level at which graph turns to yellow (float)
+ * warninglevel2 Level at which graph turns to red (float)
+ * color Default color of the graph
+ * last_js Most recently generated JS source
+ * added Timestamp when this graph was added
+ * modified Timestamp when this graph was last changed
+ * last_seen Timestamp when this graph was last generated
+ */
+CREATE TABLE graphs(
+ graph_id INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),
+ enabled SMALLINT NOT NULL DEFAULT 1,
+ server_id INTEGER NOT NULL DEFAULT 0,
+ name VARCHAR(64) UNIQUE NOT NULL,
+ description LONG VARCHAR DEFAULT NULL,
+ timeframe INTEGER NOT NULL DEFAULT 60,
+ mbean VARCHAR(512) NOT NULL,
+ data1operation CHAR DEFAULT NULL,
+ dataname1 VARCHAR(128) NOT NULL,
+ operation VARCHAR(128) DEFAULT NULL,
+ data2operation CHAR DEFAULT NULL,
+ dataname2 VARCHAR(128) DEFAULT NULL,
+ xlabel VARCHAR(128) DEFAULT NULL,
+ ylabel VARCHAR(128) DEFAULT NULL,
+ warninglevel1 FLOAT DEFAULT NULL,
+ warninglevel2 FLOAT DEFAULT NULL,
+ color VARCHAR(6) NOT NULL DEFAULT '1176c2',
+ last_js LONG VARCHAR DEFAULT NULL,
+ added TIMESTAMP NOT NULL,
+ modified TIMESTAMP NOT NULL,
+ last_seen TIMESTAMP NOT NULL
+);
+/*
+ * view_id ID number for the view, auto generated
+ * enabled Enable or disable of showing this view defaults 1
+ * name Name for this view
+ * description Longer description for this view
+ * graph_count Number of graphs in this view
+ * graph_ids Id numbers for graphs in this view
+ * added Timestamp when this was created
+ * modified Timestamp when this was last changed
+ */
+CREATE TABLE views(
+ view_id INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),
+ enabled SMALLINT NOT NULL DEFAULT 1,
+ name VARCHAR(128) NOT NULL,
+ description LONG VARCHAR DEFAULT NULL,
+ graph_count INTEGER NOT NULL DEFAULT 0,
+ graph_ids LONG VARCHAR NOT NULL,
+ 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 graphs VALUES(
+ DEFAULT,
+ DEFAULT,
+ DEFAULT,
+ 'TomcatWebBytesSentSecond60Min',
+ 'KiloBytes sent per second from the Tomcat Web Connector',
+ DEFAULT,
+ 'geronimo:J2EEServer=geronimo,ServiceModule=org.apache.geronimo.configs/tomcat6/2.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatWebConnector',
+ 'D',
+ 'BytesSent',
+ '/1024/',
+ 'D',
+ 'time',
+ 'Tomcat Web KBytes/Sec Sent',
+ 'KBps',
+ 500.0,
+ 1024.0,
+ DEFAULT,
+ DEFAULT,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP
+);
+INSERT INTO graphs VALUES(
+ DEFAULT,
+ DEFAULT,
+ DEFAULT,
+ 'TomcatWebBytesReceivedSecond60Min',
+ 'KiloBytes received per second from the Tomcat Web Connector',
+ DEFAULT,
+ 'geronimo:J2EEServer=geronimo,ServiceModule=org.apache.geronimo.configs/tomcat6/2.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatWebConnector',
+ 'D',
+ 'BytesReceived',
+ '/1024/',
+ 'D',
+ 'time',
+ 'Tomcat Web KBytes/Sec Received',
+ 'KBps',
+ 500.0,
+ 1024.0,
+ DEFAULT,
+ DEFAULT,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP
+);
+INSERT INTO graphs VALUES(
+ DEFAULT,
+ DEFAULT,
+ DEFAULT,
+ 'TomcatWebRequestTimeSecond60Min',
+ 'Request processing time over time from the Tomcat Web Connector',
+ DEFAULT,
+ 'geronimo:J2EEServer=geronimo,ServiceModule=org.apache.geronimo.configs/tomcat6/2.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatWebConnector',
+ 'D',
+ 'RequestTimeCurrentTime',
+ '/',
+ 'D',
+ 'time',
+ 'Tomcat Request Time/Second',
+ 'RequestTime',
+ 500.0,
+ 1024.0,
+ DEFAULT,
+ DEFAULT,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP
+);
+INSERT INTO graphs VALUES(
+ DEFAULT,
+ DEFAULT,
+ DEFAULT,
+ 'TomcatWebErrorCountSecond60Min',
+ 'Error count over time from the Tomcat Web Connector',
+ DEFAULT,
+ 'geronimo:J2EEServer=geronimo,ServiceModule=org.apache.geronimo.configs/tomcat6/2.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatWebConnector',
+ 'D',
+ 'ErrorCount',
+ '/',
+ 'D',
+ 'time',
+ 'Error Count/Sec',
+ 'Errors',
+ 500.0,
+ 1024.0,
+ DEFAULT,
+ DEFAULT,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP
+);
+INSERT INTO views VALUES(
+ DEFAULT,
+ DEFAULT,
+ 'Tomcat Web Connector 60 mins',
+ 'Tomcat Web Connector 60 minute graphs',
+ 4,
+ '0,1,2,3,',
+ CURRENT_TIMESTAMP,
+ CURRENT_TIMESTAMP
+);
Modified: geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/GraphsBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/GraphsBuilder.java?rev=583038&r1=583037&r2=583038&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/GraphsBuilder.java (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/GraphsBuilder.java Mon Oct 8 20:27:25 2007
@@ -16,562 +16,304 @@
*/
package org.apache.geronimo.plugins.monitoring.client;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
-import java.util.Vector;
import java.util.Set;
-import java.util.HashSet;
-import org.apache.geronimo.plugins.monitoring.client.StatsGraph;
+import java.util.Vector;
-public class GraphsBuilder {
+public class GraphsBuilder
+{
- private String ServerIP = new String();
- private HashMap<String, ArrayList<String>> DataNameList = new HashMap<String, ArrayList<String>>();
- private int timeFrame;
- private int snapCount;
- private MRCConnector MRCConnection = new MRCConnector();
+ private String ServerIP = new String();
+ private final HashMap<String, ArrayList<String>> DataNameList = new HashMap<String, ArrayList<String>>();
+ private int timeFrame;
+ private int snapCount;
+ private MRCConnector MRCConnection = new MRCConnector();
+ private final Connection Con;
// constructor
- GraphsBuilder(int serverID) {
- // TODO: Database pull stuff may go here... based on server ID...
- String username = "system";
- String password = "manager";
- ServerIP = "127.0.0.1";
-
- try {
-
- MRCConnection = new MRCConnector(ServerIP, username, password);
- // TODO: Read config file to pull stuff we want graphed
- DataNameList = MRCConnection.getDataNameList();
- } catch (Exception e) {
- e.printStackTrace();
- }
+ public GraphsBuilder(Connection con)
+ {
+ // TODO: Database pull stuff may go here... based on server ID...\
+ Con = con;
}
- /**
- * @param mbServerConn:
- * mbean connection to Geronimo instance
- * @param snapCount:
- * Number of points to graph from
- * @param timeFrame:
- * Duration (in minutes) to be represented with the snapCount
- * @return List of strings to be dumped to page
- * @throws Exception
- */
- public Vector<StatsGraph> BuildAllOnTimeFrame(int snapcount, int timeframe)
- throws Exception {
-
- timeFrame = timeframe;
- snapCount = snapcount;
- HashMap<String, Vector<Object>> DataList = new HashMap<String, Vector<Object>>();
+ public StatsGraph buildOneDB(int snapcount, int graph_id) throws Exception
+ {
+ PreparedStatement pStmt = null;
+ ResultSet rsServer = null;
- // Run through the mbeans
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
- // Verify that it's not times
- if (!mbeanName.equals("times")) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt.hasNext();) {
- String key = (String) itt.next();
- // Place elements into the DataList
- DataList.put(mbeanName + "+" + key, new Vector<Object>());
- }
- }
- }
+ pStmt = Con
+ .prepareStatement("SELECT * from graphs WHERE enabled=1 AND graph_id="
+ + graph_id);
+ ResultSet rs = pStmt.executeQuery();
+
+ if (rs.next())
+ {
+ pStmt = Con
+ .prepareStatement("SELECT * from servers WHERE enabled=1 AND server_id="
+ + rs.getInt("server_id"));
+ rsServer = pStmt.executeQuery();
+
+ if (rsServer.next())
+ {
+ ServerIP = rsServer.getString("ip");
+
+ MRCConnection = new MRCConnector(ServerIP, rsServer
+ .getString("username"), rsServer.getString("password"));
+ // DataNameList = MRCConnection.getDataNameList();
- if ((timeFrame / 1440 == 30))
- snapCount = 17;
- else {
- if (((timeFrame / 1440) <= 7) && ((timeFrame / 60) > 24)
- && snapCount >= 14) {
- if ((timeFrame / 1440) == 7)
- snapCount = 16;
- else
- snapCount = 12;
}
- }
-
- Vector<Object> snapshot_date = new Vector<Object>();
- Vector<Object> snapshot_time = new Vector<Object>();
- ;
- Vector<Object> PrettyTime = new Vector<Object>();
-
- String prettyTimeFrame = new String();
- DecimalFormat fmt = new DecimalFormat("0.##");
- if (timeFrame / 60 > 24)
- prettyTimeFrame = fmt.format((float) (timeFrame / 1440)) + " day";
- else {
- if (timeFrame > 60)
- prettyTimeFrame = fmt.format((float) timeFrame / 60) + " hour";
else
- prettyTimeFrame = fmt.format(timeFrame) + " minute";
- }
+ return null;
- try {
- int skipCount = (int) ((timeFrame / (MRCConnector
- .getSnapshotDuration() / 60000)))
- / (snapCount - 2);
- // TODO: Call the fetching thing here
- ArrayList<HashMap<String, HashMap<String, Object>>> snapshotList = MRCConnection
- .getSnapshots(snapCount, skipCount);
-
- /*
- * 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)((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
- for (Iterator<String> it = mapTimeFix.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- HashMap<String, Object> stats = null;
- // Verify that it's not times
-
- if (mbeanName.equals(new String("times"))) {
+ String mBeanName = rs.getString("mbean");
+ String dataName = rs.getString("dataname1");
+ String graphName = rs.getString("name");
+ timeFrame = rs.getInt("timeframe");
- } 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 = (String) 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));
- }
+ snapCount = snapcount;
+ HashMap<String, Vector<Object>> DataList = new HashMap<String, Vector<Object>>();
- /*
- * 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 = (String) 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 = (String) 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();
- }
- }
+ DataList.put(graphName, new Vector<Object>());
- 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);
- }
+ if ((timeFrame / 1440 == 30))
+ snapCount = 17;
+ else
+ {
+ if (((timeFrame / 1440) <= 7) && ((timeFrame / 60) > 24)
+ && snapCount >= 14)
+ {
+ if ((timeFrame / 1440) == 7)
+ snapCount = 16;
+ else
+ snapCount = 12;
}
}
- for (int i = 0; i < snapshotList.size(); i++) {
- HashMap<String, HashMap<String, Object>> map = snapshotList
- .get(i);
- snapshot_date.add((String) map.get("times")
- .get("snapshot_date"));
- snapshot_time.add((Long) map.get("times").get("snapshot_time"));
-
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
-
- // Verify that it's not times
- if (!mbeanName.equals("times")) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt
- .hasNext();) {
- String key = (String) itt.next();
- Vector<Object> vectorTemp = DataList.get(mbeanName
- + "+" + key);
- vectorTemp.add(map.get(mbeanName).get(key));
- // Place elements into the DataList
- DataList.put(mbeanName + "+" + key, vectorTemp);
- }
- }
- }
- PrettyTime.add((Long) map.get("times").get("snapshot_time") / 1000);
+ Vector<Object> snapshot_date = new Vector<Object>();
+ Vector<Object> snapshot_time = new Vector<Object>();
+ ;
+ Vector<Object> PrettyTime = new Vector<Object>();
+
+ String prettyTimeFrame = new String();
+ DecimalFormat fmt = new DecimalFormat("0.##");
+ if (timeFrame / 60 > 24)
+ prettyTimeFrame = fmt.format((float) (timeFrame / 1440))
+ + " day";
+ else
+ {
+ if (timeFrame > 60)
+ prettyTimeFrame = fmt.format((float) timeFrame / 60)
+ + " hour";
+ else
+ prettyTimeFrame = fmt.format(timeFrame) + " minute";
}
- } catch (Exception e) {
- e.printStackTrace();
- }
+ try
+ {
+ int skipCount = (int) ((timeFrame / (MRCConnector
+ .getSnapshotDuration() / 60000)))
+ / (snapCount - 2);
+ // TODO: Call the fetching thing here
+ ArrayList<HashMap<String, HashMap<String, Object>>> snapshotList = MRCConnection
+ .getSnapshots(snapCount, skipCount);
+
+ // Check if snapshotList is 0
+ // TODO: Return a buncha null datas
+ if (snapshotList.size() == 0)
+ {
+ HashMap<String, HashMap<String, Object>> tempMap = new HashMap<String, HashMap<String, Object>>();
+ HashMap<String, Object> subMap = new HashMap<String, Object>();
+ subMap.put(dataName, new Long(0));
+ tempMap.put(mBeanName, new HashMap<String, Object>(subMap));
+ subMap.clear();
+ subMap.put("snapshot_time", System.currentTimeMillis());
+ 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));
+
+ snapshotList
+ .add(new HashMap<String, HashMap<String, Object>>(
+ tempMap));
+ }
+ /*
+ * 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);
- Vector<StatsGraph> GraphVector = new Vector<StatsGraph>();
+ // 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));
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
-
- // Verify that it's not times
- if (!mbeanName.equals("times")) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt.hasNext();) {
- String key = (String) itt.next();
- String[] titleTest = mbeanName.split("=");
- if (!(key.contains("Max") || key.contains("Min") || key
- .contains("Current"))) {
-
-
- GraphVector.add(new StatsGraph(titleTest[titleTest.length-1]+key, "127.0.0.1" + " - "
- + titleTest[titleTest.length-1]+key + "/second - " + prettyTimeFrame, "", "",
- DataList.get(mbeanName + "+" + key), '/',
- PrettyTime, snapshot_time, (int) (MRCConnector
- .getSnapshotDuration() / 1000),
- timeFrame, "1176c2"));
- }
- if (key.contains("Current")) {
- GraphVector.add(new StatsGraph(titleTest[titleTest.length-1]+key, "127.0.0.1" + " - "
- + titleTest[titleTest.length-1]+key + " - " + prettyTimeFrame, "", "",
- DataList.get(mbeanName + "+" + key),
- snapshot_time, (int) (MRCConnector
- .getSnapshotDuration() / 1000),
- timeFrame, "1176c2"));
+ // Add the submap back to the tempmap
+ tempMap.put("times", new HashMap<String, Object>(subMap));
- }
- }
- }
- }
+ // Clear out the subMap for use again
+ subMap.clear();
- return GraphVector;
- }
+ // Run through the mbeans
+ // Verify that it's not times
+ // Run through the stats elements for the particular
+ // mbean
- public Vector<StatsGraph> BuildOnMbean(int snapcount, int timeframe, String MBeanName)
- throws Exception {
+ // Place faux data into the submap
+ subMap.put(dataName, new Long(0));
- timeFrame = timeframe;
- snapCount = snapcount;
- HashMap<String, Vector<Object>> DataList = new HashMap<String, Vector<Object>>();
+ // Add the submap to the tempmap, and clear it
+ tempMap.put(mBeanName, new HashMap<String, Object>(subMap));
-// Run through the mbeans
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
- // Verify that it's not times
- if (mbeanName.contains(MBeanName)) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt.hasNext();) {
- String key = (String) itt.next();
- // Place elements into the DataList
- DataList.put(mbeanName + "+" + key, new Vector<Object>());
+ snapshotList.add(0,
+ new HashMap<String, HashMap<String, Object>>(
+ tempMap));
}
- }
- }
-
- if ((timeFrame / 1440 == 30))
- snapCount = 17;
- else {
- if (((timeFrame / 1440) <= 7) && ((timeFrame / 60) > 24)
- && snapCount >= 14) {
- if ((timeFrame / 1440) == 7)
- snapCount = 16;
- else
- snapCount = 12;
- }
- }
- Vector<Object> snapshot_date = new Vector<Object>();
- Vector<Object> snapshot_time = new Vector<Object>();
- ;
- Vector<Object> PrettyTime = new Vector<Object>();
-
- String prettyTimeFrame = new String();
- DecimalFormat fmt = new DecimalFormat("0.##");
- if (timeFrame / 60 > 24)
- prettyTimeFrame = fmt.format((float) (timeFrame / 1440)) + " day";
- else {
- if (timeFrame > 60)
- prettyTimeFrame = fmt.format((float) timeFrame / 60) + " hour";
- else
- prettyTimeFrame = fmt.format(timeFrame) + " minute";
- }
+ /*
+ * 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>();
- try {
- int skipCount = (int) ((timeFrame / (MRCConnector
- .getSnapshotDuration() / 60000)))
- / (snapCount - 2);
- // TODO: Call the fetching thing here
- ArrayList<HashMap<String, HashMap<String, Object>>> snapshotList = MRCConnection
- .getSnapshots(snapCount, skipCount);
-
- /*
- * 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)((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
- for (Iterator<String> it = mapTimeFix.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- HashMap<String, Object> stats = null;
- // Verify that it's not times
+ // Verify that it's not times
+ // Run through the stats elements for the
+ // particular
- if (mbeanName.contains(MBeanName)) {
- stats = mapTimeFix.get(mbeanName);
- // Run through the stats elements for the particular
- // mbean
- for (Iterator<String> itt = stats.keySet().iterator(); itt
- .hasNext();) {
- String key = (String) 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));
- }
+ subMap.put(dataName, new Long(0));
- /*
- * 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 = (String) it.next();
- HashMap<String, Object> stats = null;
- // Verify that it's not times
- if (mbeanName.contains(MBeanName)) {
- stats = mapTimeFix.get(mbeanName);
- // Run through the stats elements for the
- // particular
- // mbean
- for (Iterator<String> itt = stats.keySet()
- .iterator(); itt.hasNext();) {
- String key = (String) 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();
- }
+ // 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);
}
-
- 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);
}
}
- }
-
- for (int i = 0; i < snapshotList.size(); i++) {
- HashMap<String, HashMap<String, Object>> map = snapshotList
- .get(i);
- snapshot_date.add((String) map.get("times")
- .get("snapshot_date"));
- snapshot_time.add((Long) map.get("times").get("snapshot_time"));
-
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
- // Verify that it's not times
- if (mbeanName.contains(MBeanName)) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt
- .hasNext();) {
- String key = (String) itt.next();
- Vector<Object> vectorTemp = DataList.get(mbeanName
- + "+" + key);
- vectorTemp.add(map.get(mbeanName).get(key));
- // Place elements into the DataList
- DataList.put(mbeanName + "+" + key, vectorTemp);
- }
- }
+ for (int i = 0; i < snapshotList.size(); i++)
+ {
+ HashMap<String, HashMap<String, Object>> map = snapshotList
+ .get(i);
+ snapshot_date.add(map.get("times").get("snapshot_date"));
+ snapshot_time.add(map.get("times").get("snapshot_time"));
+ Vector<Object> vectorTemp = DataList.get(graphName);
+ vectorTemp.add(map.get(mBeanName).get(dataName));
+ DataList.put(graphName, vectorTemp);
+ PrettyTime
+ .add((Long) map.get("times").get("snapshot_time") / 1000);
}
- PrettyTime.add((Long) map.get("times").get("snapshot_time") / 1000);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- Vector<StatsGraph> GraphVector = new Vector<StatsGraph>();
-
- for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
- // get the mbean name
- String mbeanName = (String) it.next();
- ArrayList<String> stats = null;
-
- // Verify that it's not times
- if (mbeanName.contains(MBeanName)) {
- stats = DataNameList.get(mbeanName);
- for (Iterator<String> itt = stats.iterator(); itt.hasNext();) {
- String key = (String) itt.next();
- String[] titleTest = mbeanName.split("=");
- if (!(key.contains("Max") || key.contains("Min") || key
- .contains("Current"))) {
-
-
- GraphVector.add(new StatsGraph(titleTest[titleTest.length-1]+key, "127.0.0.1" + " - "
- + titleTest[titleTest.length-1]+key + "/second - " + prettyTimeFrame, "", "",
- DataList.get(mbeanName + "+" + key), '/',
- PrettyTime, snapshot_time, (int) (MRCConnector
- .getSnapshotDuration() / 1000),
- timeFrame, "1176c2"));
- }
- if (key.contains("Current")) {
- GraphVector.add(new StatsGraph(titleTest[titleTest.length-1]+key, "127.0.0.1" + " - "
- + titleTest[titleTest.length-1]+key + " - " + prettyTimeFrame, "", "",
- DataList.get(mbeanName + "+" + key),
- snapshot_time, (int) (MRCConnector
- .getSnapshotDuration() / 1000),
- timeFrame, "1176c2"));
- }
- }
}
- }
- return GraphVector;
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ return (new StatsGraph(graph_id, graphName, rs
+ .getString("description"), ServerIP + " - "
+ + rs.getString("xlabel") + " - " + prettyTimeFrame, rs
+ .getString("ylabel"), rs.getString("data1operation")
+ .charAt(0), DataList.get(graphName), rs
+ .getString("operation"), rs.getString("data2operation")
+ .charAt(0), PrettyTime, snapshot_time, (int) (MRCConnector
+ .getSnapshotDuration() / 1000), timeFrame, rs
+ .getString("color"), rs.getFloat("warninglevel1"), rs
+ .getFloat("warninglevel1")));
+ }
+ else
+ return null;
}
public Set<String> GetTrackedBeansPretty()
{
Set<String> trackedBeans = new HashSet<String>();
- for (Iterator<String> it = DataNameList.keySet().iterator(); it.hasNext();) {
+ for (Iterator<String> it = DataNameList.keySet().iterator(); it
+ .hasNext();)
+ {
String mbeanName = it.next();
- if (!mbeanName.equals("times")) {
+ if (!mbeanName.equals("times"))
+ {
String[] beanTemp = mbeanName.split("=");
- trackedBeans.add(beanTemp[beanTemp.length-1]);
+ trackedBeans.add(beanTemp[beanTemp.length - 1]);
}
}
return trackedBeans;
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=583038&r1=583037&r2=583038&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 Mon Oct 8 20:27:25 2007
@@ -27,27 +27,35 @@
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
-public class MRCConnector {
+public class MRCConnector
+{
- private static final String PATH = "geronimo:ServiceModule=org.apache.geronimo.monitor/MRC/1.0/car,J2EEServer=geronimo,name=MasterRemoteControl,j2eeType=GBean";
+ private static final String PATH = "geronimo:ServiceModule=org.apache.geronimo.monitor/MRC/1.0/car,J2EEServer=geronimo,name=MasterRemoteControl,j2eeType=GBean";
private static MBeanServerConnection mbServerConn;
- private static Long SnapshotDuration = new Long(0);
- MRCConnector() {
+ private static Long SnapshotDuration = new Long(0);
+
+ MRCConnector()
+ {
}
/**
- * @param ServerIP - IP address of mrc-server to connect to
- * @param userName - Username for JMX connection to the host
- * @param password - Password for JMX connection to the host
- * @throws Exception - If the connection to mrc-server fails
+ * @param ServerIP -
+ * IP address of mrc-server to connect to
+ * @param userName -
+ * Username for JMX connection to the host
+ * @param password -
+ * Password for JMX connection to the host
+ * @throws Exception -
+ * If the connection to mrc-server fails
*/
MRCConnector(String ServerIP, String userName, String password)
- throws Exception {
+ throws Exception
+ {
JMXServiceURL serviceURL = new JMXServiceURL(
- "service:jmx:rmi:///jndi/rmi://" + ServerIP
- + ":1099/JMXConnector");
- Hashtable<String,Object> env = new Hashtable<String,Object>();
+ "service:jmx:rmi:///jndi/rmi://" + ServerIP
+ + ":1099/JMXConnector");
+ Hashtable<String, Object> env = new Hashtable<String, Object>();
String[] credentials = new String[2];
credentials[0] = userName;
credentials[1] = password;
@@ -57,16 +65,23 @@
}
/**
- * @return - Returns an Long representing the current snapshot duration set on the server side
- * @throws Exception - If the connection to the MRC-Server fails
+ * @return - Returns an Long representing the current snapshot duration set
+ * on the server side
+ * @throws Exception -
+ * If the connection to the MRC-Server fails
*/
- public static Long getSnapshotDuration() throws Exception {
- if (SnapshotDuration == 0) {
- try {
+ public static Long getSnapshotDuration() throws Exception
+ {
+ if (SnapshotDuration == 0)
+ {
+ try
+ {
SnapshotDuration = (Long) mbServerConn.invoke(new ObjectName(
- PATH), "getSnapshotDuration", new Object[] {},
- new String[] {});
- } catch (Exception e) {
+ PATH), "getSnapshotDuration", new Object[] {},
+ new String[] {});
+ }
+ catch (Exception e)
+ {
e.printStackTrace();
}
}
@@ -74,22 +89,32 @@
}
/**
- * @return - Returns an ArrayList of String objects containing a listing of all statistics values being collected
- * @throws Exception - If the connection to the MRC-Server fails
+ * @return - Returns an ArrayList of String objects containing a listing of
+ * all statistics values being collected
+ * @throws Exception -
+ * If the connection to the MRC-Server fails
*/
- public HashMap<String, ArrayList<String>> getDataNameList() throws Exception {
+ @SuppressWarnings("unchecked")
+ public HashMap<String, ArrayList<String>> getDataNameList()
+ throws Exception
+ {
HashMap<String, ArrayList<String>> DataNameList = new HashMap<String, ArrayList<String>>();
- try {
- DataNameList = (HashMap<String, ArrayList<String>>) mbServerConn.invoke(
- new ObjectName(PATH), "getAllSnapshotStatAttributes",
- new Object[] {}, new String[] {});
- } catch (Exception e) {
+ try
+ {
+ DataNameList = (HashMap<String, ArrayList<String>>) mbServerConn
+ .invoke(new ObjectName(PATH),
+ "getAllSnapshotStatAttributes", new Object[] {},
+ new String[] {});
+ }
+ catch (Exception e)
+ {
e.printStackTrace();
}
- //Strip out snapshot_date and snapshot_time, we know these exist
+ // Strip out snapshot_date and snapshot_time, we know these exist
for (Iterator<String> it = DataNameList.keySet().iterator(); it
- .hasNext();) {
+ .hasNext();)
+ {
String mbeanName = it.next();
DataNameList.get(mbeanName).remove("snapshot_date");
DataNameList.get(mbeanName).remove("snapshot_time");
@@ -98,17 +123,23 @@
}
/**
- * @param snapCount - Number of snapshots to request from the server
- * @param skipCount - Every nth snapshot. A value of 1 will be every 1. A value of 2 will be every other.
+ * @param snapCount -
+ * Number of snapshots to request from the server
+ * @param skipCount -
+ * Every nth snapshot. A value of 1 will be every 1. A value of 2
+ * will be every other.
* @return - Returns an ArrayList of Map objects.
- * @throws Exception - If the connection to the MRC-Server fails
+ * @throws Exception -
+ * If the connection to the MRC-Server fails
*/
- public ArrayList<HashMap<String, HashMap<String,Object>>> getSnapshots(int snapCount, int skipCount)
- throws Exception {
- ArrayList<HashMap<String, HashMap<String,Object>>> list = (ArrayList<HashMap<String, HashMap<String,Object>>>) mbServerConn.invoke(
- new ObjectName(PATH), "fetchSnapshotData", new Object[] {
- snapCount, skipCount}, new String[] {
- "java.lang.Integer", "java.lang.Integer"});
+ @SuppressWarnings("unchecked")
+ public ArrayList<HashMap<String, HashMap<String, Object>>> getSnapshots(
+ int snapCount, int skipCount) throws Exception
+ {
+ ArrayList<HashMap<String, HashMap<String, Object>>> list = (ArrayList<HashMap<String, HashMap<String, Object>>>) mbServerConn
+ .invoke(new ObjectName(PATH), "fetchSnapshotData",
+ new Object[] { snapCount, skipCount }, new String[] {
+ "java.lang.Integer", "java.lang.Integer" });
return list;
}
}
Modified: geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MonitoringPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MonitoringPortlet.java?rev=583038&r1=583037&r2=583038&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MonitoringPortlet.java (original)
+++ geronimo/sandbox/monitoring/client/client-war/src/main/java/org/apache/geronimo/plugins/monitoring/client/MonitoringPortlet.java Mon Oct 8 20:27:25 2007
@@ -17,12 +17,6 @@
package org.apache.geronimo.plugins.monitoring.client;
import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.util.ArrayList;
-import java.util.Vector;
-import java.util.Set;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -32,22 +26,30 @@
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
-import javax.portlet.WindowState;
-import org.apache.geronimo.plugins.monitoring.client.GraphsBuilder;
-import org.apache.geronimo.plugins.monitoring.client.util.DBManager;
/**
* STATS
*/
-public class MonitoringPortlet extends GenericPortlet {
+public class MonitoringPortlet extends GenericPortlet
+{
- private static final String MBEAN_JSP = "/WEB-INF/view/monitoringMbean.jsp";
+ private static final String NORMALVIEW_JSP = "/WEB-INF/view/monitoringNormal.jsp";
- private static final String TIMEFRAME_JSP = "/WEB-INF/view/monitoringTimeframe.jsp";
+ private static final String PAGEVIEW_JSP = "/WEB-INF/view/monitoringPage.jsp";
- private static final String MAXIMIZEDVIEW_JSP = "/WEB-INF/view/monitoringMaximized.jsp";
+ private static final String MBEAN_JSP = "/WEB-INF/view/monitoringMbean.jsp";
- private static final String HELPVIEW_JSP = "/WEB-INF/view/monitoringHelp.jsp";
+ private static final String TIMEFRAME_JSP = "/WEB-INF/view/monitoringTimeframe.jsp";
+
+ private static final String MAXIMIZEDVIEW_JSP = "/WEB-INF/view/monitoringMaximized.jsp";
+
+ private static final String HELPVIEW_JSP = "/WEB-INF/view/monitoringHelp.jsp";
+
+ private static final String EDITVIEW_JSP = "/WEB-INF/view/monitoringEdit.jsp";
+
+ private PortletRequestDispatcher normalView;
+
+ private PortletRequestDispatcher pageView;
private PortletRequestDispatcher mBeanView;
@@ -57,115 +59,85 @@
private PortletRequestDispatcher helpView;
+ private PortletRequestDispatcher editView;
+
+ @Override
public void processAction(ActionRequest actionRequest,
- ActionResponse actionResponse) throws PortletException, IOException {
- actionResponse.setRenderParameter("time", actionRequest.getParameter("time"));
- actionResponse.setRenderParameter("mode", actionRequest.getParameter("mode"));
- if (actionRequest.getParameter("mode").equals("mbean")) {
- actionResponse.setRenderParameter("bean", actionRequest.getParameter("bean"));
+ ActionResponse actionResponse) throws PortletException, IOException
+ {
+ String action = actionRequest.getParameter("action");
+ actionResponse.setRenderParameter("action", action);
+ if (action.equals("showView"))
+ {
+ String view_id = actionRequest.getParameter("view_id");
+ actionResponse.setRenderParameter("view_id", view_id);
}
}
+ @Override
public void doView(RenderRequest request, RenderResponse response)
- throws PortletException, IOException {
- Integer timeFrame = 60;
- String mode = "mbean";
- String bean = "TomcatWebConnector";
- if (request.getParameter("time") != null)
- timeFrame = Integer.parseInt(request.getParameter("time"));
- if (request.getParameter("mode") != null)
- mode = request.getParameter("mode");
- if (request.getParameter("bean") != null)
- bean = request.getParameter("bean");
- response.setProperty("time", timeFrame.toString());
- response.setProperty("mode", mode);
-
- try {
-
- /* //DBBBBB_--------
- Connection con = DBManager.getConnection();
-
- PreparedStatement pStmt = con.prepareStatement("CREATE TABLE mrc_servers(server_id INTEGER PRIMARY KEY, server_ip VARCHAR(15), username VARCHAR(128), password VARCHAR(1024) )");
- pStmt.executeUpdate();
- pStmt = con.prepareStatement("INSERT INTO mrc_servers VALUES(0, '127.0.0.1', 'system', 'manager')");
- pStmt.executeUpdate();
- pStmt = con.prepareStatement("INSERT INTO mrc_servers VALUES(1, '127.0.0.2', 'system', 'manager')");
- pStmt.executeUpdate();
- pStmt = con.prepareStatement("SELECT * FROM mrc_servers");
- ResultSet rs = pStmt.executeQuery();
-
- while(rs.next()){
-
- Integer server_id = rs.getInt("server_id");
- String server_ip = rs.getString("server_ip");
- String username = rs.getString("username");
- String password = rs.getString("password");
-
- System.out.println(server_id);
- System.out.println(server_ip);
- System.out.println(username);
- System.out.println(password);
- }
- //DBBBBB_--------*/
- GraphsBuilder run = new GraphsBuilder(0);
- if (mode.equals("mbean")) {
- Vector <StatsGraph> GraphVector = run.BuildOnMbean(14, timeFrame, bean);
- Set <String> trackedBeans = run.GetTrackedBeansPretty();
- request.setAttribute("GraphVector", GraphVector);
- request.setAttribute("trackedBeans", trackedBeans);
- if (WindowState.MINIMIZED.equals(request.getWindowState())) {
- return;
- } else
- mBeanView.include(request, response);
- }
- if (mode.equals("timeframe")) {
- Vector <StatsGraph> GraphVector = run.BuildAllOnTimeFrame(14, timeFrame);
- Set <String> trackedBeans = run.GetTrackedBeansPretty();
- request.setAttribute("GraphVector", GraphVector);
- request.setAttribute("trackedBeans", trackedBeans);
- if (WindowState.MINIMIZED.equals(request.getWindowState())) {
- return;
- } else
- timeFrameView.include(request, response);
- }
- } catch (Exception e) {
- e.printStackTrace();
+ throws PortletException, IOException
+ {
+ String action = request.getParameter("action");
+ if (action == null)
+ action = "showNormal";
+ if (action.equals("showView"))
+ {
+ String view_id = request.getParameter("view_id");
+ request.setAttribute("view_id", view_id);
+ pageView.include(request, response);
+ }
+ else
+ {
+ normalView.include(request, response);
}
-
- //if (WindowState.MINIMIZED.equals(request.getWindowState())) {
- //return;
- //}
-
- //if (WindowState.NORMAL.equals(request.getWindowState())) {
- // normalView.include(request, response);
- //} else {
- // maximizedView.include(request, response);
- //}
}
+ @Override
protected void doHelp(RenderRequest renderRequest,
- RenderResponse renderResponse) throws PortletException, IOException {
+ RenderResponse renderResponse) throws PortletException, IOException
+ {
helpView.include(renderRequest, renderResponse);
}
- public void init(PortletConfig portletConfig) throws PortletException {
+ @Override
+ protected void doEdit(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws PortletException, IOException
+ {
+ editView.include(renderRequest, renderResponse);
+ }
+
+ @Override
+ public void init(PortletConfig portletConfig) throws PortletException
+ {
super.init(portletConfig);
+ normalView = portletConfig.getPortletContext().getRequestDispatcher(
+ NORMALVIEW_JSP);
+ pageView = portletConfig.getPortletContext().getRequestDispatcher(
+ PAGEVIEW_JSP);
mBeanView = portletConfig.getPortletContext().getRequestDispatcher(
- MBEAN_JSP);
+ MBEAN_JSP);
timeFrameView = portletConfig.getPortletContext().getRequestDispatcher(
- TIMEFRAME_JSP);
+ TIMEFRAME_JSP);
maximizedView = portletConfig.getPortletContext().getRequestDispatcher(
- MAXIMIZEDVIEW_JSP);
+ MAXIMIZEDVIEW_JSP);
helpView = portletConfig.getPortletContext().getRequestDispatcher(
- HELPVIEW_JSP);
+ HELPVIEW_JSP);
+ editView = portletConfig.getPortletContext().getRequestDispatcher(
+ EDITVIEW_JSP);
}
- public void destroy() {
+ @Override
+ public void destroy()
+ {
+ normalView = null;
+ pageView = null;
mBeanView = null;
timeFrameView = null;
maximizedView = null;
helpView = null;
+ editView = null;
super.destroy();
}
}