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 Base2ExponentialHistogramIndexerprivate AdaptingCircularBufferCounterprivate final MemoryModeprivate AdaptingCircularBufferCounterprivate intprivate long -
Constructor Summary
ConstructorsConstructorDescriptionDoubleBase2ExponentialHistogramBuckets(int scale, int maxBuckets, MemoryMode memoryMode) -
Method Summary
Modifier and TypeMethodDescription(package private) voidclear(int scale) Resets all counters in this bucket set to zero and resets the scale toscale.(package private) DoubleBase2ExponentialHistogramBucketscopy()Returns a copy of this bucket.(package private) voiddownscale(int by) booleanThe bucket counts is a list of counts representing number of measurements that fall into each bucket.(package private) voidgetBucketCountsIntoReusableList(DynamicPrimitiveLongList reusableLongList) Fills the given reusable list with the bucket counts.intThe offset shifts the bucket boundaries according tolower_bound = base^(offset+i).intgetScale()The scale of the buckets.(package private) intgetScaleReduction(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) intgetScaleReduction(long newStart, long newEnd) longThe total count is the sum of all the values in the buckets.inthashCode()(package private) booleanrecord(double value) private booleanTests 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:ExponentialHistogramBucketsThe offset shifts the bucket boundaries according tolower_bound = base^(offset+i)..- Specified by:
getOffsetin interfaceExponentialHistogramBuckets- Returns:
- the offset.
-
getBucketCounts
Description copied from interface:ExponentialHistogramBucketsThe bucket counts is a list of counts representing number of measurements that fall into each bucket.- Specified by:
getBucketCountsin 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:ExponentialHistogramBucketsThe total count is the sum of all the values in the buckets.- Specified by:
getTotalCountin interfaceExponentialHistogramBuckets- Returns:
- the total count.
-
downscale
void downscale(int by) -
getScale
public int getScale()Description copied from interface:ExponentialHistogramBucketsThe scale of the buckets. Must align withExponentialHistogramPointData.getScale().- Specified by:
getScalein 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
-
toString
-