zebra_state/service/finalized_state/zebra_db/
metrics.rs
1use zebra_chain::block::{self, Block};
4
5pub(crate) fn block_precommit_metrics(block: &Block, hash: block::Hash, height: block::Height) {
10 let transaction_count = block.transactions.len();
11 let transparent_prevout_count = block
12 .transactions
13 .iter()
14 .flat_map(|t| t.inputs().iter())
15 .count()
16 - 1;
18 let transparent_newout_count = block
19 .transactions
20 .iter()
21 .flat_map(|t| t.outputs().iter())
22 .count();
23
24 let sprout_nullifier_count = block.sprout_nullifiers().count();
25 let sapling_nullifier_count = block.sapling_nullifiers().count();
26 let orchard_nullifier_count = block.orchard_nullifiers().count();
27
28 tracing::debug!(
29 ?hash,
30 ?height,
31 transaction_count,
32 transparent_prevout_count,
33 transparent_newout_count,
34 sprout_nullifier_count,
35 sapling_nullifier_count,
36 orchard_nullifier_count,
37 "preparing to commit finalized {:?}block",
38 if height.is_min() { "genesis " } else { "" }
39 );
40
41 metrics::counter!("state.finalized.block.count").increment(1);
42 metrics::gauge!("state.finalized.block.height").set(height.0 as f64);
43
44 metrics::counter!("state.finalized.cumulative.transactions")
45 .increment(transaction_count as u64);
46
47 metrics::counter!("state.finalized.cumulative.sprout_nullifiers")
48 .increment(sprout_nullifier_count as u64);
49 metrics::counter!("state.finalized.cumulative.sapling_nullifiers")
50 .increment(sapling_nullifier_count as u64);
51 metrics::counter!("state.finalized.cumulative.orchard_nullifiers")
52 .increment(orchard_nullifier_count as u64);
53
54 if !height.is_min() {
56 metrics::counter!("state.finalized.cumulative.transparent_prevouts")
57 .increment(transparent_prevout_count as u64);
58 metrics::counter!("state.finalized.cumulative.transparent_newouts")
59 .increment(transparent_newout_count as u64);
60 }
61}