View Javadoc
1 /* Reattore HTTP Server 2 3 Copyright (C) 2002 Michael Hope <michaelh@juju.net.nz> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 19 $Id: RateStat.java,v 1.5 2003/03/03 05:14:39 michaelh Exp $ 20 */ 21 package juju.reattore.util; 22 23 24 /*** Statistic module that manages a rate of events. 25 */ 26 public class RateStat extends BaseStat { 27 private long count; 28 private long total; 29 private long lastUpdate; 30 31 /*** @see BaseStat */ 32 public RateStat(Class clazz, String leaf) { 33 super(clazz, leaf); 34 } 35 36 /*** Get the total number of samples added. 37 38 @return The number of samples. 39 */ 40 public long getCount() { 41 return count; 42 } 43 44 /*** Get the number of hits per second since this method was last 45 called. 46 47 @return Hits per second. 48 */ 49 public double getRunningRate() { 50 long now = System.currentTimeMillis(); 51 52 try { 53 return ((double) total * 1000) / (now - lastUpdate); 54 } 55 finally { 56 total = 0; 57 lastUpdate = now; 58 } 59 } 60 61 /*** Cause a single hit on this stat. 62 */ 63 public void inc() { 64 count++; 65 total++; 66 } 67 68 /*** Adds a number of hits to this stat. 69 70 @param count The number of hits to add. 71 */ 72 public void add(int count) { 73 total += count; 74 this.count++; 75 } 76 77 /*** @see BaseStat */ 78 protected String getDefaultFormat() { 79 return "{0} Count: {1} Running Rate: {2}/s"; 80 } 81 82 /*** @see BaseStat */ 83 protected Object[] getFormatArgs() { 84 return new Object[] { getName(), new Long(getCount()), new Double(getRunningRate()) }; 85 } 86 }

This page was automatically generated by Maven