grandpa: filter some telemetry events on larger voter sets (#4700)

This commit is contained in:
André Silva
2020-01-21 21:14:44 +00:00
committed by Bastian Köcher
parent 9d556a69ef
commit c1750c5c28
@@ -106,6 +106,11 @@ mod benefit {
pub(super) const PER_EQUIVOCATION: i32 = 10; pub(super) const PER_EQUIVOCATION: i32 = 10;
} }
/// If the voter set is larger than this value some telemetry events are not
/// sent to avoid increasing usage resource on the node and flooding the
/// telemetry server (e.g. received votes, received commits.)
const TELEMETRY_VOTERS_LIMIT: usize = 10;
/// A handle to the network. /// A handle to the network.
/// ///
/// Something that provides both the capabilities needed for the `gossip_network::Network` trait as /// Something that provides both the capabilities needed for the `gossip_network::Network` trait as
@@ -308,29 +313,31 @@ impl<B: BlockT, N: Network<B>> NetworkBridge<B, N> {
return Ok(None); return Ok(None);
} }
match &msg.message.message { if voters.len() <= TELEMETRY_VOTERS_LIMIT {
PrimaryPropose(propose) => { match &msg.message.message {
telemetry!(CONSENSUS_INFO; "afg.received_propose"; PrimaryPropose(propose) => {
"voter" => ?format!("{}", msg.message.id), telemetry!(CONSENSUS_INFO; "afg.received_propose";
"target_number" => ?propose.target_number, "voter" => ?format!("{}", msg.message.id),
"target_hash" => ?propose.target_hash, "target_number" => ?propose.target_number,
); "target_hash" => ?propose.target_hash,
}, );
Prevote(prevote) => { },
telemetry!(CONSENSUS_INFO; "afg.received_prevote"; Prevote(prevote) => {
"voter" => ?format!("{}", msg.message.id), telemetry!(CONSENSUS_INFO; "afg.received_prevote";
"target_number" => ?prevote.target_number, "voter" => ?format!("{}", msg.message.id),
"target_hash" => ?prevote.target_hash, "target_number" => ?prevote.target_number,
); "target_hash" => ?prevote.target_hash,
}, );
Precommit(precommit) => { },
telemetry!(CONSENSUS_INFO; "afg.received_precommit"; Precommit(precommit) => {
"voter" => ?format!("{}", msg.message.id), telemetry!(CONSENSUS_INFO; "afg.received_precommit";
"target_number" => ?precommit.target_number, "voter" => ?format!("{}", msg.message.id),
"target_hash" => ?precommit.target_hash, "target_number" => ?precommit.target_number,
); "target_hash" => ?precommit.target_hash,
}, );
}; },
};
}
Ok(Some(msg.message)) Ok(Some(msg.message))
} }
@@ -474,11 +481,13 @@ fn incoming_global<B: BlockT>(
format!("{}", a) format!("{}", a)
}).collect(); }).collect();
telemetry!(CONSENSUS_INFO; "afg.received_commit"; if voters.len() <= TELEMETRY_VOTERS_LIMIT {
"contains_precommits_signed_by" => ?precommits_signed_by, telemetry!(CONSENSUS_INFO; "afg.received_commit";
"target_number" => ?msg.message.target_number.clone(), "contains_precommits_signed_by" => ?precommits_signed_by,
"target_hash" => ?msg.message.target_hash.clone(), "target_number" => ?msg.message.target_number.clone(),
); "target_hash" => ?msg.message.target_hash.clone(),
);
}
if let Err(cost) = check_compact_commit::<B>( if let Err(cost) = check_compact_commit::<B>(
&msg.message, &msg.message,