Class ExponentiallyDecayingReservoir
- java.lang.Object
-
- fish.payara.microprofile.metrics.impl.ExponentiallyDecayingReservoir
-
- All Implemented Interfaces:
Reservoir
public class ExponentiallyDecayingReservoir extends Object implements Reservoir
An exponentially-decaying random reservoir oflongs. Uses Cormode et al's forward-decaying priority reservoir sampling method to produce a statistically representative sampling reservoir, exponentially biased towards newer entries.
-
-
Constructor Summary
Constructors Constructor Description ExponentiallyDecayingReservoir()Creates a newExponentiallyDecayingReservoirof 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 newExponentiallyDecayingReservoir.ExponentiallyDecayingReservoir(int size, double alpha, Clock clock)Creates a newExponentiallyDecayingReservoir.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.microprofile.metrics.SnapshotgetSnapshot()Returns a snapshot of the reservoir's values.intsize()Returns the number of values recorded.voidupdate(long value)Adds a new recorded value to the reservoir.voidupdate(long value, long timestamp)Adds an old value with a fixed timestamp to the reservoir.
-
-
-
Constructor Detail
-
ExponentiallyDecayingReservoir
public ExponentiallyDecayingReservoir()
Creates a newExponentiallyDecayingReservoirof 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
public ExponentiallyDecayingReservoir(int size, double alpha)Creates a newExponentiallyDecayingReservoir.- Parameters:
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 values
-
ExponentiallyDecayingReservoir
public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock)Creates a newExponentiallyDecayingReservoir.- Parameters:
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 rescaling
-
-
Method Detail
-
size
public int size()
Description copied from interface:ReservoirReturns the number of values recorded.
-
update
public void update(long value)
Description copied from interface:ReservoirAdds a new recorded value to the reservoir.
-
update
public void update(long value, long timestamp)Adds an old value with a fixed timestamp to the reservoir.- Parameters:
value- the value to be addedtimestamp- the epoch timestamp ofvaluein seconds
-
getSnapshot
public org.eclipse.microprofile.metrics.Snapshot getSnapshot()
Description copied from interface:ReservoirReturns a snapshot of the reservoir's values.- Specified by:
getSnapshotin interfaceReservoir- Returns:
- a snapshot of the reservoir's values
-
-