From 64cff8c5a1a01ae93078114df6d6192f64705c89 Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Tue, 22 Jun 2021 19:54:52 -0600 Subject: [PATCH] Add metrics for rpc send-tx failures (#18156) --- rpc/src/rpc.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/rpc/src/rpc.rs b/rpc/src/rpc.rs index 34dbede52e..e0db17e432 100644 --- a/rpc/src/rpc.rs +++ b/rpc/src/rpc.rs @@ -66,7 +66,7 @@ use { stake_history::StakeHistory, system_instruction, sysvar::stake_history, - transaction::{self, Transaction}, + transaction::{self, Transaction, TransactionError}, }, solana_transaction_status::{ EncodedConfirmedTransaction, Reward, RewardType, TransactionConfirmationStatus, @@ -2993,12 +2993,14 @@ pub mod rpc_full { match meta.health.check() { RpcHealthStatus::Ok => (), RpcHealthStatus::Unknown => { + inc_new_counter_info!("rpc-send-tx_health-unknown", 1); return Err(RpcCustomError::NodeUnhealthy { num_slots_behind: None, } .into()); } RpcHealthStatus::Behind { num_slots } => { + inc_new_counter_info!("rpc-send-tx_health-behind", 1); return Err(RpcCustomError::NodeUnhealthy { num_slots_behind: Some(num_slots), } @@ -3007,6 +3009,14 @@ pub mod rpc_full { } if let (Err(err), logs, _) = preflight_bank.simulate_transaction(&transaction) { + match err { + TransactionError::BlockhashNotFound => { + inc_new_counter_info!("rpc-send-tx_err-blockhash-not-found", 1); + } + _ => { + inc_new_counter_info!("rpc-send-tx_err-other", 1); + } + } return Err(RpcCustomError::SendTransactionPreflightFailure { message: format!("Transaction simulation failed: {}", err), result: RpcSimulateTransactionResult {