Index: admin/src/main/java/org/glassfish/web/admin/monitor/RequestStatsProvider.java
===================================================================
--- admin/src/main/java/org/glassfish/web/admin/monitor/RequestStatsProvider.java	(revision 52787)
+++ admin/src/main/java/org/glassfish/web/admin/monitor/RequestStatsProvider.java	(working copy)
@@ -53,6 +53,7 @@
 import org.glassfish.gmbal.Description;
 import org.glassfish.gmbal.ManagedObject;
 import org.glassfish.gmbal.ManagedAttribute;
+import com.sun.grizzly.tcp.RequestInfo;
 
 /**
  * Provides the monitoring data at the Web container level
@@ -196,7 +197,10 @@
             @ProbeParam("serverPort") int serverPort,
             @ProbeParam("contextPath") String contextPath,
             @ProbeParam("servletPath") String servletPath,
-            @ProbeParam("statusCode") int statusCode) {
+            @ProbeParam("statusCode") int statusCode,
+            @ProbeParam("method") String method,
+            @ProbeParam("uri") String uri,
+            @ProbeParam("reqInfo") RequestInfo reqInfo) {
         if (logger.isLoggable(Level.FINEST)) {
             logger.finest(
                 "[TM]requestEndEvent Unprocessed received - virtual-server = " +
Index: admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProviderBootstrap.java
===================================================================
--- admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProviderBootstrap.java	(revision 52787)
+++ admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProviderBootstrap.java	(working copy)
@@ -100,7 +100,7 @@
                     "http-service",
                     PluginPoint.SERVER,
                     "http-service/" + vs.getId() + "/request",
-                    new HttpServiceStatsProvider(vs.getId(), vs.getNetworkListeners()));
+                    new HttpServiceStatsProvider(vs.getId(), vs.getNetworkListeners(), config.getNetworkConfig()));
         }
     }
 }
Index: admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProvider.java
===================================================================
--- admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProvider.java	(revision 52787)
+++ admin/src/main/java/org/glassfish/web/admin/monitor/HttpServiceStatsProvider.java	(working copy)
@@ -54,7 +54,10 @@
 import org.glassfish.gmbal.AMXMetadata;
 import org.glassfish.gmbal.ManagedAttribute;
 import org.glassfish.gmbal.ManagedObject;
+import com.sun.grizzly.config.dom.NetworkConfig;
+import com.sun.grizzly.config.dom.NetworkListener;
 import org.jvnet.hk2.component.PostConstruct;
+import com.sun.grizzly.tcp.RequestInfo;
 
 /**
  * Provides the monitoring data at the Web container level
@@ -70,14 +73,14 @@
     private static final Logger logger = Logger.getLogger(
         HttpServiceStatsProvider.class.getName());
 
+    private NetworkConfig networkConfig;
+
     private static final String ERROR_COUNT_DESCRIPTION =
             "Cumulative value of the error count, with error count representing the number of cases where the response code was greater than or equal to 400";
     private static final String MAX_TIME_DESCRIPTION =
             "Longest response time for a request; not a cumulative value, but the largest response time from among the response times";
     private static final String PROCESSING_TIME_DESCRIPTION =
             "Average request processing time";
-    private static final String REQUEST_COUNT_DESCRIPTION =
-            "Cumulative number of requests processed so far";
     private static final String COUNT_BYTES_RECEIVED_DESCRIPTION =
             "The number of bytes received";
     private static final String COUNT_BYTES_TRANSMITTED_DESCRIPTION =
@@ -86,14 +89,10 @@
             "The number of open connections";
     private static final String COUNT_REQUESTS_DESCRIPTION =
             "The number of requests received";
-    private static final String MAX_BYTE_TRANSMISSION_RATE_DESCRIPTION =
-            "The maximum rate at which data was transmitted over some server-defined interval";
     private static final String MAX_OPEN_CONNECTIONS_DESCRIPTION =
             "The maximum number of open connections";
     private static final String METHOD_DESCRIPTION =
             "The method of the last request serviced";
-    private static final String RATE_BYTES_TRANSMITTED_DESCRIPTION =
-            "The rate (in bytes per second) at which data was transmitted over some server-defined interval";
     private static final String URI_DESCRIPTION =
             "The URI of the last request serviced";
     private static final String COUNT_200_DESCRIPTION =
@@ -137,14 +136,10 @@
             StatisticImpl.UNIT_COUNT, COUNT_OPEN_CONNECTIONS_DESCRIPTION);
     private CountStatisticImpl countRequests = new CountStatisticImpl("CountRequests",
             StatisticImpl.UNIT_COUNT, COUNT_REQUESTS_DESCRIPTION);
-    private CountStatisticImpl maxByteTransmissionRate = new CountStatisticImpl("MaxByteTransmissionRate",
-            StatisticImpl.UNIT_COUNT, MAX_BYTE_TRANSMISSION_RATE_DESCRIPTION);
     private CountStatisticImpl maxOpenConnections = new CountStatisticImpl("MaxOpenConnections",
             StatisticImpl.UNIT_COUNT, MAX_OPEN_CONNECTIONS_DESCRIPTION);
     private StringStatisticImpl method = new StringStatisticImpl("Method",
             "String", METHOD_DESCRIPTION);
-    private CountStatisticImpl rateBytesTransmitted = new CountStatisticImpl("RateBytesTransmitted",
-            StatisticImpl.UNIT_COUNT, RATE_BYTES_TRANSMITTED_DESCRIPTION);
     private StringStatisticImpl uri = new StringStatisticImpl("Uri",
             "String", URI_DESCRIPTION);
 
@@ -197,9 +192,11 @@
 
     };
 
-    public HttpServiceStatsProvider(String vsName, String listeners) {
+    public HttpServiceStatsProvider(String vsName, String listeners, NetworkConfig networkConfig) {
         this.virtualServerName = vsName;
         this.networkListeners = listeners == null ? new String[0] : listeners.split(",");
+        this.networkConfig = networkConfig;
+
     }
 
     public void postConstruct() {
@@ -243,12 +240,6 @@
         return countRequests;
     }
 
-    @ManagedAttribute(id="maxbytetransmissionrate")
-    @Description(MAX_BYTE_TRANSMISSION_RATE_DESCRIPTION)
-    public CountStatistic getMaxByteTransmissionRate() {
-        return maxByteTransmissionRate;
-    }
-
     @ManagedAttribute(id="maxopenconnections")
     @Description(MAX_OPEN_CONNECTIONS_DESCRIPTION)
     public CountStatistic getMaxOpenConnections() {
@@ -261,12 +252,6 @@
         return method;
     }
 
-    @ManagedAttribute(id="ratebytestransmitted")
-    @Description(RATE_BYTES_TRANSMITTED_DESCRIPTION)
-    public CountStatistic getRateBytesTransmitted() {
-        return rateBytesTransmitted;
-    }
-
     @ManagedAttribute(id="uri")
     @Description(URI_DESCRIPTION)
     public StringStatistic getUri() {
@@ -384,12 +369,19 @@
             @ProbeParam("serverPort") int serverPort,
             @ProbeParam("contextPath") String contextPath,
             @ProbeParam("servletPath") String servletPath,
-            @ProbeParam("statusCode") int statusCode) {
+            @ProbeParam("statusCode") int statusCode,
+            @ProbeParam("method") String method,
+            @ProbeParam("uri") String uri,
+            @ProbeParam("reqInfo") RequestInfo reqInfo) {
         if ((hostName != null) && (hostName.equals(virtualServerName))) {
             TimeStatData tsd = individualData.get();
             tsd.setExitTime(System.currentTimeMillis());
             requestProcessTime.incrementCount(tsd.getTotalTime());
             incrementStatsCounter(statusCode);
+            this.method.setCurrent(method);
+            this.uri.setCurrent(uri);
+            this.countBytesReceived.increment(reqInfo.getRequestBytesReceived());
+            this.countBytesTransmitted.increment(reqInfo.getRequestBytesSent());
             if (logger.isLoggable(Level.FINEST)) {
                 logger.finest(
                     "[TM]requestEndEvent received - virtual-server = " +
@@ -410,8 +402,12 @@
             @ProbeParam("address") String address) {
         for (String listener : networkListeners) {
             if (listener.equals(listenerName)) {
-                individualData.get().setEntryTime(System.currentTimeMillis());
                 countOpenConnections.increment();
+                NetworkListener networkListener = networkConfig.getNetworkListener(listenerName);
+                if (networkListener != null) {
+                    maxOpenConnections.setCount(
+                            Integer.valueOf(networkListener.findProtocol().getHttp().getMaxConnections()));
+                }
             }
         }
         if (logger.isLoggable(Level.FINEST)) {
@@ -519,10 +515,8 @@
         this.countBytesTransmitted.reset();
         this.countOpenConnections.reset();
         this.countRequests.reset();
-        this.maxByteTransmissionRate.reset();
         this.maxOpenConnections.reset();
         this.method.reset();
-        this.rateBytesTransmitted.reset();
         this.uri.reset();
     }
 }
Index: admin/src/main/java/org/glassfish/web/admin/monitor/RequestProbeProvider.java
===================================================================
--- admin/src/main/java/org/glassfish/web/admin/monitor/RequestProbeProvider.java	(revision 52787)
+++ admin/src/main/java/org/glassfish/web/admin/monitor/RequestProbeProvider.java	(working copy)
@@ -41,6 +41,7 @@
 package org.glassfish.web.admin.monitor;
 
 import org.glassfish.external.probe.provider.annotations.*;
+import com.sun.grizzly.tcp.RequestInfo;
 
 /**
  * Provider interface for HTTP request/response related probes.
@@ -65,5 +66,9 @@
         @ProbeParam("serverPort") int serverPort,
         @ProbeParam("contextPath") String contextPath,
         @ProbeParam("servletPath") String servletPath,
-        @ProbeParam("statusCode") int statusCode) {}
+        @ProbeParam("statusCode") int statusCode,
+        @ProbeParam("method") String method,
+        @ProbeParam("uri") String uri,
+        @ProbeParam("reqInfo") RequestInfo reqInfo) {}
+
 }
Index: web-core/src/main/java/org/apache/catalina/connector/CoyoteAdapter.java
===================================================================
--- web-core/src/main/java/org/apache/catalina/connector/CoyoteAdapter.java	(revision 52787)
+++ web-core/src/main/java/org/apache/catalina/connector/CoyoteAdapter.java	(working copy)
@@ -337,7 +337,7 @@
                 try {
                     connector.requestEndEvent(request.getRequest(),
                         request.getHost(), request.getContext(),
-                        response.getStatus());
+                        response.getStatus(), req.getRequestProcessor());
                 } finally {
                     request.unlockSession();
                 }
Index: web-core/src/main/java/org/apache/catalina/connector/Connector.java
===================================================================
--- web-core/src/main/java/org/apache/catalina/connector/Connector.java	(revision 52787)
+++ web-core/src/main/java/org/apache/catalina/connector/Connector.java	(working copy)
@@ -61,6 +61,7 @@
 import com.sun.appserv.ProxyHandler;
 import com.sun.grizzly.tcp.Adapter;
 import com.sun.grizzly.tcp.ProtocolHandler;
+import com.sun.grizzly.tcp.RequestInfo;
 import com.sun.grizzly.util.IntrospectionUtils;
 import com.sun.grizzly.util.http.mapper.Mapper;
 import org.apache.catalina.*;
@@ -1238,7 +1239,7 @@
      * @param statusCode the response status code
      */
     public void requestEndEvent(HttpServletRequest request, Host host,
-            Context context, int statusCode) {
+            Context context, int statusCode, RequestInfo info) {
         // Deliberate noop
     };
 
Index: web-glue/src/main/java/com/sun/enterprise/web/connector/coyote/PECoyoteConnector.java
===================================================================
--- web-glue/src/main/java/com/sun/enterprise/web/connector/coyote/PECoyoteConnector.java	(revision 52787)
+++ web-glue/src/main/java/com/sun/enterprise/web/connector/coyote/PECoyoteConnector.java	(working copy)
@@ -48,6 +48,7 @@
 import com.sun.enterprise.web.connector.extension.GrizzlyConfig;
 import com.sun.enterprise.web.pwc.connector.coyote.PwcCoyoteRequest;
 import com.sun.grizzly.config.dom.*;
+import com.sun.grizzly.tcp.RequestInfo;
 import com.sun.grizzly.util.IntrospectionUtils;
 import com.sun.logging.LogDomains;
 import org.apache.catalina.*;
@@ -1211,7 +1212,7 @@
      */
     @Override
     public void requestEndEvent(HttpServletRequest request, Host host,
-            Context context, int statusCode) {
+            Context context, int statusCode, RequestInfo reqInfo) {
         if (requestProbeProvider != null) {
             String appName = null;
             if (context != null) {
@@ -1225,7 +1226,7 @@
                 appName, hostName,
                 request.getServerName(), request.getServerPort(), 
                 request.getContextPath(), request.getServletPath(),
-                statusCode);
+                statusCode, request.getMethod(), request.getRequestURI(), reqInfo);
         }
     };