From ca60454f8ad0e9be9556d9d7c59e307f530973da Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 12 Sep 2024 19:19:33 -0400 Subject: [PATCH] [json rpc] add temp logging to get_transaction_block --- crates/sui-json-rpc/src/read_api.rs | 15 +++++++++++++++ .../sui-storage/src/http_key_value_store.rs | 19 +++++++++++-------- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/crates/sui-json-rpc/src/read_api.rs b/crates/sui-json-rpc/src/read_api.rs index 4dfdccc1086c6..9ade12614f856 100644 --- a/crates/sui-json-rpc/src/read_api.rs +++ b/crates/sui-json-rpc/src/read_api.rs @@ -715,6 +715,7 @@ impl ReadApiServer for ReadApi { digest: TransactionDigest, opts: Option, ) -> RpcResult { + info!("get_transaction_block started for {:?}", digest); with_tracing!(async move { let opts = opts.unwrap_or_default(); let mut temp_response = IntermediateTransactionResponse::new(digest); @@ -731,6 +732,8 @@ impl ReadApiServer for ReadApi { }) .await .map_err(Error::from)??; + info!("get_transaction_block fetched transaction for {:?}", digest); + let input_objects = transaction .data() .inner() @@ -761,6 +764,7 @@ impl ReadApiServer for ReadApi { .map_err(Error::from)??, ); } + info!("get_transaction_block fetched effects for {:?}", digest); temp_response.checkpoint_seq = self .transaction_kv_store @@ -771,6 +775,11 @@ impl ReadApiServer for ReadApi { Error::from(e) })?; + info!( + "get_transaction_block fetched checkpoint number for {:?}", + digest + ); + if let Some(checkpoint_seq) = &temp_response.checkpoint_seq { let kv_store = self.transaction_kv_store.clone(); let checkpoint_seq = *checkpoint_seq; @@ -787,6 +796,10 @@ impl ReadApiServer for ReadApi { // TODO(chris): we don't need to fetch the whole checkpoint summary temp_response.timestamp = Some(checkpoint.timestamp_ms); } + info!( + "get_transaction_block fetched checkpoint summary for {:?}", + digest + ); if opts.show_events && temp_response.effects.is_some() { // safe to unwrap because we have checked is_some @@ -815,6 +828,7 @@ impl ReadApiServer for ReadApi { temp_response.events = Some(SuiTransactionBlockEvents::default()); } } + info!("get_transaction_block fetched events for {:?}", digest); let object_cache = ObjectProviderCache::new((self.state.clone(), self.transaction_kv_store.clone())); @@ -864,6 +878,7 @@ impl ReadApiServer for ReadApi { } } let epoch_store = self.state.load_epoch_store_one_call_per_task(); + info!("finished request for {:?}", digest); convert_to_response(temp_response, &opts, epoch_store.module_cache()) }) } diff --git a/crates/sui-storage/src/http_key_value_store.rs b/crates/sui-storage/src/http_key_value_store.rs index 461a441cd2a02..0b6906cbfeb3a 100644 --- a/crates/sui-storage/src/http_key_value_store.rs +++ b/crates/sui-storage/src/http_key_value_store.rs @@ -10,6 +10,7 @@ use reqwest::Url; use serde::{Deserialize, Serialize}; use std::str::FromStr; use std::sync::Arc; +use std::time::Instant; use sui_types::base_types::{ObjectID, SequenceNumber, VersionNumber}; use sui_types::object::Object; use sui_types::storage::ObjectKey; @@ -25,7 +26,7 @@ use sui_types::{ transaction::Transaction, }; use tap::TapFallible; -use tracing::{error, info, instrument, trace, warn}; +use tracing::{error, info, instrument, warn}; use crate::key_value_store::{TransactionKeyValueStore, TransactionKeyValueStoreTrait}; use crate::key_value_store_metrics::KeyValueStoreMetrics; @@ -124,7 +125,7 @@ impl HttpKVStore { pub fn new(base_url: &str) -> SuiResult { info!("creating HttpKVStore with base_url: {}", base_url); - let client = Client::builder().http2_prior_knowledge().build().unwrap(); + let client = Client::builder().build().unwrap(); let base_url = if base_url.ends_with('/') { base_url.to_string() @@ -153,21 +154,23 @@ impl HttpKVStore { } async fn fetch(&self, key: Key) -> SuiResult> { + let client = Client::builder().build().unwrap(); let url = self.get_url(&key)?; - trace!("fetching url: {}", url); - let resp = self - .client + info!("fetching url: {}", url); + let start = Instant::now(); + let resp = client .get(url.clone()) .send() .await .into_sui_result()?; - trace!( - "got response {} for url: {}, len: {:?}", + info!( + "got response {} for url: {}, len: {:?} in {:?}", url, resp.status(), resp.headers() .get(CONTENT_LENGTH) - .unwrap_or(&HeaderValue::from_static("0")) + .unwrap_or(&HeaderValue::from_static("0")), + start.elapsed().as_millis(), ); // return None if 400 if resp.status().is_success() {