mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-30 03:01:58 -04:00
feat(pruner): log stats as an ordered list of segments (#9370)
This commit is contained in:
@@ -280,8 +280,8 @@ impl<DB> NodeState<DB> {
|
||||
hash=?block.hash(),
|
||||
peers=self.num_connected_peers(),
|
||||
txs=block.body.len(),
|
||||
gas=format_gas(block.header.gas_used),
|
||||
gas_throughput=format_gas_throughput(block.header.gas_used, elapsed),
|
||||
gas=%format_gas(block.header.gas_used),
|
||||
gas_throughput=%format_gas_throughput(block.header.gas_used, elapsed),
|
||||
full=%format!("{:.1}%", block.header.gas_used as f64 * 100.0 / block.header.gas_limit as f64),
|
||||
base_fee=%format!("{:.2}gwei", block.header.base_fee_per_gas.unwrap_or(0) as f64 / constants::GWEI_TO_WEI as f64),
|
||||
blobs=block.header.blob_gas_used.unwrap_or(0) / constants::eip4844::DATA_GAS_PER_BLOB,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use alloy_primitives::BlockNumber;
|
||||
use reth_prune_types::{PruneProgress, PruneSegment};
|
||||
use std::{collections::BTreeMap, time::Duration};
|
||||
use std::time::Duration;
|
||||
|
||||
/// An event emitted by a [Pruner][crate::Pruner].
|
||||
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||
@@ -11,6 +11,6 @@ pub enum PrunerEvent {
|
||||
Finished {
|
||||
tip_block_number: BlockNumber,
|
||||
elapsed: Duration,
|
||||
stats: BTreeMap<PruneSegment, (PruneProgress, usize)>,
|
||||
stats: Vec<(PruneSegment, usize, PruneProgress)>,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -14,10 +14,7 @@ use reth_provider::{
|
||||
use reth_prune_types::{PruneLimiter, PruneMode, PruneProgress, PrunePurpose, PruneSegment};
|
||||
use reth_static_file_types::StaticFileSegment;
|
||||
use reth_tokio_util::{EventSender, EventStream};
|
||||
use std::{
|
||||
collections::BTreeMap,
|
||||
time::{Duration, Instant},
|
||||
};
|
||||
use std::time::{Duration, Instant};
|
||||
use tokio::sync::watch;
|
||||
use tracing::debug;
|
||||
|
||||
@@ -27,7 +24,7 @@ pub type PrunerResult = Result<PruneProgress, PrunerError>;
|
||||
/// The pruner type itself with the result of [`Pruner::run`]
|
||||
pub type PrunerWithResult<DB> = (Pruner<DB>, PrunerResult);
|
||||
|
||||
type PrunerStats = BTreeMap<PruneSegment, (PruneProgress, usize)>;
|
||||
type PrunerStats = Vec<(PruneSegment, usize, PruneProgress)>;
|
||||
|
||||
/// Pruning routine. Main pruning logic happens in [`Pruner::run`].
|
||||
#[derive(Debug)]
|
||||
@@ -241,7 +238,7 @@ impl<DB: Database> Pruner<DB> {
|
||||
if output.pruned > 0 {
|
||||
limiter.increment_deleted_entries_count_by(output.pruned);
|
||||
pruned += output.pruned;
|
||||
stats.insert(segment.segment(), (output.progress, output.pruned));
|
||||
stats.push((segment.segment(), output.pruned, output.progress));
|
||||
}
|
||||
} else {
|
||||
debug!(target: "pruner", segment = ?segment.segment(), ?purpose, "Nothing to prune for the segment");
|
||||
|
||||
Reference in New Issue
Block a user