diff --git a/crates/blockchain-tree/src/blockchain_tree.rs b/crates/blockchain-tree/src/blockchain_tree.rs index 6c5f2fe3d6..ce92f48b28 100644 --- a/crates/blockchain-tree/src/blockchain_tree.rs +++ b/crates/blockchain-tree/src/blockchain_tree.rs @@ -1102,6 +1102,11 @@ impl BlockchainTree pub(crate) fn update_chains_metrics(&mut self) { let height = self.canonical_chain().tip().number; + let longest_sidechain_height = self.chains.values().map(|chain| chain.tip().number).max(); + if let Some(longest_sidechain_height) = longest_sidechain_height { + self.metrics.longest_sidechain_height.set(longest_sidechain_height as f64); + } + self.metrics.sidechains.set(self.chains.len() as f64); self.metrics.canonical_chain_height.set(height as f64); if let Some(metrics_tx) = self.sync_metrics_tx.as_mut() { diff --git a/crates/blockchain-tree/src/metrics.rs b/crates/blockchain-tree/src/metrics.rs index 864fac9474..fd48307d4b 100644 --- a/crates/blockchain-tree/src/metrics.rs +++ b/crates/blockchain-tree/src/metrics.rs @@ -13,6 +13,8 @@ pub struct TreeMetrics { pub canonical_chain_height: Gauge, /// The number of reorgs pub reorgs: Counter, + /// Longest sidechain height + pub longest_sidechain_height: Gauge, } /// Metrics for the blockchain tree block buffer