Add metrics for rpc send-tx failures (#18156) (#18164)

(cherry picked from commit 64cff8c5a1)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
This commit is contained in:
mergify[bot]
2021-06-22 22:28:22 -06:00
committed by GitHub
parent aca66674d3
commit d9d6dd9ba6

View File

@ -66,7 +66,7 @@ use {
stake_history::StakeHistory, stake_history::StakeHistory,
system_instruction, system_instruction,
sysvar::stake_history, sysvar::stake_history,
transaction::{self, Transaction}, transaction::{self, Transaction, TransactionError},
}, },
solana_transaction_status::{ solana_transaction_status::{
EncodedConfirmedTransaction, Reward, RewardType, TransactionConfirmationStatus, EncodedConfirmedTransaction, Reward, RewardType, TransactionConfirmationStatus,
@ -2994,12 +2994,14 @@ pub mod rpc_full {
match meta.health.check() { match meta.health.check() {
RpcHealthStatus::Ok => (), RpcHealthStatus::Ok => (),
RpcHealthStatus::Unknown => { RpcHealthStatus::Unknown => {
inc_new_counter_info!("rpc-send-tx_health-unknown", 1);
return Err(RpcCustomError::NodeUnhealthy { return Err(RpcCustomError::NodeUnhealthy {
num_slots_behind: None, num_slots_behind: None,
} }
.into()); .into());
} }
RpcHealthStatus::Behind { num_slots } => { RpcHealthStatus::Behind { num_slots } => {
inc_new_counter_info!("rpc-send-tx_health-behind", 1);
return Err(RpcCustomError::NodeUnhealthy { return Err(RpcCustomError::NodeUnhealthy {
num_slots_behind: Some(num_slots), num_slots_behind: Some(num_slots),
} }
@ -3008,6 +3010,14 @@ pub mod rpc_full {
} }
if let (Err(err), logs, _) = preflight_bank.simulate_transaction(&transaction) { 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 { return Err(RpcCustomError::SendTransactionPreflightFailure {
message: format!("Transaction simulation failed: {}", err), message: format!("Transaction simulation failed: {}", err),
result: RpcSimulateTransactionResult { result: RpcSimulateTransactionResult {