Struct opentelemetry::sdk::metrics::aggregators::DdSketchAggregator[][src]

pub struct DdSketchAggregator { /* fields omitted */ }
This is supported on crate feature metrics only.

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

impl DdSketchAggregator[src]

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

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

impl Aggregator for DdSketchAggregator[src]

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

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

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

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

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

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

fn as_any(&self) -> &dyn Any[src]

Returns the implementing aggregator as Any for downcasting.

impl Count for DdSketchAggregator[src]

fn count(&self) -> Result<u64>[src]

The count of the currently aggregated metrics

impl Debug for DdSketchAggregator[src]

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

Formats the value using the given formatter. Read more

impl Default for DdSketchAggregator[src]

fn default() -> Self[src]

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

impl Max for DdSketchAggregator[src]

fn max(&self) -> Result<Number>[src]

The max of the currently aggregated metrics

impl Min for DdSketchAggregator[src]

fn min(&self) -> Result<Number>[src]

The min of the currently aggregated metrics

impl Sum for DdSketchAggregator[src]

fn sum(&self) -> Result<Number>[src]

The sum of the currently aggregated metrics

impl MinMaxSumCount for DdSketchAggregator[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

pub fn vzip(self) -> V