pub struct SearchMetrics { /* private fields */ }Expand description
Lightweight, lock-free performance metrics for vector search operations.
Tracks:
- total number of queries executed
- cumulative latency in microseconds (for mean computation)
- minimum and maximum observed latency
- approximate p50, p90, p99 percentiles (computed from a sorted snapshot)
Implementations§
Source§impl SearchMetrics
impl SearchMetrics
Sourcepub fn record_query(&self, latency_us: u64)
pub fn record_query(&self, latency_us: u64)
Record a single query with its observed latency in microseconds.
Sourcepub fn total_queries(&self) -> u64
pub fn total_queries(&self) -> u64
Total number of queries recorded.
Sourcepub fn mean_latency_us(&self) -> Option<f64>
pub fn mean_latency_us(&self) -> Option<f64>
Mean latency in microseconds, or None if no queries have been
recorded yet.
Sourcepub fn min_latency_us(&self) -> Option<u64>
pub fn min_latency_us(&self) -> Option<u64>
Minimum observed latency in microseconds.
Sourcepub fn max_latency_us(&self) -> Option<u64>
pub fn max_latency_us(&self) -> Option<u64>
Maximum observed latency in microseconds.
Sourcepub fn throughput_qps(&self) -> Option<f64>
pub fn throughput_qps(&self) -> Option<f64>
Approximate throughput in queries per second, computed from the mean
latency. Returns None if no queries recorded or mean is zero.
Sourcepub fn percentile_us(&self, p: f64) -> Option<u64>
pub fn percentile_us(&self, p: f64) -> Option<u64>
Compute the p-th percentile (0–100) latency from the current
reservoir sample. Returns None if no samples are available.
Trait Implementations§
Source§impl Debug for SearchMetrics
impl Debug for SearchMetrics
Auto Trait Implementations§
impl !Freeze for SearchMetrics
impl !RefUnwindSafe for SearchMetrics
impl Send for SearchMetrics
impl Sync for SearchMetrics
impl Unpin for SearchMetrics
impl UnsafeUnpin for SearchMetrics
impl UnwindSafe for SearchMetrics
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.