aiway_protocol/gateway/
state.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4pub struct State {
5 pub timestamp: i64,
7 pub node_info: NodeInfo,
9 pub system_state: SystemState,
11 pub counter: Counter,
13 pub moment_counter: MomentCounter,
15}
16
17#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18pub struct NodeInfo {
19 pub node_id: String,
20 pub ip: String,
21 pub port: u16,
22}
23#[derive(Debug, Clone, Default, Serialize, Deserialize)]
24pub struct SystemState {
25 pub os: String,
27 pub arch: String,
29 pub host_name: String,
31 pub uptime: u64,
33 pub cpu_usage: f32,
35 pub mem_state: MemState,
37 pub disk_state: DiskState,
39 pub net_state: NetState,
41}
42
43#[derive(Debug, Clone, Default, Serialize, Deserialize)]
45pub struct MemState {
46 pub total: u64,
48 pub free: u64,
50 pub used: u64,
52}
53
54#[derive(Debug, Clone, Default, Serialize, Deserialize)]
56pub struct DiskState {
57 pub total: u64,
59 pub free: u64,
61}
62
63#[derive(Debug, Clone, Default, Serialize, Deserialize)]
65pub struct NetState {
66 pub rx: u64,
68 pub tx: u64,
70 pub tcp_conn_count: usize,
72}
73
74#[derive(Debug, Default, Clone, Serialize, Deserialize)]
79pub struct Counter {
80 pub request_count: usize,
84 pub request_invalid_count: usize,
89 pub response_2xx_count: usize,
91 pub response_3xx_count: usize,
93 pub response_4xx_count: usize,
99 pub response_5xx_count: usize,
102 pub response_time_since_last: usize,
108}
109
110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
112pub struct MomentCounter {
113 pub http_connect_count: isize,
121 pub sse_connect_count: isize,
123 pub websocket_connect_count: isize,
125}
126
127impl State {
128 pub fn reset_counter(&mut self) {
129 self.counter.request_count = 0;
130 self.counter.response_time_since_last = 0;
131 self.counter.request_invalid_count = 0;
132 self.counter.response_2xx_count = 0;
133 self.counter.response_3xx_count = 0;
134 self.counter.response_4xx_count = 0;
135 self.counter.response_5xx_count = 0;
136 }
137}