DdSketchAggregator

Struct DdSketchAggregator 

Source
pub struct DdSketchAggregator { /* private fields */ }
Available on crate feature metrics only.
Expand description

DDSKetch quantile sketch algorithm

It can give q-quantiles with α-accurate for any 0<=q<=1.

Here the accurate is calculated based on relative-error rate. Thus, the error guarantee adapts the scale of the output data. With relative error guarantee, the histogram can be more accurate in the area of low data density. For example, the long tail of response time data.

For example, if the actual percentile is 1 second, and relative-error guarantee is 2%, then the value should within the range of 0.98 to 1.02 second. But if the actual percentile is 1 millisecond, with the same relative-error guarantee, the value returned should within the range of 0.98 to 1.02 millisecond.

In order to support both negative and positive inputs, DDSketchAggregator has two DDSketch store within itself to store the negative and positive inputs.

Implementations§

Source§

impl DdSketchAggregator

Source

pub fn new(config: &DdSketchConfig, kind: NumberKind) -> DdSketchAggregator

Create a new DDSKetchAggregator that would yield a quantile with relative error rate less than alpha

The input should have a granularity larger than key_epsilon

Trait Implementations§

Source§

impl Aggregator for DdSketchAggregator

Source§

fn update(&self, number: &Number, descriptor: &Descriptor) -> Result<()>

Update receives a new measured value and incorporates it into the aggregation. Update calls may be called concurrently. Read more
Source§

fn synchronized_move( &self, destination: &Arc<dyn Aggregator + Send + Sync>, descriptor: &Descriptor, ) -> Result<()>

This method is called during collection to finish one period of aggregation by atomically saving the currently-updating state into the argument Aggregator. Read more
Source§

fn merge( &self, other: &(dyn Aggregator + Send + Sync), _descriptor: &Descriptor, ) -> Result<()>

This combines the checkpointed state from the argument Aggregator into this Aggregator. merge is not synchronized with respect to update or synchronized_move. Read more
Source§

fn as_any(&self) -> &dyn Any

Returns the implementing aggregator as Any for downcasting.
Source§

impl Count for DdSketchAggregator

Source§

fn count(&self) -> Result<u64>

The count of the currently aggregated metrics
Source§

impl Debug for DdSketchAggregator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DdSketchAggregator

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Max for DdSketchAggregator

Source§

fn max(&self) -> Result<Number>

The max of the currently aggregated metrics
Source§

impl Min for DdSketchAggregator

Source§

fn min(&self) -> Result<Number>

The min of the currently aggregated metrics
Source§

impl Sum for DdSketchAggregator

Source§

fn sum(&self) -> Result<Number>

The sum of the currently aggregated metrics
Source§

impl MinMaxSumCount for DdSketchAggregator

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Available on crate feature trace only.
Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Available on crate feature trace only.
Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V