Class ConnectionStatistics

  • All Implemented Interfaces:
    java.util.EventListener, Connection.Listener, Dumpable, LifeCycle
    Direct Known Subclasses:
    IncludeExcludeConnectionStatistics, ServerConnectionStatistics

    @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 Detail

      • ConnectionStatistics

        public ConnectionStatistics()
    • Method Detail

      • doStart

        protected void doStart()
                        throws java.lang.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.
        java.lang.Exception - If there was a problem starting. Will cause a transition to FAILED state
      • onTotalOpened

        protected void onTotalOpened​(Connection connection)
      • onConnectionOpened

        protected void onConnectionOpened​(Connection connection)
      • 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 java.util.Map<java.lang.String,​ConnectionStatistics.Stats> getConnectionStatisticsGroups()
      • dump

        public void dump​(java.lang.Appendable out,
                         java.lang.String indent)
                  throws java.io.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:
        java.io.IOException - if unable to write to Appendable