|
||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||
See:
Description
| Interface Summary | |
|---|---|
| DataCollector | An object that collects new values incrementally. |
| DataDistributionMBean | Abstract MBean interface for objects that hold information about a distribution of (double) values. |
| DistributionMBean | Abstract MBean interface for objects that describe the general characteristics of a distribution of (double) values. |
| HistogramMBean | Abstract MBean interface for objects that describe the general characteristics of a distribution of (double) values recorded as a histogram. |
| Class Summary | |
|---|---|
| DataAccumulator | A double-buffer of DataBuffer objects. |
| DataBuffer | A fixed-size data collection buffer that holds a sliding window of the most recent values added. |
| DataDistribution | A DataAccumulator that also publishes statistics about the "previous" buffer. |
| DataPublisher | An object that periodically updates a DataAccumulator,
swapping between the buffers. |
| Distribution | Accumulator of statistics about a distribution of observed values that are produced incrementally. |
| Histogram | This extends Distribution by tracking counts of
values per "bucket" and the ability to find the (approximate) median value. |
This package contains a number of classes that produce statistics
about on-the-fly accumulated data.
Their primary use-case is collecting information about the distribution
of API call response times.
There are a few variations, with differing capabilities and
memory and run-time costs.
These classes all implement the DataCollector
interface for adding new data,
so that code that generates data need not know about the particular data collection implementation.
Distribution class is the lightest
weight DataCollector.
It reports basic information about the collected data,
but gives no view into the shape of the distribution of that data.
The reported information is updated and is available immediately.
Histogram class is slightly more expensive:
It maintains counts of values in pre-defined ranges.
This gives more information, but requires the user to have some idea of the proper ranges.
Like the Distribution, reported information is updated and is available immediately.
DataDistribution implements a
double buffering scheme to
support simultaneous accumulation of new data and analysis of the previous buffered data.
This provides accurate percentile data without prior knowledge of the distribution of data,
but requires more memory than the other collection types.
Also, reports are generated when the buffers are swapped, and so are not immediately available.
The class DataPublisher manages a background
task that periodically swaps the data buffers and publishes the now "previous" data
into a DataDistribution object.
These classes all implement MBean interfaces, and so can be viewed via JMX.
|
||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||