pub struct Histogram { /* private fields */ }Expand description
A histogram that tracks the distribution of observed values across pre-defined buckets.
Each bucket counter and the running sum/count are stored as atomics so that recording an observation never blocks readers.
Implementations§
Source§impl Histogram
impl Histogram
Sourcepub fn new(buckets: Vec<f64>) -> Self
pub fn new(buckets: Vec<f64>) -> Self
Create a new histogram with the given bucket upper bounds.
The buckets are automatically sorted and de-duplicated.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create a histogram with the default bucket boundaries.
Sourcepub fn bucket_counts(&self) -> Vec<(f64, u64)>
pub fn bucket_counts(&self) -> Vec<(f64, u64)>
Return (upper_bound, cumulative_count) for each bucket.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Histogram
impl RefUnwindSafe for Histogram
impl Send for Histogram
impl Sync for Histogram
impl Unpin for Histogram
impl UnsafeUnpin for Histogram
impl UnwindSafe for Histogram
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more