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`.