diff --git a/Cargo.lock b/Cargo.lock
index 3e4dd33a52..dc6fb0b656 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5651,6 +5651,7 @@ dependencies = [
"pin-project",
"rand 0.8.5",
"reth-interfaces",
+ "reth-metrics",
"reth-network-api",
"reth-primitives",
"reth-provider",
diff --git a/crates/rpc/rpc/Cargo.toml b/crates/rpc/rpc/Cargo.toml
index 796c5ded0e..2b3d1631ab 100644
--- a/crates/rpc/rpc/Cargo.toml
+++ b/crates/rpc/rpc/Cargo.toml
@@ -22,6 +22,7 @@ reth-network-api = { workspace = true, features = ["test-utils"] }
reth-rpc-engine-api = { path = "../rpc-engine-api" }
reth-revm = { path = "../../revm" }
reth-tasks = { workspace = true }
+reth-metrics = { workspace = true }
# eth
revm = { workspace = true, features = [
diff --git a/crates/rpc/rpc/src/eth/cache.rs b/crates/rpc/rpc/src/eth/cache.rs
index 5e84fcd693..af0858cb4b 100644
--- a/crates/rpc/rpc/src/eth/cache.rs
+++ b/crates/rpc/rpc/src/eth/cache.rs
@@ -2,6 +2,10 @@
use futures::{future::Either, Stream, StreamExt};
use reth_interfaces::{provider::ProviderError, Result};
+use reth_metrics::{
+ metrics::{self, Gauge},
+ Metrics,
+};
use reth_primitives::{Block, Receipt, SealedBlock, TransactionSigned, H256};
use reth_provider::{BlockReader, CanonStateNotification, EvmEnvProvider, StateProviderFactory};
use reth_tasks::{TaskSpawner, TokioTaskExecutor};
@@ -104,9 +108,9 @@ impl EthStateCache {
let (to_service, rx) = unbounded_channel();
let service = EthStateCacheService {
provider,
- full_block_cache: BlockLruCache::with_memory_budget(max_block_bytes),
- receipts_cache: ReceiptsLruCache::with_memory_budget(max_receipt_bytes),
- evm_env_cache: EnvLruCache::with_memory_budget(max_env_bytes),
+ full_block_cache: BlockLruCache::new(max_block_bytes, "blocks"),
+ receipts_cache: ReceiptsLruCache::new(max_receipt_bytes, "receipts"),
+ evm_env_cache: EnvLruCache::new(max_env_bytes, "evm_env"),
action_tx: to_service.clone(),
action_rx: UnboundedReceiverStream::new(rx),
action_task_spawner,
@@ -274,7 +278,7 @@ where
Tasks: TaskSpawner + Clone + 'static,
{
fn on_new_block(&mut self, block_hash: H256, res: Result