pub struct ServerMetrics {Show 23 fields
pub requests_total: AtomicU64,
pub requests_successful: AtomicU64,
pub requests_failed: AtomicU64,
pub requests_in_flight: AtomicU64,
pub errors_total: AtomicU64,
pub errors_validation: AtomicU64,
pub errors_auth: AtomicU64,
pub errors_network: AtomicU64,
pub errors_timeout: AtomicU64,
pub total_response_time_us: AtomicU64,
pub min_response_time_us: AtomicU64,
pub max_response_time_us: AtomicU64,
pub tool_calls_total: AtomicU64,
pub tool_calls_successful: AtomicU64,
pub tool_calls_failed: AtomicU64,
pub connections_active: AtomicU64,
pub connections_total: AtomicU64,
pub connections_rejected: AtomicU64,
pub memory_usage_bytes: AtomicU64,
pub cpu_usage_percent_x100: AtomicU64,
pub custom: RwLock<HashMap<String, f64>>,
pub response_time_buckets: ResponseTimeHistogram,
pub start_time: Instant,
}
Expand description
Production-grade server metrics collector with lock-free atomic operations
Fields§
§requests_total: AtomicU64
Total number of requests received since server start
requests_successful: AtomicU64
Number of requests that completed successfully
requests_failed: AtomicU64
Number of requests that failed with errors
requests_in_flight: AtomicU64
Number of requests currently being processed
errors_total: AtomicU64
Total number of errors across all categories
errors_validation: AtomicU64
Number of validation/schema errors
errors_auth: AtomicU64
Number of authentication/authorization errors
errors_network: AtomicU64
Number of network-related errors
errors_timeout: AtomicU64
Number of timeout errors
total_response_time_us: AtomicU64
Sum of all response times in microseconds
min_response_time_us: AtomicU64
Minimum response time observed (microseconds)
max_response_time_us: AtomicU64
Maximum response time observed (microseconds)
tool_calls_total: AtomicU64
Total number of tool calls initiated
tool_calls_successful: AtomicU64
Number of tool calls that completed successfully
tool_calls_failed: AtomicU64
Number of tool calls that failed
connections_active: AtomicU64
Number of currently active connections
connections_total: AtomicU64
Total connections accepted since server start
connections_rejected: AtomicU64
Number of connections rejected (rate limiting, etc.)
memory_usage_bytes: AtomicU64
Current memory usage in bytes
cpu_usage_percent_x100: AtomicU64
Current CPU usage as percentage × 100 (due to no AtomicF64)
custom: RwLock<HashMap<String, f64>>
Custom application-specific metrics (rare updates, RwLock acceptable)
response_time_buckets: ResponseTimeHistogram
Response time histogram for latency distribution analysis
start_time: Instant
Server start time for uptime calculation
Implementations§
Source§impl ServerMetrics
impl ServerMetrics
Sourcepub fn new() -> Self
pub fn new() -> Self
Create production-grade metrics collector with comprehensive initialization
Sourcepub fn record_request_start(&self)
pub fn record_request_start(&self)
Record request start with zero-allocation tracking
Sourcepub fn record_request_success(&self, duration: Duration)
pub fn record_request_success(&self, duration: Duration)
Record successful request completion with timing
Sourcepub fn record_request_failure(&self, error_type: &str, duration: Duration)
pub fn record_request_failure(&self, error_type: &str, duration: Duration)
Record failed request with error categorization
Sourcepub fn record_tool_call(&self, success: bool)
pub fn record_tool_call(&self, success: bool)
Record tool call metrics with comprehensive tracking
Sourcepub fn record_connection_established(&self)
pub fn record_connection_established(&self)
Update connection metrics with proper lifecycle tracking
Sourcepub fn record_connection_closed(&self)
pub fn record_connection_closed(&self)
Record when a connection is closed/terminated
Sourcepub fn record_connection_rejected(&self)
pub fn record_connection_rejected(&self)
Record when a connection is rejected due to rate limiting or other policies
Sourcepub fn update_resource_metrics(&self, memory_bytes: u64, cpu_percent: f64)
pub fn update_resource_metrics(&self, memory_bytes: u64, cpu_percent: f64)
Update resource metrics (called periodically by monitoring task)
Sourcepub fn record_custom(&self, name: &str, value: f64)
pub fn record_custom(&self, name: &str, value: f64)
Record custom metric (infrequent operation, lock acceptable)
Sourcepub fn uptime_seconds(&self) -> u64
pub fn uptime_seconds(&self) -> u64
Calculate uptime in seconds
Sourcepub fn avg_response_time_us(&self) -> f64
pub fn avg_response_time_us(&self) -> f64
Calculate average response time in microseconds
Sourcepub fn request_rate(&self) -> f64
pub fn request_rate(&self) -> f64
Calculate request rate (requests per second)
Sourcepub fn error_rate_percent(&self) -> f64
pub fn error_rate_percent(&self) -> f64
Calculate error rate as percentage