From 8456d0d969f22742055d39bdbb14480588c542fb Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Tue, 28 Jul 2020 18:19:16 +0300 Subject: [PATCH] Exchange transactions relay dashboard (#241) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update dashboards * cargo fmt --all * Update deployments/rialto/dashboard/prometheus/prometheus.yml Co-authored-by: Tomasz Drwięga Co-authored-by: Tomasz Drwięga --- bridges/relays/ethereum/src/exchange_loop.rs | 7 ++++++- bridges/relays/ethereum/src/metrics.rs | 12 ++++++++++-- bridges/relays/ethereum/src/sync_loop.rs | 7 ++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/bridges/relays/ethereum/src/exchange_loop.rs b/bridges/relays/ethereum/src/exchange_loop.rs index b089e70328..4d9a031ec9 100644 --- a/bridges/relays/ethereum/src/exchange_loop.rs +++ b/bridges/relays/ethereum/src/exchange_loop.rs @@ -98,7 +98,12 @@ pub fn run( let mut metrics_global = GlobalMetrics::new(); let mut metrics_exch = ExchangeLoopMetrics::new(); let metrics_enabled = metrics_params.is_some(); - metrics_start(metrics_params, &metrics_global, &metrics_exch); + metrics_start( + format!("{}_to_{}_Exchange", P::SOURCE_NAME, P::TARGET_NAME), + metrics_params, + &metrics_global, + &metrics_exch, + ); let exit_signal = exit_signal.fuse(); diff --git a/bridges/relays/ethereum/src/metrics.rs b/bridges/relays/ethereum/src/metrics.rs index 084b5ae10f..c65fdac5ad 100644 --- a/bridges/relays/ethereum/src/metrics.rs +++ b/bridges/relays/ethereum/src/metrics.rs @@ -45,12 +45,19 @@ pub struct GlobalMetrics { } /// Start Prometheus endpoint with given metrics registry. -pub fn start(params: Option, global_metrics: &GlobalMetrics, extra_metrics: &impl Metrics) { +pub fn start( + prefix: String, + params: Option, + global_metrics: &GlobalMetrics, + extra_metrics: &impl Metrics, +) { let params = match params { Some(params) => params, None => return, }; + assert!(!prefix.is_empty(), "Metrics prefix can not be empty"); + let do_start = move || { let prometheus_socket_addr = SocketAddr::new( params @@ -59,7 +66,8 @@ pub fn start(params: Option, global_metrics: &GlobalMetrics, extr .map_err(|err| format!("Invalid Prometheus host {}: {}", params.host, err))?, params.port, ); - let metrics_registry = Registry::new(); + let metrics_registry = + Registry::new_custom(Some(prefix), None).expect("only fails if prefix is empty; prefix is not empty; qed"); global_metrics.register(&metrics_registry)?; extra_metrics.register(&metrics_registry)?; async_std::task::spawn(async move { diff --git a/bridges/relays/ethereum/src/sync_loop.rs b/bridges/relays/ethereum/src/sync_loop.rs index 95a6171544..9e5535f5c4 100644 --- a/bridges/relays/ethereum/src/sync_loop.rs +++ b/bridges/relays/ethereum/src/sync_loop.rs @@ -124,7 +124,12 @@ pub fn run>( let mut metrics_global = GlobalMetrics::new(); let mut metrics_sync = SyncLoopMetrics::new(); let metrics_enabled = metrics_params.is_some(); - metrics_start(metrics_params, &metrics_global, &metrics_sync); + metrics_start( + format!("{}_to_{}_Sync", P::SOURCE_NAME, P::TARGET_NAME), + metrics_params, + &metrics_global, + &metrics_sync, + ); let mut source_retry_backoff = retry_backoff(); let mut source_client_is_online = false;