Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5827 amar.kumar 1
package net.sourceforge.stat4j.calculators;
2
 
3
import net.sourceforge.stat4j.Metric;
4
 
5
import java.util.Properties;
6
 
7
/**
8
 * Error/etc rate in the last N minutes (or whatever period you choose).
9
 * @author Jakub Holy
10
 */
11
public class RunningRate extends CalculatorAdapter {
12
 
13
 
14
	protected long starttimestamp;
15
	protected long 		period;
16
	protected long		occurances;
17
 
18
 
19
	public RunningRate() {
20
		reset();
21
	}
22
 
23
 
24
	public void applyMetric(Metric metric) {
25
 
26
		++occurances;
27
		if (metric.isSingle()) {
28
 
29
            long metricCaptureTime = metric.getTimestamp();
30
 
31
            long metricCalculationTimeMs = metricCaptureTime - starttimestamp;
32
            if (metricCalculationTimeMs > period) {
33
                reset();
34
                ++occurances;
35
            }
36
 
37
			setTimestamp(metricCaptureTime);
38
		}
39
	}
40
 
41
 
42
	public double getResult() {
43
		return occurances;
44
	}
45
 
46
	public void reset() {
47
		occurances = 0;
48
		starttimestamp = System.currentTimeMillis();
49
	}
50
 
51
	public void init(String name,Properties properties) {
52
		// read per
53
		String periodStr = properties.getProperty("period","60000");
54
		this.period = Long.parseLong(periodStr);
55
 
56
		super.init(name);
57
		System.out.println(name);
58
	}
59
}