From 50ccbd5fada7ad84c0b2ae605406391bb7c60658 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 31 Jan 2025 04:02:32 +0000 Subject: [PATCH 1/4] improve measurements --- auction-server/src/auction/service/auction_manager.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/auction-server/src/auction/service/auction_manager.rs b/auction-server/src/auction/service/auction_manager.rs index 65281688..5f38b8e1 100644 --- a/auction-server/src/auction/service/auction_manager.rs +++ b/auction-server/src/auction/service/auction_manager.rs @@ -678,8 +678,7 @@ impl Service { } #[tracing::instrument(skip_all, fields(bid_id, total_tries, tx_hash))] - async fn blocking_send_transaction(&self, bid: entities::Bid) { - let start = Instant::now(); + async fn blocking_send_transaction(&self, bid: entities::Bid, start: Instant) { let mut result_label = METRIC_LABEL_EXPIRED; let signature = bid.chain_data.transaction.signatures[0]; tracing::Span::current().record("bid_id", bid.id.to_string()); @@ -738,18 +737,19 @@ impl Service { bid: &entities::Bid, ) -> solana_client::client_error::Result { tracing::Span::current().record("bid_id", bid.id.to_string()); + let start = Instant::now(); let tx = &bid.chain_data.transaction; - self.send_transaction_to_network(&bid.chain_data.transaction) - .await?; + self.send_transaction_to_network(tx).await?; self.config .chain_config .simulator .add_pending_transaction(tx) .await; + self.task_tracker.spawn({ let (service, bid) = (self.clone(), bid.clone()); async move { - service.blocking_send_transaction(bid).await; + service.blocking_send_transaction(bid, start).await; } }); Ok(tx.signatures[0]) From 3cee61c46d7cb4bdb2bde0ac9e14cc5a35f6c0c8 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 31 Jan 2025 04:23:22 +0000 Subject: [PATCH 2/4] update buckets for svm landing --- .../src/auction/service/auction_manager.rs | 3 ++- auction-server/src/server.rs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/auction-server/src/auction/service/auction_manager.rs b/auction-server/src/auction/service/auction_manager.rs index 5f38b8e1..937961f3 100644 --- a/auction-server/src/auction/service/auction_manager.rs +++ b/auction-server/src/auction/service/auction_manager.rs @@ -20,6 +20,7 @@ use { self, service::get_live_opportunities::GetLiveOpportunitiesInput, }, + server::TRANSACTION_LANDING_TIME_SVM_METRIC, }, anyhow::Result, axum::async_trait, @@ -725,7 +726,7 @@ impl Service { // but this is rare as we retry for 60 seconds and blockhash expires after 60 seconds ("result", result_label.to_string()), ]; - metrics::histogram!("transaction_landing_time_seconds_svm", &labels) + metrics::histogram!(TRANSACTION_LANDING_TIME_SVM_METRIC, &labels) .record(start.elapsed().as_secs_f64()); tracing::Span::current().record("total_tries", retry_count + 1); diff --git a/auction-server/src/server.rs b/auction-server/src/server.rs index 909bfc24..20c53bed 100644 --- a/auction-server/src/server.rs +++ b/auction-server/src/server.rs @@ -135,8 +135,20 @@ async fn fetch_access_tokens(db: &PgPool) -> HashMap Result { PrometheusBuilder::new() + .set_buckets_for_metric( + axum_prometheus::metrics_exporter_prometheus::Matcher::Full( + TRANSACTION_LANDING_TIME_SVM_METRIC.to_string(), + ), + TRANSACTION_LANDING_TIME_SVM_BUCKETS, + ) + .unwrap() .set_buckets(SECONDS_DURATION_BUCKETS) .unwrap() .install_recorder() From 9fd5acac5b25102747bb62b66feca31df9fb02e8 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 31 Jan 2025 04:24:05 +0000 Subject: [PATCH 3/4] bump --- Cargo.lock | 2 +- auction-server/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 989ca8f2..3b2aa4fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -719,7 +719,7 @@ dependencies = [ [[package]] name = "auction-server" -version = "0.17.0" +version = "0.17.1" dependencies = [ "anchor-lang", "anchor-lang-idl", diff --git a/auction-server/Cargo.toml b/auction-server/Cargo.toml index 55fb8fec..acd4cb6e 100644 --- a/auction-server/Cargo.toml +++ b/auction-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "auction-server" -version = "0.17.0" +version = "0.17.1" edition = "2021" license-file = "license.txt" From ac53b98181846e2365b9ea012e953a1e495dfe36 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Wed, 5 Feb 2025 02:34:19 +0000 Subject: [PATCH 4/4] fix: pr comments --- auction-server/src/auction/service/auction_manager.rs | 2 +- auction-server/src/per_metrics.rs | 5 +++++ auction-server/src/server.rs | 9 ++------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/auction-server/src/auction/service/auction_manager.rs b/auction-server/src/auction/service/auction_manager.rs index 937961f3..7b6cbdbf 100644 --- a/auction-server/src/auction/service/auction_manager.rs +++ b/auction-server/src/auction/service/auction_manager.rs @@ -20,7 +20,7 @@ use { self, service::get_live_opportunities::GetLiveOpportunitiesInput, }, - server::TRANSACTION_LANDING_TIME_SVM_METRIC, + per_metrics::TRANSACTION_LANDING_TIME_SVM_METRIC, }, anyhow::Result, axum::async_trait, diff --git a/auction-server/src/per_metrics.rs b/auction-server/src/per_metrics.rs index bbe050f7..297b4b71 100644 --- a/auction-server/src/per_metrics.rs +++ b/auction-server/src/per_metrics.rs @@ -39,6 +39,11 @@ use { }, }; +pub const TRANSACTION_LANDING_TIME_SVM_METRIC: &str = "transaction_landing_time_seconds_svm"; +pub const TRANSACTION_LANDING_TIME_SVM_BUCKETS: &[f64; 16] = &[ + 0.1, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 3.75, 5.0, 10.0, 20.0, 40.0, +]; + #[derive(Debug, Clone)] pub struct MetricsLayerData { category: String, diff --git a/auction-server/src/server.rs b/auction-server/src/server.rs index 20c53bed..d8cbfccc 100644 --- a/auction-server/src/server.rs +++ b/auction-server/src/server.rs @@ -135,18 +135,13 @@ async fn fetch_access_tokens(db: &PgPool) -> HashMap Result { PrometheusBuilder::new() .set_buckets_for_metric( axum_prometheus::metrics_exporter_prometheus::Matcher::Full( - TRANSACTION_LANDING_TIME_SVM_METRIC.to_string(), + per_metrics::TRANSACTION_LANDING_TIME_SVM_METRIC.to_string(), ), - TRANSACTION_LANDING_TIME_SVM_BUCKETS, + per_metrics::TRANSACTION_LANDING_TIME_SVM_BUCKETS, ) .unwrap() .set_buckets(SECONDS_DURATION_BUCKETS)