Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Pruned and resubmitted metrics in transaction pool #6322

Merged
merged 2 commits into from
Jun 11, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions client/transaction-pool/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,7 @@ impl<PoolApi, Block> MaintainedTransactionPool for BasicPool<PoolApi, Block>
let revalidation_strategy = self.revalidation_strategy.clone();
let revalidation_queue = self.revalidation_queue.clone();
let ready_poll = self.ready_poll.clone();
let metrics = self.metrics.clone();

async move {
// We keep track of everything we prune so that later we won't add
Expand Down Expand Up @@ -528,6 +529,10 @@ impl<PoolApi, Block> MaintainedTransactionPool for BasicPool<PoolApi, Block>
pruned_log.extend(prune_known_txs_for_block(id.clone(), &*api, &*pool).await);
}

metrics.report(
|metrics| metrics.block_transactions_pruned.inc_by(pruned_log.len() as u64)
);

if let (true, Some(tree_route)) = (next_action.resubmit, tree_route) {
let mut resubmit_transactions = Vec::new();

Expand All @@ -551,6 +556,12 @@ impl<PoolApi, Block> MaintainedTransactionPool for BasicPool<PoolApi, Block>
block_transactions.into_iter().filter(|tx| {
let tx_hash = pool.hash_of(&tx);
let contains = pruned_log.contains(&tx_hash);

// need to count all transactions, not just filtered, here
metrics.report(
|metrics| metrics.block_transactions_resubmitted.inc()
NikVolf marked this conversation as resolved.
Show resolved Hide resolved
);

if !contains {
log::debug!(
target: "txpool",
Expand Down
16 changes: 16 additions & 0 deletions client/transaction-pool/src/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ pub struct Metrics {
pub validations_scheduled: Counter<U64>,
pub validations_finished: Counter<U64>,
pub validations_invalid: Counter<U64>,
pub block_transactions_pruned: Counter<U64>,
pub block_transactions_resubmitted: Counter<U64>,
}

impl Metrics {
Expand All @@ -74,6 +76,20 @@ impl Metrics {
)?,
registry,
)?,
block_transactions_pruned: register(
Counter::new(
"sub_txpool_block_transactions_pruned",
"Total number of transactions that was requested to be pruned by block events",
)?,
registry,
)?,
block_transactions_resubmitted: register(
Counter::new(
"sub_txpool_block_transactions_resubmitted",
"Total number of transactions that was requested to be resubmitted by block events",
)?,
registry,
)?,
})
}
}