From ee8621a8bd1fc9022f88aa1d19aa604a7f1a874d Mon Sep 17 00:00:00 2001 From: carllin Date: Tue, 28 Sep 2021 21:41:17 -0700 Subject: [PATCH] Add metric measuring number of successfully inserted push messages (#20275) * Add number of successfully inserted push messages --- gossip/src/cluster_info.rs | 7 ++++++- gossip/src/cluster_info_metrics.rs | 6 ++++++ gossip/src/crds_gossip.rs | 20 +++++++++++++++----- gossip/tests/crds_gossip.rs | 1 + 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/gossip/src/cluster_info.rs b/gossip/src/cluster_info.rs index 47f3592fbc..f8cc8169a4 100644 --- a/gossip/src/cluster_info.rs +++ b/gossip/src/cluster_info.rs @@ -2181,7 +2181,12 @@ impl ClusterInfo { messages .into_iter() .flat_map(|(from, crds_values)| { - self.gossip.process_push_message(&from, crds_values, now) + let (num_success, origins) = + self.gossip.process_push_message(&from, crds_values, now); + self.stats + .process_push_success + .add_relaxed(num_success as u64); + origins }) .collect() }; diff --git a/gossip/src/cluster_info_metrics.rs b/gossip/src/cluster_info_metrics.rs index ff3a861da5..6ef5f786a1 100644 --- a/gossip/src/cluster_info_metrics.rs +++ b/gossip/src/cluster_info_metrics.rs @@ -131,6 +131,7 @@ pub(crate) struct GossipStats { pub(crate) process_pull_response_success: Counter, pub(crate) process_pull_response_timeout: Counter, pub(crate) process_push_message: Counter, + pub(crate) process_push_success: Counter, pub(crate) prune_message_count: Counter, pub(crate) prune_message_len: Counter, pub(crate) prune_received_cache: Counter, @@ -199,6 +200,11 @@ pub(crate) fn submit_gossip_stats( ("repair_peers", stats.repair_peers.clear(), i64), ("new_push_requests", stats.new_push_requests.clear(), i64), ("new_push_requests2", stats.new_push_requests2.clear(), i64), + ( + "process_push_success", + stats.process_push_success.clear(), + i64 + ), ("purge", stats.purge.clear(), i64), ( "process_gossip_packets_time", diff --git a/gossip/src/crds_gossip.rs b/gossip/src/crds_gossip.rs index 753ca8c261..05625dcb9c 100644 --- a/gossip/src/crds_gossip.rs +++ b/gossip/src/crds_gossip.rs @@ -49,12 +49,22 @@ impl CrdsGossip { from: &Pubkey, values: Vec, now: u64, - ) -> HashSet { - self.push - .process_push_message(&self.crds, from, values, now) + ) -> (usize, HashSet) { + let results = self + .push + .process_push_message(&self.crds, from, values, now); + let mut success_count = 0; + let successfully_inserted_origin_set: HashSet = results .into_iter() - .filter_map(Result::ok) - .collect() + .filter_map(|result| { + if result.is_ok() { + success_count += 1; + } + Result::ok(result) + }) + .collect(); + + (success_count, successfully_inserted_origin_set) } /// Remove redundant paths in the network. diff --git a/gossip/tests/crds_gossip.rs b/gossip/tests/crds_gossip.rs index 5fb8949604..4160ca3b8a 100644 --- a/gossip/tests/crds_gossip.rs +++ b/gossip/tests/crds_gossip.rs @@ -357,6 +357,7 @@ fn network_run_push( .unwrap() .gossip .process_push_message(&from, msgs.clone(), now) + .1 .into_iter() .collect(); let prunes_map = network