Class AggregatorHandle<T extends PointData, U extends ExemplarData>
java.lang.Object
io.opentelemetry.sdk.metrics.internal.aggregator.AggregatorHandle<T,U>
- Direct Known Subclasses:
DoubleBase2ExponentialHistogramAggregator.Handle, DoubleExplicitBucketHistogramAggregator.Handle, DoubleLastValueAggregator.Handle, DoubleSumAggregator.Handle, LongLastValueAggregator.Handle, LongSumAggregator.Handle
@ThreadSafe
public abstract class AggregatorHandle<T extends PointData, U extends ExemplarData>
extends Object
Aggregator represents the abstract class that is used for synchronous instruments. It must be
thread-safe and avoid locking when possible, because values are recorded synchronously on the
calling thread.
An AggregatorHandle must be created for every unique Attributes recorded.
This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal TaggregateThenMaybeReset(long startEpochNanos, long epochNanos, Attributes attributes, boolean reset) Returns the current value into asT.protected abstract TdoAggregateThenMaybeReset(long startEpochNanos, long epochNanos, Attributes attributes, List<U> exemplars, boolean reset) Implementation of theaggregateThenMaybeReset(long, long, Attributes, boolean).protected voiddoRecordDouble(double value) Concrete Aggregator instances should implement this method in order support recordings of double values.protected voiddoRecordLong(long value) Concrete Aggregator instances should implement this method in order support recordings of long values.booleanChecks whether this handle has values recorded.final voidrecordDouble(double value) Updates the current aggregator with a newly recordeddoublevalue.final voidrecordDouble(double value, Attributes attributes, Context context) final voidrecordLong(long value) Updates the current aggregator with a newly recordedlongvalue.final voidrecordLong(long value, Attributes attributes, Context context)
-
Field Details
-
exemplarReservoir
-
valuesRecorded
private volatile boolean valuesRecorded
-
-
Constructor Details
-
AggregatorHandle
-
-
Method Details
-
aggregateThenMaybeReset
public final T aggregateThenMaybeReset(long startEpochNanos, long epochNanos, Attributes attributes, boolean reset) -
doAggregateThenMaybeReset
protected abstract T doAggregateThenMaybeReset(long startEpochNanos, long epochNanos, Attributes attributes, List<U> exemplars, boolean reset) Implementation of theaggregateThenMaybeReset(long, long, Attributes, boolean). -
recordLong
-
recordLong
public final void recordLong(long value) Updates the current aggregator with a newly recordedlongvalue.Visible for Testing
- Parameters:
value- the newlongvalue to be added.
-
doRecordLong
protected void doRecordLong(long value) Concrete Aggregator instances should implement this method in order support recordings of long values. -
recordDouble
-
recordDouble
public final void recordDouble(double value) Updates the current aggregator with a newly recordeddoublevalue.Visible for Testing
- Parameters:
value- the newdoublevalue to be added.
-
doRecordDouble
protected void doRecordDouble(double value) Concrete Aggregator instances should implement this method in order support recordings of double values. -
hasRecordedValues
public boolean hasRecordedValues()Checks whether this handle has values recorded.- Returns:
- True if values has been recorded to it
-