mirror of
https://codeberg.org/YGGverse/psocks.git
synced 2026-04-01 08:55:27 +00:00
reorganize snapshot stats, implement detailed summary
This commit is contained in:
parent
9b9c47cbb9
commit
4658e2c481
3 changed files with 47 additions and 24 deletions
30
src/stats.rs
30
src/stats.rs
|
|
@ -1,13 +1,8 @@
|
|||
use rocket::serde::Serialize;
|
||||
mod snap;
|
||||
|
||||
use std::sync::atomic::{AtomicU64, Ordering};
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct Snapshot {
|
||||
pub request: u64,
|
||||
pub blocked: u64,
|
||||
pub entries: u64,
|
||||
pub percent: f32,
|
||||
}
|
||||
pub use snap::Snap;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Total {
|
||||
|
|
@ -23,19 +18,12 @@ impl Total {
|
|||
..Self::default()
|
||||
}
|
||||
}
|
||||
pub fn snapshot(&self) -> Snapshot {
|
||||
let request = self.request.load(Ordering::Relaxed);
|
||||
let blocked = self.blocked.load(Ordering::Relaxed);
|
||||
Snapshot {
|
||||
request,
|
||||
blocked,
|
||||
entries: self.entries.load(Ordering::Relaxed),
|
||||
percent: if request > 0 {
|
||||
blocked as f32 * 100.0 / request as f32
|
||||
} else {
|
||||
0.0
|
||||
},
|
||||
}
|
||||
pub fn snap(&self) -> Snap {
|
||||
Snap::shot(
|
||||
self.entries.load(Ordering::Relaxed),
|
||||
self.request.load(Ordering::Relaxed),
|
||||
self.blocked.load(Ordering::Relaxed),
|
||||
)
|
||||
}
|
||||
pub fn set_entries(&self, value: u64) {
|
||||
self.entries.store(value, Ordering::Relaxed);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue