Skip to main content

LatencyHistogram

Struct LatencyHistogram 

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

Collects latency samples and computes percentile statistics.

Samples are stored unsorted for fast insertion. Sorting happens lazily when percentiles or reports are requested.

Implementations§

Source§

impl LatencyHistogram

Source

pub fn new() -> Self

Create a new empty histogram.

Source

pub fn with_capacity(capacity: usize) -> Self

Create a histogram pre-allocated for the given capacity.

Source

pub fn record(&mut self, duration: Duration)

Record a latency sample.

Source

pub fn measure<F, R>(&mut self, f: F) -> R
where F: FnOnce() -> R,

Record latency by measuring the duration of a closure.

Source

pub fn count(&self) -> usize

Number of recorded samples.

Source

pub fn is_empty(&self) -> bool

Returns true if no samples have been recorded.

Source

pub fn percentile(&mut self, p: f64) -> Option<Duration>

Compute the value at the given percentile (0.0 to 100.0).

Returns None if no samples have been recorded. Uses nearest-rank method for percentile computation.

Source

pub fn min(&mut self) -> Option<Duration>

Minimum recorded latency.

Source

pub fn max(&mut self) -> Option<Duration>

Maximum recorded latency.

Source

pub fn mean(&self) -> Option<Duration>

Mean (average) latency.

Source

pub fn std_dev(&self) -> Option<Duration>

Standard deviation of latency samples.

Source

pub fn report(&mut self) -> Option<LatencyReport>

Generate a full latency report with all standard percentiles.

Source

pub fn histogram_buckets(&mut self, num_buckets: usize) -> Vec<HistogramBucket>

Build histogram buckets with the specified number of bins.

Returns a list of (bucket_start, bucket_end, count) tuples.

Source

pub fn clear(&mut self)

Clear all recorded samples.

Trait Implementations§

Source§

impl Default for LatencyHistogram

Source§

fn default() -> Self

Returns the “default value” for a type. 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: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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
Source§

impl<T> ResponseProduces<T> for T