pub struct PerformanceMetrics {
pub messages_per_second: f64,
pub average_latency_ms: f64,
pub peak_latency_ms: f64,
pub compression_ratio: f64,
pub pool_utilization: f64,
pub memory_usage_bytes: u64,
pub cpu_usage_percent: f64,
pub total_messages: u64,
pub failed_messages: u64,
pub last_updated: Instant,
}Expand description
Performance metrics for IPC operations
Fields§
§messages_per_second: f64Messages per second (throughput)
average_latency_ms: f64Average response time in milliseconds
peak_latency_ms: f64Peak response time in milliseconds
compression_ratio: f64Compression ratio (compressed_size / original_size)
pool_utilization: f64Connection pool utilization (0.0 to 1.0)
memory_usage_bytes: u64Memory usage in bytes
cpu_usage_percent: f64CPU usage as percentage (0.0 to 100.0)
total_messages: u64Total messages processed
failed_messages: u64Failed messages
last_updated: InstantLast update timestamp (skipped for serialization as Instant is not serializable)
Implementations§
Source§impl PerformanceMetrics
impl PerformanceMetrics
Sourcepub fn record_message(&mut self, latency: Duration)
pub fn record_message(&mut self, latency: Duration)
Record a successful message with its latency
Sourcepub fn record_failure(&mut self)
pub fn record_failure(&mut self)
Record a failed message
Sourcepub fn success_rate(&self) -> f64
pub fn success_rate(&self) -> f64
Calculate success rate (0.0 to 1.0)
Sourcepub fn is_latency_acceptable(&self, threshold_ms: f64) -> bool
pub fn is_latency_acceptable(&self, threshold_ms: f64) -> bool
Check if latency is within acceptable thresholds
Sourcepub fn success_rate_percent(&self) -> f64
pub fn success_rate_percent(&self) -> f64
Get message success rate as percentage
Trait Implementations§
Source§impl Clone for PerformanceMetrics
impl Clone for PerformanceMetrics
Source§fn clone(&self) -> PerformanceMetrics
fn clone(&self) -> PerformanceMetrics
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 PerformanceMetrics
impl Debug for PerformanceMetrics
Source§impl Default for PerformanceMetrics
impl Default for PerformanceMetrics
Auto Trait Implementations§
impl Freeze for PerformanceMetrics
impl RefUnwindSafe for PerformanceMetrics
impl Send for PerformanceMetrics
impl Sync for PerformanceMetrics
impl Unpin for PerformanceMetrics
impl UnwindSafe for PerformanceMetrics
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].