reth_transaction_pool/
metrics.rs1use reth_metrics::{
4 metrics::{Counter, Gauge, Histogram},
5 Metrics,
6};
7
8#[derive(Metrics)]
10#[metrics(scope = "transaction_pool")]
11pub struct TxPoolMetrics {
12 pub(crate) inserted_transactions: Counter,
14 pub(crate) invalid_transactions: Counter,
16 pub(crate) removed_transactions: Counter,
18
19 pub(crate) pending_pool_transactions: Gauge,
21 pub(crate) pending_pool_size_bytes: Gauge,
23
24 pub(crate) basefee_pool_transactions: Gauge,
26 pub(crate) basefee_pool_size_bytes: Gauge,
28
29 pub(crate) queued_pool_transactions: Gauge,
31 pub(crate) queued_pool_size_bytes: Gauge,
33
34 pub(crate) blob_pool_transactions: Gauge,
36 pub(crate) blob_pool_size_bytes: Gauge,
38
39 pub(crate) total_transactions: Gauge,
41 pub(crate) total_legacy_transactions: Gauge,
43 pub(crate) total_eip2930_transactions: Gauge,
45 pub(crate) total_eip1559_transactions: Gauge,
47 pub(crate) total_eip4844_transactions: Gauge,
49 pub(crate) total_eip7702_transactions: Gauge,
51
52 pub(crate) performed_state_updates: Counter,
54
55 pub(crate) pending_transactions_evicted: Counter,
57 pub(crate) basefee_transactions_evicted: Counter,
59 pub(crate) blob_transactions_evicted: Counter,
61 pub(crate) queued_transactions_evicted: Counter,
63}
64
65#[derive(Metrics)]
67#[metrics(scope = "transaction_pool")]
68pub struct BlobStoreMetrics {
69 pub(crate) blobstore_failed_inserts: Counter,
71 pub(crate) blobstore_failed_deletes: Counter,
73 pub(crate) blobstore_byte_size: Gauge,
75 pub(crate) blobstore_entries: Gauge,
77}
78
79#[derive(Metrics)]
81#[metrics(scope = "transaction_pool")]
82pub struct MaintainPoolMetrics {
83 pub(crate) dirty_accounts: Gauge,
86 pub(crate) drift_count: Counter,
89 pub(crate) reinserted_transactions: Counter,
92 pub(crate) deleted_tracked_finalized_blobs: Counter,
94}
95
96impl MaintainPoolMetrics {
97 #[inline]
98 pub(crate) fn set_dirty_accounts_len(&self, count: usize) {
99 self.dirty_accounts.set(count as f64);
100 }
101
102 #[inline]
103 pub(crate) fn inc_reinserted_transactions(&self, count: usize) {
104 self.reinserted_transactions.increment(count as u64);
105 }
106
107 #[inline]
108 pub(crate) fn inc_deleted_tracked_blobs(&self, count: usize) {
109 self.deleted_tracked_finalized_blobs.increment(count as u64);
110 }
111
112 #[inline]
113 pub(crate) fn inc_drift(&self) {
114 self.drift_count.increment(1);
115 }
116}
117
118#[derive(Metrics)]
120#[metrics(scope = "transaction_pool")]
121pub struct AllTransactionsMetrics {
122 pub(crate) all_transactions_by_hash: Gauge,
124 pub(crate) all_transactions_by_id: Gauge,
126 pub(crate) all_transactions_by_all_senders: Gauge,
128 pub(crate) blob_transactions_nonce_gaps: Counter,
130 pub(crate) blob_base_fee: Gauge,
132 pub(crate) base_fee: Gauge,
134}
135
136#[derive(Metrics)]
138#[metrics(scope = "transaction_pool")]
139pub struct TxPoolValidationMetrics {
140 pub(crate) blob_validation_duration: Histogram,
142}
143
144#[derive(Metrics)]
146#[metrics(scope = "transaction_pool")]
147pub struct TxPoolValidatorMetrics {
148 pub(crate) inflight_validation_jobs: Gauge,
150}