pub trait Metrics:
Send
+ Sync
+ 'static {
// Provided methods
fn on_request(&self, _method: &str) { ... }
fn on_response(&self, _method: &str) { ... }
fn on_error(&self, _method: &str, _error: &str) { ... }
fn on_latency(&self, _method: &str, _duration: Duration) { ... }
fn on_queue_depth_change(&self, _active_queues: usize) { ... }
fn on_connection_pool_stats(&self, _stats: &ConnectionPoolStats) { ... }
}Expand description
Trait for receiving metrics callbacks from the handler.
All methods have default no-op implementations so that consumers can override only the callbacks they care about.
Provided Methods§
Sourcefn on_request(&self, _method: &str)
fn on_request(&self, _method: &str)
Called when a request is received, before processing.
Sourcefn on_response(&self, _method: &str)
fn on_response(&self, _method: &str)
Called when a response is successfully sent.
Sourcefn on_latency(&self, _method: &str, _duration: Duration)
fn on_latency(&self, _method: &str, _duration: Duration)
Called when a request completes (successfully or not) with the wall-clock duration from receipt to response.
This is the #1 production observability metric — use it to feed histograms, percentile trackers, or SLO dashboards.
Sourcefn on_queue_depth_change(&self, _active_queues: usize)
fn on_queue_depth_change(&self, _active_queues: usize)
Called when the number of active event queues changes.
Sourcefn on_connection_pool_stats(&self, _stats: &ConnectionPoolStats)
fn on_connection_pool_stats(&self, _stats: &ConnectionPoolStats)
Called with connection pool statistics when available.
Useful for monitoring connection pool health and detecting exhaustion.
Implementations on Foreign Types§
Source§impl<T: Metrics + ?Sized> Metrics for Arc<T>
Blanket implementation: Arc<T> implements Metrics if T does.
impl<T: Metrics + ?Sized> Metrics for Arc<T>
Blanket implementation: Arc<T> implements Metrics if T does.
This eliminates the need for wrapper types like MetricsForward when
sharing a metrics instance across multiple handlers or tasks.