From f90fd34f81df7c8a852679023e7ee018b527f14a Mon Sep 17 00:00:00 2001
From: Pierre Krieger <pierre.krieger1708@gmail.com>
Date: Sat, 9 Nov 2019 13:58:00 +0100
Subject: [PATCH] Pass startup_time to telemetry (#4069)

---
 substrate/core/service/src/builder.rs | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/substrate/core/service/src/builder.rs b/substrate/core/service/src/builder.rs
index 03db6e385b0..9956837e241 100644
--- a/substrate/core/service/src/builder.rs
+++ b/substrate/core/service/src/builder.rs
@@ -44,7 +44,10 @@ use sr_primitives::traits::{
 	Block as BlockT, Extrinsic, ProvideRuntimeApi, NumberFor, One, Zero, Header, SaturatedConversion
 };
 use substrate_executor::{NativeExecutor, NativeExecutionDispatch};
-use std::{io::{Read, Write, Seek}, marker::PhantomData, sync::Arc, sync::atomic::AtomicBool};
+use std::{
+	io::{Read, Write, Seek},
+	marker::PhantomData, sync::Arc, sync::atomic::AtomicBool, time::SystemTime
+};
 use sysinfo::{get_current_pid, ProcessExt, System, SystemExt};
 use tel::{telemetry, SUBSTRATE_INFO};
 use transaction_pool::txpool::{self, ChainApi, Pool as TransactionPool};
@@ -187,7 +190,7 @@ where TGen: RuntimeGenesis, TCSExt: Extension {
 						client_db::DatabaseSettingsSrc::Custom(db.clone()),
 				},
 			};
-			
+
 			client_db::new_client(
 				db_config,
 				executor,
@@ -1095,6 +1098,9 @@ ServiceBuilder<
 				endpoints,
 				wasm_external_transport: config.telemetry_external_transport.take(),
 			});
+			let startup_time = SystemTime::UNIX_EPOCH.elapsed()
+				.map(|dur| dur.as_millis())
+				.unwrap_or(0);
 			let future = telemetry.clone()
 				.map(|ev| Ok::<_, ()>(ev))
 				.compat()
@@ -1109,6 +1115,7 @@ ServiceBuilder<
 						"config" => "",
 						"chain" => chain_name.clone(),
 						"authority" => is_authority,
+						"startup_time" => startup_time,
 						"network_id" => network_id.clone()
 					);
 
-- 
GitLab