Class AdaptingCircularBufferCounter
java.lang.Object
io.opentelemetry.sdk.metrics.internal.aggregator.AdaptingCircularBufferCounter
A circle-buffer-backed exponential counter.
The first recorded value becomes the 'baseIndex'. Going backwards leads to start/stop index
This expand start/End index as it sees values.
This class is NOT thread-safe. It is expected to be behind a synchronized incrementer.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AdaptingIntegerArrayprivate intprivate intprivate static final intprivate int -
Constructor Summary
ConstructorsConstructorDescriptionAdaptingCircularBufferCounter(int maxSize) Constructs a circular buffer that will hold at mostmaxSizebuckets.(Deep)-Copies the values from another exponential counter. -
Method Summary
Modifier and TypeMethodDescription(package private) voidclear()Resets all bucket counts to zero and resets index start/end tracking.(package private) longget(int index) Get the number of recordings for the given index.(package private) intThe last index with a recording.(package private) intThe first index with a recording.(package private) intReturns the maximum number of buckets allowed in this counter.(package private) booleanincrement(int index, long delta) Persist new data at index, incrementing by delta amount.(package private) booleanisEmpty()Boolean denoting if the backing structure has recordings or not.private inttoBufferIndex(int index) toString()
-
Field Details
-
NULL_INDEX
private static final int NULL_INDEX- See Also:
-
endIndex
private int endIndex -
startIndex
private int startIndex -
baseIndex
private int baseIndex -
backing
-
-
Constructor Details
-
AdaptingCircularBufferCounter
AdaptingCircularBufferCounter(int maxSize) Constructs a circular buffer that will hold at mostmaxSizebuckets. -
AdaptingCircularBufferCounter
AdaptingCircularBufferCounter(AdaptingCircularBufferCounter toCopy) (Deep)-Copies the values from another exponential counter.
-
-
Method Details
-
getIndexStart
int getIndexStart()The first index with a recording. May be negative.Note: the returned value is not meaningful when isEmpty returns true.
- Returns:
- the first index with a recording.
-
getIndexEnd
int getIndexEnd()The last index with a recording. May be negative.Note: the returned value is not meaningful when isEmpty returns true.
- Returns:
- The last index with a recording.
-
increment
boolean increment(int index, long delta) Persist new data at index, incrementing by delta amount.- Parameters:
index- The index of where to perform the incrementation.delta- How much to increment the index by.- Returns:
- success status.
-
get
long get(int index) Get the number of recordings for the given index.- Returns:
- the number of recordings for the index, or 0 if the index is out of bounds.
-
isEmpty
boolean isEmpty()Boolean denoting if the backing structure has recordings or not.- Returns:
- true if no recordings, false if at least one recording.
-
getMaxSize
int getMaxSize()Returns the maximum number of buckets allowed in this counter. -
clear
void clear()Resets all bucket counts to zero and resets index start/end tracking. -
toBufferIndex
private int toBufferIndex(int index) -
toString
-