001    /**
002     *
003     * Copyright 2006 The Apache Software Foundation
004     *
005     *  Licensed under the Apache License, Version 2.0 (the "License");
006     *  you may not use this file except in compliance with the License.
007     *  You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License.
016     */
017    
018    package org.apache.geronimo.management.geronimo.stats;
019    
020    import javax.management.j2ee.statistics.Stats;
021    import javax.management.j2ee.statistics.RangeStatistic;
022    import javax.management.j2ee.statistics.TimeStatistic;
023    import javax.management.j2ee.statistics.CountStatistic;
024    
025    /**
026     * Statistics exposed by a Tomcat web connector (http, https)
027     * 
028     * @version $Rev: 503417 $ $Date: 2007-02-04 09:48:10 -0500 (Sun, 04 Feb 2007) $
029     */
030    public interface WebConnectorStats extends Stats {
031    
032        /**
033         * Gets the Time statistics (count, total, Max, Min) for requests (includes
034         * figures across all requests since statistics gathering started)
035         */
036        TimeStatistic getRequestTime();
037    
038        /**
039         * Gets the number of errors that have been returned since statistics
040         * gathering started.
041         */
042        CountStatistic getErrorCount();
043    
044        /**
045         * Gets the number of requests being processed concurrently (as well as the
046         * min and max since statistics gathering started).
047         */
048        RangeStatistic getActiveRequestCount();
049        
050        /**
051         * Gets the number of connections currently open (as well as the min and max
052         * since statistics gathering started).
053         */
054        RangeStatistic getOpenConnectionCount();
055        
056        /**
057         * Gets the number of threads currently available (as well as min and max 
058         * since statistics gathering started.
059         * current - The number of threads currently in the pool (currentThreadCount)
060         *         - the number of threads currently serving requests (currentThreadBusy)
061         *  HiMark    - The maximum number of unused threads that will be allowed to exist 
062         *              until the thread pool starts stopping the unnecessary threads(maxSpareThread)
063         * UpperBound - The max number of threads created by the connector (maxThreads)
064         * LowerBound - The number of threads created by the connector in the begining (minSpareThread)
065         */        
066        // This could be a container statistics
067        RangeStatistic getSpareThreadCount();
068        
069        /**
070         * Gets the number of requests handled by a particular connection (as well
071         * as the min(?) and max since statistics gathering started).
072         */
073        // RangeStatistic getConnectionRequestCount();
074    
075        /**
076         * Gets the legnth of time that connections have been open (includes figures
077         * across all connections open at present)
078         */
079        // TimeStatistic getConnectionDuration();
080    }