feature: add Blob pool metrics (#6373)

Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
Delweng
2024-02-03 22:07:01 +08:00
committed by GitHub
parent 72b7caa4c4
commit 57eef7ea03
4 changed files with 33 additions and 1 deletions

View File

@@ -31,6 +31,11 @@ pub struct TxPoolMetrics {
/// Total amount of memory used by the transactions in the queued sub-pool in bytes
pub(crate) queued_pool_size_bytes: Gauge,
/// Number of transactions in the blob sub-pool
pub(crate) blob_pool_transactions: Gauge,
/// Total amount of memory used by the transactions in the blob sub-pool in bytes
pub(crate) blob_pool_size_bytes: Gauge,
/// Number of all transactions of all sub-pools: pending + basefee + queued
pub(crate) total_transactions: Gauge,

View File

@@ -463,6 +463,8 @@ impl<T: TransactionOrdering> TxPool<T> {
self.metrics.basefee_pool_size_bytes.set(stats.basefee_size as f64);
self.metrics.queued_pool_transactions.set(stats.queued as f64);
self.metrics.queued_pool_size_bytes.set(stats.queued_size as f64);
self.metrics.blob_pool_transactions.set(stats.blob as f64);
self.metrics.blob_pool_size_bytes.set(stats.blob_size as f64);
self.metrics.total_transactions.set(stats.total as f64);
}

View File

@@ -15,7 +15,8 @@ The main difference between metrics and traces is therefore that metrics are sys
### How to add a metric
To add metrics use the [`metrics`][metrics] crate.
To add metrics use the [`metrics`][metrics] crate.
1. Add the code emitting the metric.
2. Add the metrics description in the crate's metrics describer module, e.g.: [stages metrics describer](https://github.com/paradigmxyz/reth/blob/main/crates/stages/src/metrics.rs).
3. Document the metric in this file.
@@ -83,6 +84,8 @@ This list may be non-exhaustive.
- `transaction_pool.basefee_pool_size_bytes`: Total amount of memory used by the transactions in the basefee sub-pool in bytes
- `transaction_pool.queued_pool_transactions`: Number of transactions in the queued sub-pool
- `transaction_pool.queued_pool_size_bytes`: Total amount of memory used by the transactions in the queued sub-pool in bytes
- `transaction_pool.blob_pool_transactions`: Number of transactions in the blob sub-pool
- `transaction_pool.blob_pool_size_bytes`: Total amount of memory used by the transactions in the blob sub-pool in bytes
#### Component: Network

View File

@@ -3499,6 +3499,17 @@
"legendFormat": "Queued pool size",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "builder",
"expr": "reth_transaction_pool_blob_pool_size_bytes{instance=~\"$instance\"}",
"legendFormat": "Blob pool size",
"range": true,
"refId": "D"
}
],
"title": "Subpool sizes in bytes",
@@ -3616,6 +3627,17 @@
"legendFormat": "Queued pool transactions",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "builder",
"expr": "reth_transaction_pool_blob_pool_transactions{instance=~\"$instance\"}",
"legendFormat": "Blob pool transactions",
"range": true,
"refId": "D"
}
],
"title": "Subpool transaction count",