From 366176a81d95d81d6cc7d2eb0d8b3c949f47815a Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 26 Apr 2022 20:05:26 +0200 Subject: [PATCH] print subscription info; once per minute --- core/src/server/rpc_module.rs | 16 ++++++++++++++++ ws-server/src/server.rs | 7 ++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/core/src/server/rpc_module.rs b/core/src/server/rpc_module.rs index c38c96b42e..fa1dbcc67f 100644 --- a/core/src/server/rpc_module.rs +++ b/core/src/server/rpc_module.rs @@ -25,6 +25,7 @@ // DEALINGS IN THE SOFTWARE. use std::collections::hash_map::Entry; +use std::collections::BTreeMap; use std::fmt::{self, Debug}; use std::future::Future; use std::ops::{Deref, DerefMut}; @@ -703,6 +704,21 @@ impl RpcModule { ); } + let subscribers2 = subscribers.clone(); + std::thread::spawn(move || loop { + let mut conns = BTreeMap::new(); + + for (key, _) in subscribers2.lock().iter() { + conns.entry(key.conn_id).and_modify(|c| *c += 1).or_insert(1); + } + + let mut v: Vec<_> = conns.into_iter().collect(); + v.sort_by(|&(_, a), &(_, b)| b.cmp(&a)); + + tracing::info!("active subscription `{}`: {:?}", subscribe_method_name, v); + std::thread::sleep(std::time::Duration::from_secs(60)) + }); + // Unsubscribe { self.methods.mut_callbacks().insert( diff --git a/ws-server/src/server.rs b/ws-server/src/server.rs index 5e1b2872bd..95279a9394 100644 --- a/ws-server/src/server.rs +++ b/ws-server/src/server.rs @@ -141,7 +141,12 @@ impl Server { }, ))); - tracing::info!("Accepting new connection, {}/{}", connections.count(), self.cfg.max_connections); + tracing::info!( + "Accepting new connection={}, {}/{}", + id, + connections.count(), + self.cfg.max_connections + ); id = id.wrapping_add(1); }