From 245f084d6800a712b80fa793909634523bce893c Mon Sep 17 00:00:00 2001
From: HongKee Moon <hkmoon@me.com>
Date: Tue, 13 Jan 2015 12:06:01 +0100
Subject: [PATCH] Add ConnectorStatistics for collect the connector's
 statistics

---
 src/main/java/bdv/server/BigDataServer.java  |  7 ++++++-
 src/main/java/bdv/server/ManagerHandler.java | 13 +++++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/main/java/bdv/server/BigDataServer.java b/src/main/java/bdv/server/BigDataServer.java
index 027c465..c7d98cf 100644
--- a/src/main/java/bdv/server/BigDataServer.java
+++ b/src/main/java/bdv/server/BigDataServer.java
@@ -4,6 +4,7 @@ import java.util.HashMap;
 
 import mpicbg.spim.data.SpimDataException;
 import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.ConnectorStatistics;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
@@ -39,6 +40,10 @@ public class BigDataServer
 		LOG.info( "Set connectors: " + connector );
 		server.setConnectors( new Connector[] { connector } );
 
+		// Add Statistics bean to the connector
+		final ConnectorStatistics connectorStats = new ConnectorStatistics();
+		connector.addBean( connectorStats );
+
 		final String baseURL = "http://" + server.getURI().getHost() + ":" + port;
 		LOG.info( "Server Base URL: " + baseURL );
 
@@ -49,7 +54,7 @@ public class BigDataServer
 
 		final ContextHandlerCollection datasetHandlers = createHandlers( baseURL, dataSet );
 		handlers.addHandler( datasetHandlers );
-		handlers.addHandler( new ManagerHandler( baseURL, server, statHandler, datasetHandlers ) );
+		handlers.addHandler( new ManagerHandler( baseURL, server, connectorStats, statHandler, datasetHandlers ) );
 		handlers.addHandler( new RequestLogHandler() );
 
 		statHandler.setHandler( handlers );
diff --git a/src/main/java/bdv/server/ManagerHandler.java b/src/main/java/bdv/server/ManagerHandler.java
index 839065c..cb50f04 100644
--- a/src/main/java/bdv/server/ManagerHandler.java
+++ b/src/main/java/bdv/server/ManagerHandler.java
@@ -8,7 +8,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import mpicbg.spim.data.SpimDataException;
-
+import org.eclipse.jetty.server.ConnectorStatistics;
 import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Server;
@@ -35,13 +35,16 @@ public class ManagerHandler extends ContextHandler
 	private final ContextHandlerCollection handlers;
 	
 	private final StatisticsHandler statHandler;
+	
+	private final ConnectorStatistics connectorStats;
 
-	public ManagerHandler( String baseURL, Server server, StatisticsHandler statHandler, ContextHandlerCollection handlers )
+	public ManagerHandler( String baseURL, Server server, ConnectorStatistics connectorStats, StatisticsHandler statHandler, ContextHandlerCollection handlers )
 	{
 		this.baseURL = baseURL;
 		this.server = server;
 		this.handlers = handlers;
 		this.statHandler = statHandler;
+		this.connectorStats = connectorStats;
 		setContextPath( "/manager" );
 	}
 
@@ -95,6 +98,12 @@ public class ManagerHandler extends ContextHandler
 		ow.write( "<br/>\n" );
 		ow.write( "Bytes sent total: " + getByteSizeString( statHandler.getResponsesBytesTotal() ) + "<br/>\n" );
 
+		// Refer: http://download.eclipse.org/jetty/9.2.6.v20141205/apidocs/org/eclipse/jetty/server/ConnectorStatistics.html
+		ow.write( String.format( "%,d Message/sec<br/>%n", connectorStats.getMessagesOutPerSecond() ) );
+
+		ow.write( String.format( "Open connections = %,d<br/>%n", connectorStats.getConnectionsOpen() ) );
+		ow.write( String.format( "Max open connections = %,d<br/>%n", connectorStats.getConnectionsOpenMax() ) );
+
 		ow.write( "<H1> Datasets: </H1>\n" );
 
 		for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) )
-- 
GitLab