public class ExponentiallyDecayingReservoir extends Object implements Reservoir
longs. Uses Cormode et
al's forward-decaying priority reservoir sampling method to produce a
statistically representative sampling reservoir, exponentially biased towards
newer entries.| Constructor and Description |
|---|
ExponentiallyDecayingReservoir()
Creates a new
ExponentiallyDecayingReservoir of 1028 elements,
which offers a 99.9% confidence level with a 5% margin of error assuming
a normal distribution, and an alpha factor of 0.015, which heavily biases
the reservoir to the past 5 minutes of measurements. |
ExponentiallyDecayingReservoir(int size,
double alpha)
Creates a new
ExponentiallyDecayingReservoir. |
ExponentiallyDecayingReservoir(int size,
double alpha,
Clock clock)
Creates a new
ExponentiallyDecayingReservoir. |
| Modifier and Type | Method and Description |
|---|---|
org.eclipse.microprofile.metrics.Snapshot |
getSnapshot()
Returns a snapshot of the reservoir's values.
|
int |
size()
Returns the number of values recorded.
|
void |
update(long value)
Adds a new recorded value to the reservoir.
|
void |
update(long value,
long timestamp)
Adds an old value with a fixed timestamp to the reservoir.
|
public ExponentiallyDecayingReservoir()
ExponentiallyDecayingReservoir of 1028 elements,
which offers a 99.9% confidence level with a 5% margin of error assuming
a normal distribution, and an alpha factor of 0.015, which heavily biases
the reservoir to the past 5 minutes of measurements.public ExponentiallyDecayingReservoir(int size,
double alpha)
ExponentiallyDecayingReservoir.size - the number of samples to keep in the sampling reservoiralpha - the exponential decay factor; the higher this is, the more
biased the reservoir will be towards newer valuespublic ExponentiallyDecayingReservoir(int size,
double alpha,
Clock clock)
ExponentiallyDecayingReservoir.size - the number of samples to keep in the sampling reservoiralpha - the exponential decay factor; the higher this is, the more
biased the reservoir will be towards newer valuesclock - the clock used to timestamp samples and track rescalingpublic int size()
Reservoirpublic void update(long value)
Reservoirpublic void update(long value,
long timestamp)
value - the value to be addedtimestamp - the epoch timestamp of value in secondspublic org.eclipse.microprofile.metrics.Snapshot getSnapshot()
ReservoirgetSnapshot in interface ReservoirCopyright © 2019. All rights reserved.