diff --git a/crates/transaction-pool/src/metrics.rs b/crates/transaction-pool/src/metrics.rs index b5d339c5aa..9076829427 100644 --- a/crates/transaction-pool/src/metrics.rs +++ b/crates/transaction-pool/src/metrics.rs @@ -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, diff --git a/crates/transaction-pool/src/pool/txpool.rs b/crates/transaction-pool/src/pool/txpool.rs index 227291e5bc..264c6172bd 100644 --- a/crates/transaction-pool/src/pool/txpool.rs +++ b/crates/transaction-pool/src/pool/txpool.rs @@ -463,6 +463,8 @@ impl TxPool { 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); } diff --git a/docs/design/metrics.md b/docs/design/metrics.md index 38e68a4dee..110c923f3d 100644 --- a/docs/design/metrics.md +++ b/docs/design/metrics.md @@ -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 diff --git a/etc/grafana/dashboards/overview.json b/etc/grafana/dashboards/overview.json index 333288987e..2618e8e056 100644 --- a/etc/grafana/dashboards/overview.json +++ b/etc/grafana/dashboards/overview.json @@ -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",