From 24d41f32b2a57323b36092fb407d1f164806d646 Mon Sep 17 00:00:00 2001 From: boqiu <82121246@qq.com> Date: Tue, 20 Aug 2024 16:12:34 +0800 Subject: [PATCH] add metrics in log sync package --- Cargo.lock | 2 ++ node/log_entry_sync/Cargo.toml | 4 +++- node/log_entry_sync/src/sync_manager/metrics.rs | 7 +++++++ node/log_entry_sync/src/sync_manager/mod.rs | 9 +++++++-- 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 node/log_entry_sync/src/sync_manager/metrics.rs diff --git a/Cargo.lock b/Cargo.lock index 714294b..3a85a3f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4538,6 +4538,8 @@ dependencies = [ "futures-core", "futures-util", "jsonrpsee", + "lazy_static", + "metrics", "serde_json", "shared_types", "storage", diff --git a/node/log_entry_sync/Cargo.toml b/node/log_entry_sync/Cargo.toml index c5b90e2..72651f8 100644 --- a/node/log_entry_sync/Cargo.toml +++ b/node/log_entry_sync/Cargo.toml @@ -21,4 +21,6 @@ storage = { path = "../storage" } contract-interface = { path = "../../common/contract-interface" } futures-core = "0.3.28" futures-util = "0.3.28" -thiserror = "1.0.44" \ No newline at end of file +thiserror = "1.0.44" +lazy_static = "1.4.0" +metrics = { workspace = true } diff --git a/node/log_entry_sync/src/sync_manager/metrics.rs b/node/log_entry_sync/src/sync_manager/metrics.rs new file mode 100644 index 0000000..37bee24 --- /dev/null +++ b/node/log_entry_sync/src/sync_manager/metrics.rs @@ -0,0 +1,7 @@ +use std::sync::Arc; + +use metrics::{register_timer, Timer}; + +lazy_static::lazy_static! { + pub static ref STORE_PUT_TX: Arc = register_timer("log_entry_sync_store_put_tx"); +} diff --git a/node/log_entry_sync/src/sync_manager/mod.rs b/node/log_entry_sync/src/sync_manager/mod.rs index 0a07f40..c561676 100644 --- a/node/log_entry_sync/src/sync_manager/mod.rs +++ b/node/log_entry_sync/src/sync_manager/mod.rs @@ -11,7 +11,7 @@ use std::collections::BTreeMap; use std::fmt::Debug; use std::future::Future; use std::sync::Arc; -use std::time::Duration; +use std::time::{Duration, Instant}; use storage::log_store::{tx_store::BlockHashAndSubmissionIndex, Store}; use task_executor::{ShutdownReason, TaskExecutor}; use tokio::sync::broadcast; @@ -358,7 +358,11 @@ impl LogSyncManager { } async fn put_tx_inner(&mut self, tx: Transaction) -> bool { - if let Err(e) = self.store.put_tx(tx.clone()) { + let start_time = Instant::now(); + let result = self.store.put_tx(tx.clone()); + metrics::STORE_PUT_TX.update_since(start_time); + + if let Err(e) = result { error!("put_tx error: e={:?}", e); false } else { @@ -458,3 +462,4 @@ pub(crate) mod config; mod data_cache; mod log_entry_fetcher; mod log_query; +mod metrics;