From 817a4d91a79194584c5f0058bc691252f1382cf1 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 18 May 2020 12:08:57 +0200 Subject: [PATCH] Count inbound and outbound messages/sec --- src/dataspace.rs | 14 +++++++++----- src/skeleton.rs | 8 +++++--- src/spaces.rs | 5 +++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/dataspace.rs b/src/dataspace.rs index 2fb1c6e..86e9dc6 100644 --- a/src/dataspace.rs +++ b/src/dataspace.rs @@ -30,7 +30,8 @@ pub struct Churn { pub assertions_removed: usize, pub endpoints_added: usize, pub endpoints_removed: usize, - pub messages_sent: usize, + pub messages_injected: usize, + pub messages_delivered: usize, } impl Churn { @@ -42,7 +43,8 @@ impl Churn { assertions_removed: 0, endpoints_added: 0, endpoints_removed: 0, - messages_sent: 0, + messages_injected: 0, + messages_delivered: 0, } } @@ -53,7 +55,8 @@ impl Churn { self.assertions_removed = 0; self.endpoints_added = 0; self.endpoints_removed = 0; - self.messages_sent = 0; + self.messages_injected = 0; + self.messages_delivered = 0; } } @@ -175,9 +178,10 @@ impl Dataspace { } packets::Action::Message(ref assertion) => { schedule_events(&mut outbound_turns, - self.index.send(assertion.into()), + self.index.send(assertion.into(), + &mut self.churn.messages_delivered), |epname, cs| packets::Event::Msg(epname, cs)); - self.churn.messages_sent += 1; + self.churn.messages_injected += 1; } } } diff --git a/src/skeleton.rs b/src/skeleton.rs index 862ec75..dc4a895 100644 --- a/src/skeleton.rs +++ b/src/skeleton.rs @@ -157,15 +157,17 @@ impl Index { outputs } - pub fn send(&mut self, outer_value: CachedAssertion) -> Events { + pub fn send(&mut self, outer_value: CachedAssertion, delivery_count: &mut usize) -> Events { let mut outputs = Vec::new(); Modification::new( false, &outer_value, |_c, _v| (), |_l, _v| (), - |es, cs| outputs.push((es.endpoints.iter().cloned().collect(), cs))) - .perform(&mut self.root); + |es, cs| { + *delivery_count += es.endpoints.len(); + outputs.push((es.endpoints.iter().cloned().collect(), cs)) + }).perform(&mut self.root); outputs } diff --git a/src/spaces.rs b/src/spaces.rs index d29f209..0a55a3b 100644 --- a/src/spaces.rs +++ b/src/spaces.rs @@ -43,7 +43,7 @@ impl Spaces { v.push(format!("{} dataspace(s)", self.index.len())); for (dsname, dsref) in &self.index { let mut ds = dsref.write().unwrap(); - v.push(format!(" {:?}: {} connection(s) {}, {} assertion(s) {}, {} endpoint(s) {}, {} messages/sec", + v.push(format!(" {:?}: {} connection(s) {}, {} assertion(s) {}, {} endpoint(s) {}, msgs in {}/sec, out {}/sec", dsname, ds.peer_count(), format!("(+{}/-{})", ds.churn.peers_added, ds.churn.peers_removed), @@ -51,7 +51,8 @@ impl Spaces { format!("(+{}/-{})", ds.churn.assertions_added, ds.churn.assertions_removed), ds.endpoint_count(), format!("(+{}/-{})", ds.churn.endpoints_added, ds.churn.endpoints_removed), - ds.churn.messages_sent as f32 / delta.as_secs() as f32)); + ds.churn.messages_injected as f32 / delta.as_secs() as f32, + ds.churn.messages_delivered as f32 / delta.as_secs() as f32)); ds.churn.reset(); } v.join("\n")