pub struct Histogram { /* private fields */ }Expand description
A fixed-bucket histogram for recording distributions.
Each bucket tracks a count of values <= the bucket boundary.
The sum and count fields track totals for mean calculation.
Implementations§
Source§impl Histogram
impl Histogram
Sourcepub fn new(boundaries: &[f64]) -> Self
pub fn new(boundaries: &[f64]) -> Self
Create a histogram with the given bucket boundaries.
Boundaries are sorted ascending. An implicit +Inf bucket is always present.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create a histogram with default bucket boundaries.
Sourcepub fn total_count(&self) -> u64
pub fn total_count(&self) -> u64
Get the total count of recorded values.
Sourcepub fn bucket_snapshot(&self) -> Vec<(f64, u64)>
pub fn bucket_snapshot(&self) -> Vec<(f64, u64)>
Get a snapshot of bucket boundaries and their cumulative counts.
Sourcepub fn percentile(&self, p: f64) -> Option<f64>
pub fn percentile(&self, p: f64) -> Option<f64>
Estimate a percentile value from the histogram buckets.
Uses linear interpolation between bucket boundaries.
Returns None if no values have been recorded.
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