public class RateStatistic
extends java.lang.Object
Statistics on a time sequence rate.
Calculates the rate at which the record()
method is called
over the configured period, retaining also the total count and maximum
rate achieved.
The implementation keeps a Deque of timestamps for all records for the last time period, so this method is not suitable for large rates unless a small time period is used.
Modifier and Type | Field and Description |
---|---|
private long |
_count |
private long |
_max |
private long |
_nanoPeriod |
private java.util.Deque<java.lang.Long> |
_samples |
private java.util.concurrent.TimeUnit |
_units |
Constructor and Description |
---|
RateStatistic(long period,
java.util.concurrent.TimeUnit units) |
Modifier and Type | Method and Description |
---|---|
protected void |
age(long period,
java.util.concurrent.TimeUnit units) |
java.lang.String |
dump() |
java.lang.String |
dump(java.util.concurrent.TimeUnit units) |
long |
getCount() |
long |
getMax() |
long |
getOldest(java.util.concurrent.TimeUnit units) |
long |
getPeriod() |
int |
getRate() |
java.util.concurrent.TimeUnit |
getUnits() |
int |
record()
Records a sample value.
|
void |
reset()
Resets the statistics.
|
java.lang.String |
toString() |
private java.lang.String |
toString(long nanoTime) |
private void |
update() |
private void |
update(long now) |
private final java.util.Deque<java.lang.Long> _samples
private final long _nanoPeriod
private final java.util.concurrent.TimeUnit _units
private long _max
private long _count
public RateStatistic(long period, java.util.concurrent.TimeUnit units)
public long getPeriod()
public java.util.concurrent.TimeUnit getUnits()
public void reset()
private void update()
private void update(long now)
protected void age(long period, java.util.concurrent.TimeUnit units)
public int record()
public int getRate()
public long getMax()
public long getOldest(java.util.concurrent.TimeUnit units)
units
- the units of the returnpublic long getCount()
public java.lang.String dump()
public java.lang.String dump(java.util.concurrent.TimeUnit units)
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.String toString(long nanoTime)