diff --git a/src/stats.rs b/src/stats.rs index 52e480b..581b6ee 100644 --- a/src/stats.rs +++ b/src/stats.rs @@ -6,6 +6,7 @@ pub struct Snapshot { pub request: u64, pub blocked: u64, pub entries: u64, + pub percent: f32, } #[derive(Default)] @@ -23,10 +24,17 @@ impl Total { } } pub fn snapshot(&self) -> Snapshot { + let request = self.request.load(Ordering::Relaxed); + let blocked = self.blocked.load(Ordering::Relaxed); Snapshot { - request: self.request.load(Ordering::Relaxed), - blocked: self.blocked.load(Ordering::Relaxed), + 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 set_entries(&self, value: u64) {