diff --git a/jetty-documentation/src/main/asciidoc/operations-guide/old_docs/extras/statistics-handler.adoc b/jetty-documentation/src/main/asciidoc/operations-guide/old_docs/extras/statistics-handler.adoc index b605a0656ef..e655667e6fb 100644 --- a/jetty-documentation/src/main/asciidoc/operations-guide/old_docs/extras/statistics-handler.adoc +++ b/jetty-documentation/src/main/asciidoc/operations-guide/old_docs/extras/statistics-handler.adoc @@ -29,60 +29,25 @@ [[statistics-handler-usage]] ==== Usage -Jetty currently has two levels of request statistic collection: +Jetty currently has two main statistics collection mechanisms: -* Subclasses of `AbstractConnector` class optionally can collect statistics about connections as well as number of requests. -* The `StatisticsHandler` class may be used to collect request statistics. +* Instances of `ConnectionStatistics` can collect statistics for each connection of a connector. +* The `StatisticsHandler` class may be used to collect statistics for HTTP requests. -In addition to these, subclasses of the `SessionHandler` and `DefaultSessionCache` classes optionally can collect session statistics. +The `StatisticsHandler` and `ConnectionStatistics` are not included in the default Jetty configuration, these need to be configured manually or enabled using the Jetty `stats` module on the command line. +[source, screen, subs="{sub-order}"] +.... +$ java -jar {$jetty.home}/start.jar --add-to-start=stats +.... -`AbstractConnector`, `SessionHandler` and `DefaultSessionCache` statistics are turned off by default and must either be configured manually for each instance or turned on via JMX interface. -The `StatisticsHandler` is not included in default Jetty configuration, and needs to be configured manually. +In addition to these, the `SessionHandler` and `DefaultSessionCache` classes collect statistics for sessions. +These statistics are enabled by default and are accessible via JMX interface. _____ [NOTE] To view statistics, you have to be able to connect to Jetty using either JConsole or some other JMX agent. See xref:using-jmx[] for more information. _____ -[[connector-statistics]] -==== Connector statistics - -Detailed statistics on connection duration and number of requests are only collated when a connection is closed. -The current and maximum number of connections are the only "live" statistics. -//To learn how to turn on connector statistics please see the Jetty Statistics tutorial, although this is not recommended and it is best to use a JMX agent to select statistics only when needed. - -The following example shows how to turn on connector statistics in Jetty xml. -This example comes from within `jetty-http.xml`. - -[source, xml, subs="{sub-order}"] ----- - - - - - - - - - - - - - - - - 30000 - - - - - - - - - ----- - [[request-statistics]] ==== Request Statistics @@ -90,22 +55,53 @@ To collect request statistics a `StatisticsHandler` must be configured as one of 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. You can enable the `StatisticsHandler` by activating the `stats` modules on the command line. -[source, screen, subs="{sub-order}"] -.... -$ java -jar {$jetty.home}/start.jar --add-to-start=stats -.... - Alternately, if you are making multiple changes to the Jetty configuration, you could include statistics handler configuration into your own Jetty xml configuration. The following fragment shows how to configure a top level statistics handler: [source, xml, subs="{sub-order}"] ---- - - - - - - + + + + + + + +---- + +[[connection-statistics]] +==== Connection Statistics + +Detailed statistics on connection duration and number of messages are only collated when a connection is closed. +The current and maximum number of connections are the only "live" statistics. + +The following example shows how to turn on connection statistics in the Jetty XML format. + +[source, xml, subs="{sub-order}"] +---- + + + + + + + +---- + +A special variant of `ConnectionStatistics` called `IncludeExcludeConnectionStatistics` allows you to refine which types of connection you want to collect statistics for. + +The following example shows how this can be used to record statistics only for WebSocket connections. +[source, xml, subs="{sub-order}"] +---- + + + + + + + + + ---- [[session-statistics]] diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java index 33204480d8c..0e3eb5ddc04 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java @@ -92,10 +92,7 @@ public class DefaultSessionCache extends AbstractSessionCache { if (id == null) return null; - - Session session = _sessions.get(id); - - return session; + return _sessions.get(id); } @Override @@ -177,21 +174,18 @@ public class DefaultSessionCache extends AbstractSessionCache @Override public Session newSession(HttpServletRequest request, SessionData data) { - Session s = new Session(getSessionHandler(), request, data); - return s; + return new Session(getSessionHandler(), request, data); } @Override public Session newSession(SessionData data) { - Session s = new Session(getSessionHandler(), data); - return s; + return new Session(getSessionHandler(), data); } @Override public boolean doReplace(String id, Session oldValue, Session newValue) { - boolean result = _sessions.replace(id, oldValue, newValue); - return result; + return _sessions.replace(id, oldValue, newValue); } }