Class ConnectionStatistics

java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.io.ConnectionStatistics
All Implemented Interfaces:
EventListener, Connection.Listener, Dumpable, LifeCycle
Direct Known Subclasses:
IncludeExcludeConnectionStatistics

@ManagedObject("Tracks statistics on connections") public class ConnectionStatistics extends AbstractLifeCycle implements Connection.Listener, Dumpable

A Connection.Listener that tracks connection statistics.

Adding an instance of this class as a bean to a ServerConnector or ConnectionFactory (for the server) or to HttpClient (for the client) will trigger the tracking of the connection statistics for all connections managed by the server or by the client.

The statistics for a connection are gathered when the connection is closed.

ConnectionStatistics instances must be started to collect statistics, either as part of starting the whole component tree, or explicitly if the component tree has already been started.

  • Constructor Details

    • ConnectionStatistics

      public ConnectionStatistics()
  • Method Details

    • reset

      @ManagedOperation(value="Resets the statistics", impact="ACTION") public void reset()
    • doStart

      protected void doStart() throws Exception
      Description copied from class: AbstractLifeCycle
      Method to override to start the lifecycle
      Overrides:
      doStart in class AbstractLifeCycle
      Throws:
      AbstractLifeCycle.StopException - If thrown, the lifecycle will immediately be stopped.
      Exception - If there was a problem starting. Will cause a transition to FAILED state
    • onOpened

      public void onOpened(Connection connection)
      Specified by:
      onOpened in interface Connection.Listener
    • onTotalOpened

      protected void onTotalOpened(Connection connection)
    • onConnectionOpened

      protected void onConnectionOpened(Connection connection)
    • onClosed

      public void onClosed(Connection connection)
      Specified by:
      onClosed in interface Connection.Listener
    • onTotalClosed

      protected void onTotalClosed(Connection connection)
    • onConnectionClosed

      protected void onConnectionClosed(Connection connection)
    • getReceivedBytes

      @ManagedAttribute("Total number of bytes received by tracked connections") public long getReceivedBytes()
    • getReceivedBytesRate

      @ManagedAttribute("Total number of bytes received per second since the last invocation of this method") public long getReceivedBytesRate()
    • getSentBytes

      @ManagedAttribute("Total number of bytes sent by tracked connections") public long getSentBytes()
    • getSentBytesRate

      @ManagedAttribute("Total number of bytes sent per second since the last invocation of this method") public long getSentBytesRate()
    • getConnectionDurationMax

      @ManagedAttribute("The max duration of a connection in ms") public long getConnectionDurationMax()
    • getConnectionDurationMean

      @ManagedAttribute("The mean duration of a connection in ms") public double getConnectionDurationMean()
    • getConnectionDurationStdDev

      @ManagedAttribute("The standard deviation of the duration of a connection") public double getConnectionDurationStdDev()
    • getConnectionsTotal

      @ManagedAttribute("The total number of connections opened") public long getConnectionsTotal()
    • getConnections

      @ManagedAttribute("The current number of open connections") public long getConnections()
    • getConnectionsMax

      @ManagedAttribute("The max number of open connections") public long getConnectionsMax()
    • getReceivedMessages

      @ManagedAttribute("The total number of messages received") public long getReceivedMessages()
    • getReceivedMessagesRate

      @ManagedAttribute("Total number of messages received per second since the last invocation of this method") public long getReceivedMessagesRate()
    • getSentMessages

      @ManagedAttribute("The total number of messages sent") public long getSentMessages()
    • getSentMessagesRate

      @ManagedAttribute("Total number of messages sent per second since the last invocation of this method") public long getSentMessagesRate()
    • getConnectionStatisticsGroups

      public Map<String,ConnectionStatistics.Stats> getConnectionStatisticsGroups()
    • dump

      public void dump(Appendable out, String indent) throws IOException
      Description copied from interface: Dumpable
      Dump this object (and children) into an Appendable using the provided indent after any new lines. The indent should not be applied to the first object dumped.
      Specified by:
      dump in interface Dumpable
      Parameters:
      out - The appendable to dump to
      indent - The indent to apply after any new lines.
      Throws:
      IOException - if unable to write to Appendable
    • toString

      public String toString()
      Overrides:
      toString in class AbstractLifeCycle