Class UniformTimeReservoir
java.lang.Object
org.glassfish.jersey.server.internal.monitoring.core.UniformTimeReservoir
- All Implemented Interfaces:
TimeReservoir<Long>
A random sampling reservoir of a stream of
long
s. Uses Vitter's Algorithm R to produce a statistically representative
sample.- Author:
- Stepan Vavra, Dropwizard Team
- See Also:
-
Constructor Summary
ConstructorDescriptionUniformTimeReservoir
(int size, long startTime, TimeUnit startTimeUnit) Creates a newUniformTimeReservoir
instance.UniformTimeReservoir
(long startTime, TimeUnit startTimeUnit) Creates a newUniformTimeReservoir
instance of 1024 elements, which offers a 99.9% confidence level with a 5% margin of error assuming a normal distribution. -
Method Summary
Modifier and TypeMethodDescriptiongetSnapshot
(long time, TimeUnit timeUnit) Returns a snapshot of the reservoir's values at given time or newer.long
The time interval this reservoir stores data of.int
Returns the number of values recorded at given time or newer.void
Adds a new recorded value to the reservoir bound to a given time.
-
Constructor Details
-
UniformTimeReservoir
Creates a newUniformTimeReservoir
instance of 1024 elements, which offers a 99.9% confidence level with a 5% margin of error assuming a normal distribution.- Parameters:
startTime
- The start timestartTimeUnit
- The start time unit
-
UniformTimeReservoir
Creates a newUniformTimeReservoir
instance.- Parameters:
size
- the number of samples to keep in the sampling reservoirstartTime
- The start timestartTimeUnit
- The start time unit
-
-
Method Details
-
size
Description copied from interface:TimeReservoir
Returns the number of values recorded at given time or newer. It may not be supported to return a size in past due to performance optimizations.- Specified by:
size
in interfaceTimeReservoir<Long>
- Parameters:
time
- The time to get the size fortimeUnit
- Time unit of the provided time- Returns:
- the number of values recorded for given time or newer
-
update
Description copied from interface:TimeReservoir
Adds a new recorded value to the reservoir bound to a given time.- Specified by:
update
in interfaceTimeReservoir<Long>
- Parameters:
value
- a new recorded valuetime
- The time the recorded value occurred attimeUnit
- Time unit of the provided time
-
getSnapshot
Description copied from interface:TimeReservoir
Returns a snapshot of the reservoir's values at given time or newer. It may not be supported to return a snapshot in past due to performance optimizations.- Specified by:
getSnapshot
in interfaceTimeReservoir<Long>
- Parameters:
time
- The time for which to get the snapshottimeUnit
- Time unit of the provided time- Returns:
- a snapshot of the reservoir's values for given time or newer
-
interval
Description copied from interface:TimeReservoir
The time interval this reservoir stores data of.- Specified by:
interval
in interfaceTimeReservoir<Long>
- Parameters:
timeUnit
- The time unit in which to get the interval- Returns:
- The time interval of this time reservoir
-