diff --git a/src/main/java/bdv/server/BigDataServer.java b/src/main/java/bdv/server/BigDataServer.java index 027c46540ced7c204daae32997cc24cd267fc09b..c7d98cfedd613b79baa5fb59a138acf92f3771c9 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 839065c7f0b9881f0620fea65c3890821dddfc7f..cb50f04ea907d4072c26f12ff6eb4243132c9225 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 ) )