Jetty currently has two levels of request statistic collection:
- Subclasses of AbstractConnector class optionally can collect statistics about connections.
- The StatisticsHandler class may be used to collect request statistics.
In addition to that, subclasses of AbstractSessionHandler optionally can collect session statistics.
To view statistics, you have to be able to connect to Jetty using either JConsole or some other JMX agent. The Statistics Handler is not included in default Jetty configuration, and needs to be configured manually. AbstractConnector and AbstractSessionHandler statistics are turned off by default and must either be configured manually for each individual instance or turned on via JMX interface.
Detailed statistics on connection duration and number of requests are only collated when a connection is closed. The current and maximum number of connections is the only "live" statistic. The following example shows how to turn on connector statistics in jetty.xml, although this is not recommended and it is best to use a JMX agent to select statistics only when needed.
<Item> <New class="org.mortbay.jetty.nio.SelectChannelConnector"> <Set name="port">8080</Set> <Set name="maxIdleTime">30000</Set> <Set name="lowResourceMaxIdleTime">3000</Set> <Set name="Acceptors">1</Set> <Set name="StatsOn">true</Set> </New> </Item>
To collect request statistics a StatisticsHandler must be configured as one of the handlers of the server. Typically this can be done as the top level handler, but you may choose to configure a statistics handler for just one context by creating a context configuration file. The following jetty.xml fragment shows how to configure a top level statistics handler:
<!-- =========================================================== --> <!-- Set handler Collection Structure --> <!-- =========================================================== --> <Set name="handler"> <New class="org.mortbay.jetty.handler.StatisticsHandler"> <Set name="handler"> <New id="handlers" class="org.mortbay.jetty.handler.HandlerCollection"> <Set name="handlers"> <Array type="org.mortbay.jetty.Handler"> <Item><New id="contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/></Item> <Item><New id="defaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/></Item> <Item><New id="requestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/></Item> </Array> </Set> </New> </Set> </New> </Set>
Session handling is automatically included in Jetty for any servlet or webapp context. Detailed statistics on session duration are only collated when a session is closed. The current, minimum, and maximum number of sessions is the only "live" statistic. Although it is possible to turn on session statistics in the context configuration file, this is not recommended and it is best to use a JMX agent to select statistics only when needed.
See Jetty JMX tutorial for instructions on how to configure Jetty JMX integration.