Struct Rate

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

A stable rate estimator that reports the rate of events in the past interval time. It returns the average rate between interval * 2 and interval while collecting the events happening between interval and now.

This estimator ignores events that happen less than once per interval time.

Implementations§

Source§

impl Rate

Source

pub fn new(interval: Duration) -> Rate

Create a new Rate with the given interval.

Source

pub fn new_with_estimator_config( interval: Duration, hashes: usize, slots: usize, ) -> Rate

Create a new Rate with the given interval and Estimator config with the given amount of hashes and columns (slots).

Source

pub fn rate<T>(&self, key: &T) -> f64
where T: Hash,

Return the per second rate estimation.

Source

pub fn observe<T>(&self, key: &T, events: isize) -> isize
where T: Hash,

Report new events and return number of events seen so far in the current interval.

Source

pub fn rate_with<F, T, K>(&self, key: &K, rate_calc_fn: F) -> T
where F: FnMut(RateComponents) -> T, K: Hash,

Get the current rate as calculated with the given closure. This closure will take an argument containing all the accessible information about the rate from this object and allow the caller to make their own estimation of rate based on:

  1. The accumulated samples in the current interval (in progress)
  2. The accumulated samples in the previous interval (completed)
  3. The size of the interval
  4. Elapsed fraction of current interval for this sample (0..1)

Auto Trait Implementations§

§

impl !Freeze for Rate

§

impl RefUnwindSafe for Rate

§

impl Send for Rate

§

impl Sync for Rate

§

impl Unpin for Rate

§

impl UnwindSafe for Rate

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, 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,