From 4ac20789923ea37171cc17d9053643bd2fb9d0be Mon Sep 17 00:00:00 2001 From: Cecile Tonglet Date: Thu, 16 Jul 2020 11:46:40 +0200 Subject: [PATCH] The telemetry should not be initialized if no telemetry has been provided (#6666) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit Forked at: e10598af1fde7cc7b7ab8546c63db00a063c708c Parent branch: origin/master * Fix: do not initialize telemetry if telemetry is not set * Update client/telemetry/src/lib.rs Co-authored-by: Pierre Krieger * Update client/telemetry/src/lib.rs * Update client/telemetry/src/lib.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: Pierre Krieger Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> --- substrate/client/service/src/builder.rs | 9 +++++++-- substrate/client/telemetry/src/lib.rs | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/substrate/client/service/src/builder.rs b/substrate/client/service/src/builder.rs index 49d2d61f9c..6f46b8bbb7 100644 --- a/substrate/client/service/src/builder.rs +++ b/substrate/client/service/src/builder.rs @@ -1012,7 +1012,12 @@ ServiceBuilder< let telemetry_connection_sinks: Arc>>> = Default::default(); // Telemetry - let telemetry = config.telemetry_endpoints.clone().map(|endpoints| { + let telemetry = config.telemetry_endpoints.clone().and_then(|endpoints| { + if endpoints.is_empty() { + // we don't want the telemetry to be initialized if telemetry_endpoints == Some([]) + return None; + } + let genesis_hash = match client.block_hash(Zero::zero()) { Ok(Some(hash)) => hash, _ => Default::default(), @@ -1031,7 +1036,7 @@ ServiceBuilder< future, ); - telemetry + Some(telemetry) }); // Instrumentation diff --git a/substrate/client/telemetry/src/lib.rs b/substrate/client/telemetry/src/lib.rs index 315bedbe5b..6a5ac0e0cb 100644 --- a/substrate/client/telemetry/src/lib.rs +++ b/substrate/client/telemetry/src/lib.rs @@ -123,6 +123,13 @@ impl TelemetryEndpoints { } } +impl TelemetryEndpoints { + /// Return `true` if there are no telemetry endpoints, `false` otherwise. + pub fn is_empty(&self) -> bool { + self.0.is_empty() + } +} + /// Parses a WebSocket URL into a libp2p `Multiaddr`. fn url_to_multiaddr(url: &str) -> Result { // First, assume that we have a `Multiaddr`.