pub struct Histogram { /* private fields */ }Expand description
A histogram metric for tracking distributions of observations.
Histograms are used to track the distribution of values, such as:
- Request latencies
- Message sizes
- Processing times
The histogram maintains counts in predefined buckets and can calculate percentiles (p50, p95, p99).
Implementations§
Source§impl Histogram
impl Histogram
Sourcepub fn new(
name: String,
buckets: Vec<f64>,
labels: Vec<(String, String)>,
) -> Self
pub fn new( name: String, buckets: Vec<f64>, labels: Vec<(String, String)>, ) -> Self
Creates a new histogram with the given name, buckets, and labels.
§Panics
Panics if buckets are empty or not sorted in ascending order.
Sourcepub fn get_buckets(&self) -> &[f64]
pub fn get_buckets(&self) -> &[f64]
Returns the bucket boundaries.
Sourcepub fn get_bucket_counts(&self) -> Vec<u64>
pub fn get_bucket_counts(&self) -> Vec<u64>
Returns the count for each bucket.
Sourcepub fn percentile(&self, percentile: f64) -> f64
pub fn percentile(&self, percentile: f64) -> f64
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request