Skip to main content

stdiobus_core/
stats.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026-present Raman Marozau <raman@worktif.com>
3// Copyright (c) 2026-present stdiobus contributors
4
5//! Runtime statistics for stdio_bus
6
7use serde::{Deserialize, Serialize};
8
9/// Runtime statistics
10#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11pub struct BusStats {
12    /// Messages sent to workers
13    pub messages_in: u64,
14    /// Messages received from workers
15    pub messages_out: u64,
16    /// Total bytes sent
17    pub bytes_in: u64,
18    /// Total bytes received
19    pub bytes_out: u64,
20    /// Number of worker restarts
21    pub worker_restarts: u64,
22    /// Messages that couldn't be routed
23    pub routing_errors: u64,
24    /// Client connections (TCP/Unix modes)
25    pub client_connects: u64,
26    /// Client disconnections
27    pub client_disconnects: u64,
28}
29
30impl BusStats {
31    /// Create new empty stats
32    pub fn new() -> Self {
33        Self::default()
34    }
35
36    /// Reset all counters to zero
37    pub fn reset(&mut self) {
38        *self = Self::default();
39    }
40}