You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jb...@apache.org on 2007/10/17 22:59:40 UTC
svn commit: r585698 - in /geronimo/server/trunk:
modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/
modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/
modules/geronimo-management/src/main/java/org/apache/geronimo/managemen...
Author: jbohn
Date: Wed Oct 17 13:59:34 2007
New Revision: 585698
URL: http://svn.apache.org/viewvc?rev=585698&view=rev
Log:
GERONIMO-3490 make JettyContainer and WebManagerPortlet utilize the LazyStatisticsProvider interface introduced in rev. 585308. Also updated to use setStartTime() and setLastSampleTime() from StatsImpl.
Modified:
geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainer.java
geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java
geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebContainerStatsImpl.java
geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java
geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/stats/WebContainerStats.java
geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/webmanager/WebManagerPortlet.java
geronimo/server/trunk/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/webmanager/normal.jsp
Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainer.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainer.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainer.java Wed Oct 17 13:59:34 2007
@@ -42,9 +42,9 @@
void resetStats();
- void setCollectStatistics(boolean on);
+ void setStatsOn(boolean on);
- boolean getCollectStatistics();
+ public boolean isStatsOn();
long getCollectStatisticsStarted();
Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyContainerImpl.java Wed Oct 17 13:59:34 2007
@@ -26,7 +26,7 @@
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.management.StatisticsProvider;
+import org.apache.geronimo.management.LazyStatisticsProvider;
import org.apache.geronimo.management.geronimo.NetworkConnector;
import org.apache.geronimo.management.geronimo.WebManager;
import org.apache.geronimo.system.serverinfo.ServerInfo;
@@ -47,7 +47,7 @@
/**
* @version $Rev$ $Date$
*/
-public class JettyContainerImpl implements JettyContainer, SoapHandler, GBeanLifecycle, StatisticsProvider {
+public class JettyContainerImpl implements JettyContainer, SoapHandler, GBeanLifecycle, LazyStatisticsProvider {
/**
* The default value of JETTY_HOME variable
*/
@@ -69,6 +69,7 @@
private DefaultHandler defaultHandler = new DefaultHandler();
private RequestLogHandler requestLogHandler = new RequestLogHandler();
private boolean statsHandlerInPlace = false;
+ private boolean statsOn=false;
public JettyContainerImpl(String objectName, WebManager manager, String jettyHome, ServerInfo serverInfo) {
this.objectName = objectName;
@@ -125,21 +126,18 @@
public void resetStats() {
statsHandler.statsReset();
- // Set the start time for each statistic
- long startTime = System.currentTimeMillis();
- stats.getTotalRequestCountImpl().setStartTime(startTime);
- stats.getActiveRequestCountImpl().setStartTime(startTime);
- stats.getRequestDurationAvgImpl().setStartTime(startTime);
- stats.getRequestDurationImpl().setStartTime(startTime);
- stats.getResponses1xxImpl().setStartTime(startTime);
- stats.getResponses2xxImpl().setStartTime(startTime);
- stats.getResponses3xxImpl().setStartTime(startTime);
- stats.getResponses4xxImpl().setStartTime(startTime);
- stats.getResponses5xxImpl().setStartTime(startTime);
- stats.getStatsOnMsImpl().setStartTime(startTime);
+ stats.setStartTime();
}
- public void setCollectStatistics(boolean on) {
+ public long getCollectStatisticsStarted() {
+ return statsHandler.getStatsOnMs();
+ }
+
+ public boolean isStatsOn() {
+ return statsOn;
+ }
+
+ public void setStatsOn(boolean on) {
try {
if (on) {
// set the statistics handler if not already done so
@@ -147,7 +145,7 @@
handlerCollection.addHandler(statsHandler);
statsHandlerInPlace = true;
}
- // clear previous data and set start times
+ // clear previous data and set start time
resetStats();
// start the handler
statsHandler.start();
@@ -159,64 +157,41 @@
statsHandlerInPlace=false;
}
}
- stats.setStatsOn(on);
+ statsOn = on;
} catch(Exception e) {
e.printStackTrace();
}
}
- public boolean getCollectStatistics() {
- return statsHandler.isRunning();
- }
-
- public long getCollectStatisticsStarted() {
- return statsHandler.getStatsOnMs();
- }
-
public Stats getStats() {
- if (getCollectStatistics()) {
- long currentTime = System.currentTimeMillis();
+ if (isStatsOn()) {
+ stats.setLastSampleTime();
/* set active request count */
stats.getTotalRequestCountImpl().setCount((long)statsHandler.getRequests());
- stats.getTotalRequestCountImpl().setLastSampleTime(currentTime);
-
/* set active request range values */
stats.getActiveRequestCountImpl().setCurrent((long)statsHandler.getRequestsActive());
stats.getActiveRequestCountImpl().setLowWaterMark((long)statsHandler.getRequestsActiveMin());
stats.getActiveRequestCountImpl().setHighWaterMark((long)statsHandler.getRequestsActiveMax());
- stats.getActiveRequestCountImpl().setLastSampleTime(currentTime);
/* set request duration average time */
stats.getRequestDurationAvgImpl().setCount((long)statsHandler.getRequestsDurationAve()); // Normally this would be calculated
- stats.getRequestDurationAvgImpl().setLastSampleTime(currentTime);
/* set request duration time values */
// stats.getRequestDurationImpl().setCount((long)statsHandler.getRequestsDurationCount()); Not yet supported by Jetty
stats.getRequestDurationImpl().setMaxTime((long)statsHandler.getRequestsDurationMax());
stats.getRequestDurationImpl().setMinTime((long)statsHandler.getRequestsDurationMin());
stats.getRequestDurationImpl().setTotalTime((long)statsHandler.getRequestsDurationTotal());
- stats.getRequestDurationImpl().setLastSampleTime(currentTime);
/* set request count values*/
stats.getResponses1xxImpl().setCount((long)statsHandler.getResponses1xx());
- stats.getResponses1xxImpl().setLastSampleTime(currentTime);
-
stats.getResponses2xxImpl().setCount((long)statsHandler.getResponses2xx());
- stats.getResponses2xxImpl().setLastSampleTime(currentTime);
-
stats.getResponses3xxImpl().setCount((long)statsHandler.getResponses3xx());
- stats.getResponses3xxImpl().setLastSampleTime(currentTime);
-
stats.getResponses4xxImpl().setCount((long)statsHandler.getResponses4xx());
- stats.getResponses4xxImpl().setLastSampleTime(currentTime);
-
stats.getResponses5xxImpl().setCount((long)statsHandler.getResponses5xx());
- stats.getResponses5xxImpl().setLastSampleTime(currentTime);
/* set elapsed time for stats collection */
stats.getStatsOnMsImpl().setCount((long)statsHandler.getStatsOnMs());
- stats.getStatsOnMsImpl().setLastSampleTime(currentTime);
}
return stats;
}
@@ -322,7 +297,7 @@
static {
GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic("Jetty Web Container", JettyContainerImpl.class);
- infoBuilder.addAttribute("collectStatistics", Boolean.TYPE, true);
+ infoBuilder.addAttribute("statsOn", Boolean.TYPE, true);
infoBuilder.addAttribute("collectStatisticsStarted", Long.TYPE, false);
infoBuilder.addOperation("resetStats");
@@ -334,7 +309,7 @@
infoBuilder.addInterface(SoapHandler.class);
infoBuilder.addInterface(JettyContainer.class);
- infoBuilder.addInterface(StatisticsProvider.class);
+ infoBuilder.addInterface(LazyStatisticsProvider.class);
infoBuilder.setConstructor(new String[]{"objectName", "WebManager", "jettyHome", "ServerInfo"});
GBEAN_INFO = infoBuilder.getBeanInfo();
Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebContainerStatsImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebContainerStatsImpl.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebContainerStatsImpl.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebContainerStatsImpl.java Wed Oct 17 13:59:34 2007
@@ -43,8 +43,6 @@
private CountStatisticImpl response5xx;
private CountStatisticImpl statsOnMs; // time elapsed since the stats collection
- private boolean statsOn=false;
-
public JettyWebContainerStatsImpl() {
totalRequestCount = new CountStatisticImpl("Request Count", StatisticImpl.UNIT_COUNT,
"The number of requests that were handled since statistics gathering started");
@@ -77,14 +75,6 @@
addStat("Response4xx", response4xx);
addStat("Response5xx", response5xx);
addStat("StatsDuration", statsOnMs);
- }
-
- public boolean isStatsOn() {
- return statsOn;
- }
-
- public void setStatsOn(boolean on) {
- statsOn = on;
}
/**
Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java Wed Oct 17 13:59:34 2007
@@ -45,7 +45,6 @@
assertTrue("Stats should be off initially", !connector.isStatsOn());
connector.setStatsOn(true);
}
- container.setCollectStatistics(true);
int n = 4; // no of connections
for (int k = 0; k < n; k++) {
HttpURLConnection connection = (HttpURLConnection) new URL(connector.getConnectUrl() + "/test/hello.txt")
Modified: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/stats/WebContainerStats.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/stats/WebContainerStats.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/stats/WebContainerStats.java (original)
+++ geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/stats/WebContainerStats.java Wed Oct 17 13:59:34 2007
@@ -84,9 +84,4 @@
*/
CountStatistic getStatsOnMs();
- /**
- * Gets the current state of statistics collection (on or off)
- */
- boolean isStatsOn();
-
}
Modified: geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/webmanager/WebManagerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/webmanager/WebManagerPortlet.java?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/webmanager/WebManagerPortlet.java (original)
+++ geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/webmanager/WebManagerPortlet.java Wed Oct 17 13:59:34 2007
@@ -24,6 +24,7 @@
import org.apache.geronimo.management.geronimo.WebManager;
import org.apache.geronimo.management.geronimo.stats.WebContainerStats;
import org.apache.geronimo.management.StatisticsProvider;
+import org.apache.geronimo.management.LazyStatisticsProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -64,7 +65,7 @@
if (actionRequest.getParameter("stats") != null) {
Boolean stats = actionRequest.getParameter("stats").equals("true") ? Boolean.TRUE : Boolean.FALSE;
if(server.equals(WEB_SERVER_JETTY)) {
- setProperty(container, "collectStatistics", stats);
+ setProperty(container, "statsOn", stats);
}
else if (server.equals(WEB_SERVER_TOMCAT)) {
//todo: Any Tomcat specific processing?
@@ -110,9 +111,28 @@
if (containers != null) {
WebContainer container = containers[0]; //todo: handle multiple
if(container.isStatisticsProvider()) {
- WebContainerStats webStats = (WebContainerStats) ((StatisticsProvider)container).getStats();
- if (webStats.isStatsOn()) {
- renderRequest.setAttribute("statsOn", Boolean.TRUE);
+ boolean populateStats = false;
+ renderRequest.setAttribute("statsSupported", Boolean.TRUE); // indicate that statistics are supported for this container
+
+ if (container instanceof LazyStatisticsProvider) {
+ renderRequest.setAttribute("statsLazy", Boolean.TRUE); // indicate that enable/disable should be shown for this container
+
+ if (((LazyStatisticsProvider)container).isStatsOn()) {
+ renderRequest.setAttribute("statsOn", Boolean.TRUE); // indicate that stats are to be displayed
+ populateStats = true; // this is a Lazy provider and stats are enabled so populate the stats
+ } else {
+ renderRequest.setAttribute("statsOn", Boolean.FALSE); // indicate that stats are currently disabled
+ renderRequest.setAttribute("statsMessage", "Statistics are not currently being collected.");
+ }
+ } else {
+ renderRequest.setAttribute("statsLazy", Boolean.FALSE); // indicate that enable/disable should not be shown for this container
+ renderRequest.setAttribute("statsOn", Boolean.TRUE); // indicate that stats are to be displayed
+ populateStats=true; // this is not a lazy provider so just populate the stats
+ }
+
+ if (populateStats) {
+ // get the detailed stats
+ WebContainerStats webStats = (WebContainerStats) ((StatisticsProvider)container).getStats();
renderRequest.setAttribute("totalRequestCount", new Long(webStats.getTotalRequestCount().getCount()));
renderRequest.setAttribute("activeRequestCountCurrent", new Long(webStats.getActiveRequestCount().getCurrent()));
renderRequest.setAttribute("activeRequestCountLow", new Long(webStats.getActiveRequestCount().getLowWaterMark()));
@@ -127,12 +147,9 @@
renderRequest.setAttribute("response4xx", new Long(webStats.getResponses4xx().getCount()));
renderRequest.setAttribute("response5xx", new Long(webStats.getResponses5xx().getCount()));
renderRequest.setAttribute("elapsedTime", TimeUtils.formatDuration(webStats.getStatsOnMs().getCount()));
- } else {
- renderRequest.setAttribute("statsSupported", Boolean.TRUE);
- renderRequest.setAttribute("statsMessage", "Statistics are not currently being collected.");
}
} else {
- renderRequest.setAttribute("statsSupported", Boolean.FALSE);
+ renderRequest.setAttribute("statsSupported", Boolean.FALSE); // indicate that statistics are not supported for this container
renderRequest.setAttribute("statsMessage", "Web statistics are not supported for the current web container.");
}
} else {
Modified: geronimo/server/trunk/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/webmanager/normal.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/webmanager/normal.jsp?rev=585698&r1=585697&r2=585698&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/webmanager/normal.jsp (original)
+++ geronimo/server/trunk/plugins/console/console-base-portlets/src/main/webapp/WEB-INF/view/webmanager/normal.jsp Wed Oct 17 13:59:34 2007
@@ -84,7 +84,9 @@
<tr><td colspan="5" align="left"> </td></tr>
<tr>
<td colspan="5" align="left">
- <a href="<portlet:actionURL><portlet:param name="stats" value="false"/></portlet:actionURL>">disable</a>
+ <c:if test="${statsLazy}">
+ <a href="<portlet:actionURL><portlet:param name="stats" value="false"/></portlet:actionURL>">disable</a>
+ </c:if>
<a href="<portlet:renderURL/>">refresh</a>
<a href="<portlet:actionURL><portlet:param name="resetStats" value="true"/></portlet:actionURL>">reset</a>
</td>
@@ -93,7 +95,7 @@
</c:if>
<c:if test="${!statsOn}">
${statsMessage}<br/><br/>
- <c:if test="${statsSupported}">
+ <c:if test="${statsLazy}">
<a href="<portlet:actionURL><portlet:param name="stats" value="true"/></portlet:actionURL>">enable</a>
</c:if>
</c:if>