pub struct ConnectionStats {
pub total_connections: usize,
pub healthy_connections: usize,
pub max_connections: usize,
pub available_permits: usize,
pub connection_timeout: Duration,
}Expand description
Connection statistics for monitoring
This structure provides aggregate statistics about the connection pool, useful for monitoring and debugging.
§Example Usage
ⓘ
let stats = pool.GetStats().await;
println!("Total connections: {}", stats.total_connections);
println!("Healthy: {}", stats.healthy_connections);
println!("Available: {}", stats.available_permits);Fields§
§total_connections: usizeTotal number of active connections
healthy_connections: usizeNumber of healthy connections
max_connections: usizeMaximum number of connections allowed
available_permits: usizeNumber of available connection permits
connection_timeout: DurationConnection timeout duration
Implementations§
Source§impl ConnectionStats
impl ConnectionStats
Sourcepub fn utilization(&self) -> f64
pub fn utilization(&self) -> f64
Calculate connection pool utilization percentage
§Returns
Percentage of connections in use (0.0 to 100.0)
Sourcepub fn health_percentage(&self) -> f64
pub fn health_percentage(&self) -> f64
Sourcepub fn is_under_stress(&self) -> bool
pub fn is_under_stress(&self) -> bool
Check if pool is under stress
Pool is under stress if:
- Utilization > 80%
- Health percentage < 70%
§Returns
true: Pool is under stressfalse: Pool is healthy
Trait Implementations§
Source§impl Clone for ConnectionStats
impl Clone for ConnectionStats
Source§fn clone(&self) -> ConnectionStats
fn clone(&self) -> ConnectionStats
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConnectionStats
impl Debug for ConnectionStats
Source§impl Default for ConnectionStats
impl Default for ConnectionStats
Source§fn default() -> ConnectionStats
fn default() -> ConnectionStats
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ConnectionStats
impl RefUnwindSafe for ConnectionStats
impl Send for ConnectionStats
impl Sync for ConnectionStats
impl Unpin for ConnectionStats
impl UnwindSafe for ConnectionStats
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].