Struct AtomicWindowedHistogram

Source
pub struct AtomicWindowedHistogram { /* private fields */ }
Expand description

An atomic windowed histogram.

This histogram provides a windowed view of values that rolls forward over time, dropping old values as they exceed the window of the histogram. Writes into the histogram are lock-free, as well as snapshots of the histogram.

Implementations§

Source§

impl AtomicWindowedHistogram

Source

pub fn new(window: Duration, granularity: Duration, clock: Clock) -> Self

Creates a new AtomicWindowedHistogram.

Internally, a number of buckets will be created, based on how many times granularity goes into window. As time passes, buckets will be cleared to avoid values older than the window duration.

As buckets will hold values represneting a period of time up to granularity, the granularity can be lowered or raised to roll values off more precisely, or less precisely, against the provided clock.

§Panics

Panics if granularity is larger than window.

Source

pub fn snapshot(&self) -> StreamingIntegers

Takes a snapshot of the current histogram.

Returns a StreamingIntegers value, representing all observed values in the histogram. As writes happen concurrently, along with buckets being cleared, a snapshot is not guaranteed to have all values present at the time the method was called.

Source

pub fn record(&self, value: u64)

Records a value to the histogram.

Trait Implementations§

Source§

impl Debug for AtomicWindowedHistogram

Source§

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

Formats the value using the given formatter. Read more

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented 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> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more