Adding ALTs counter
This commit is contained in:
parent
04b1a061e2
commit
dda7329282
|
@ -1,5 +1,6 @@
|
|||
use dashmap::DashMap;
|
||||
use itertools::Itertools;
|
||||
use prometheus::{IntGauge, register_int_gauge, opts};
|
||||
use solana_address_lookup_table_program::state::AddressLookupTable;
|
||||
use solana_rpc_client::nonblocking::rpc_client::RpcClient;
|
||||
use solana_sdk::{
|
||||
|
@ -9,6 +10,10 @@ use solana_sdk::{
|
|||
use std::sync::Arc;
|
||||
|
||||
use crate::block_info::TransactionAccount;
|
||||
lazy_static::lazy_static! {
|
||||
static ref ALTS_IN_STORE: IntGauge =
|
||||
register_int_gauge!(opts!("block_arrived", "block seen with n transactions")).unwrap();
|
||||
}
|
||||
|
||||
pub struct ALTStore {
|
||||
rpc_client: Arc<RpcClient>,
|
||||
|
@ -36,7 +41,9 @@ impl ALTStore {
|
|||
.await;
|
||||
if let Ok(account_res) = response {
|
||||
if let Some(account) = account_res.value {
|
||||
self.map.insert(*alt, account.data);
|
||||
if self.map.insert(*alt, account.data).is_none() {
|
||||
ALTS_IN_STORE.inc();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
12
src/main.rs
12
src/main.rs
|
@ -44,7 +44,6 @@ lazy_static::lazy_static! {
|
|||
pub async fn start_tracking_banking_stage_errors(
|
||||
grpc_address: String,
|
||||
map_of_infos: Arc<DashMap<(String, u64), TransactionInfo>>,
|
||||
slot_by_errors: Arc<DashMap<u64, u64>>,
|
||||
slot: Arc<AtomicU64>,
|
||||
_subscribe_to_slots: bool,
|
||||
) {
|
||||
|
@ -104,14 +103,6 @@ pub async fn start_tracking_banking_stage_errors(
|
|||
// }
|
||||
BANKING_STAGE_ERROR_EVENT_COUNT.inc();
|
||||
let sig = transaction.signature.to_string();
|
||||
match slot_by_errors.get_mut(&transaction.slot) {
|
||||
Some(mut value) => {
|
||||
*value += 1;
|
||||
}
|
||||
None => {
|
||||
slot_by_errors.insert(transaction.slot, 1);
|
||||
}
|
||||
}
|
||||
match map_of_infos.get_mut(&(sig.clone(), transaction.slot)) {
|
||||
Some(mut x) => {
|
||||
let tx_info = x.value_mut();
|
||||
|
@ -261,7 +252,6 @@ async fn main() {
|
|||
|
||||
let grpc_block_addr = args.grpc_address_to_fetch_blocks;
|
||||
let map_of_infos = Arc::new(DashMap::<(String, u64), TransactionInfo>::new());
|
||||
let slot_by_errors = Arc::new(DashMap::<u64, u64>::new());
|
||||
|
||||
let postgres = postgres::Postgres::new().await;
|
||||
let slot = Arc::new(AtomicU64::new(0));
|
||||
|
@ -273,13 +263,11 @@ async fn main() {
|
|||
.map(|address| {
|
||||
let address = address.clone();
|
||||
let map_of_infos = map_of_infos.clone();
|
||||
let slot_by_errors = slot_by_errors.clone();
|
||||
let slot = slot.clone();
|
||||
tokio::spawn(async move {
|
||||
start_tracking_banking_stage_errors(
|
||||
address,
|
||||
map_of_infos,
|
||||
slot_by_errors,
|
||||
slot,
|
||||
no_block_subscription,
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue