Class DoubleBase2ExponentialHistogramBuckets
java.lang.Object
io.opentelemetry.sdk.metrics.internal.aggregator.DoubleBase2ExponentialHistogramBuckets
- All Implemented Interfaces:
ExponentialHistogramBuckets
final class DoubleBase2ExponentialHistogramBuckets
extends Object
implements ExponentialHistogramBuckets
This class handles the operations for recording, scaling, and exposing data related to the base2
exponential histogram.
This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Base2ExponentialHistogramIndexer
private AdaptingCircularBufferCounter
private final MemoryMode
private AdaptingCircularBufferCounter
private int
private long
-
Constructor Summary
ConstructorsConstructorDescriptionDoubleBase2ExponentialHistogramBuckets
(int scale, int maxBuckets, MemoryMode memoryMode) -
Method Summary
Modifier and TypeMethodDescription(package private) void
clear
(int scale) Resets all counters in this bucket set to zero and resets the scale toscale
.(package private) DoubleBase2ExponentialHistogramBuckets
copy()
Returns a copy of this bucket.(package private) void
downscale
(int by) boolean
The bucket counts is a list of counts representing number of measurements that fall into each bucket.(package private) void
getBucketCountsIntoReusableList
(DynamicPrimitiveLongList reusableLongList) Fills the given reusable list with the bucket counts.int
The offset shifts the bucket boundaries according tolower_bound = base^(offset+i).
int
getScale()
The scale of the buckets.(package private) int
getScaleReduction
(double value) Returns the minimum scale reduction required to record the given value in these buckets, by calculating the new required window to allow the new value to be recorded.(package private) int
getScaleReduction
(long newStart, long newEnd) long
The total count is the sum of all the values in the buckets.int
hashCode()
(package private) boolean
record
(double value) private boolean
Tests if two bucket counts are equivalent semantically.toString()
-
Field Details
-
memoryMode
-
counts
-
scale
private int scale -
base2ExponentialHistogramIndexer
-
totalCount
private long totalCount -
reusableCounts
-
-
Constructor Details
-
DoubleBase2ExponentialHistogramBuckets
DoubleBase2ExponentialHistogramBuckets(int scale, int maxBuckets, MemoryMode memoryMode) -
DoubleBase2ExponentialHistogramBuckets
DoubleBase2ExponentialHistogramBuckets(DoubleBase2ExponentialHistogramBuckets buckets)
-
-
Method Details
-
copy
Returns a copy of this bucket. -
clear
void clear(int scale) Resets all counters in this bucket set to zero and resets the scale toscale
. -
record
boolean record(double value) -
getOffset
public int getOffset()Description copied from interface:ExponentialHistogramBuckets
The offset shifts the bucket boundaries according tolower_bound = base^(offset+i).
.- Specified by:
getOffset
in interfaceExponentialHistogramBuckets
- Returns:
- the offset.
-
getBucketCounts
Description copied from interface:ExponentialHistogramBuckets
The bucket counts is a list of counts representing number of measurements that fall into each bucket.- Specified by:
getBucketCounts
in interfaceExponentialHistogramBuckets
- Returns:
- the bucket counts.
-
getBucketCountsIntoReusableList
Fills the given reusable list with the bucket counts.NOTE: This is the same as
getBucketCounts()
but instead of returning a List with the values is fill the values intoreusableLongList
- Parameters:
reusableLongList
- The list to fill with the bucket counts
-
getTotalCount
public long getTotalCount()Description copied from interface:ExponentialHistogramBuckets
The total count is the sum of all the values in the buckets.- Specified by:
getTotalCount
in interfaceExponentialHistogramBuckets
- Returns:
- the total count.
-
downscale
void downscale(int by) -
getScale
public int getScale()Description copied from interface:ExponentialHistogramBuckets
The scale of the buckets. Must align withExponentialHistogramPointData.getScale()
.- Specified by:
getScale
in interfaceExponentialHistogramBuckets
-
getScaleReduction
int getScaleReduction(double value) Returns the minimum scale reduction required to record the given value in these buckets, by calculating the new required window to allow the new value to be recorded. To be used with downScale().- Parameters:
value
- The proposed value to be recorded.- Returns:
- The required scale reduction in order to fit the value in these buckets.
-
getScaleReduction
int getScaleReduction(long newStart, long newEnd) -
equals
-
sameBucketCounts
Tests if two bucket counts are equivalent semantically.Semantic equivalence means:
- All counts are stored between indexStart/indexEnd.
- Offset does NOT need to be the same
-
hashCode
public int hashCode() -
toString
-