#[derive(Debug, Clone)]
pub struct Metrics;
impl Metrics {
pub const L1_REORG_COUNT: &str = "kona_node_l1_reorg_count";
pub const DERIVATION_L1_ORIGIN: &str = "kona_node_derivation_l1_origin";
pub const DERIVATION_CRITICAL_ERROR: &str = "kona_node_derivation_critical_errors";
pub const SEQUENCER_STATE: &str = "kona_node_sequencer_state";
pub const SEQUENCER_ATTRIBUTES_BUILDER_DURATION: &str =
"kona_node_sequencer_attributes_build_duration";
pub const SEQUENCER_BLOCK_BUILDING_JOB_DURATION: &str =
"kona_node_sequencer_block_building_duration";
pub const SEQUENCER_CONDUCTOR_COMMITMENT_DURATION: &str =
"kona_node_sequencer_conductor_commitment_duration";
#[cfg(feature = "metrics")]
pub fn init() {
Self::describe();
Self::zero();
}
#[cfg(feature = "metrics")]
pub fn describe() {
metrics::describe_counter!(Self::L1_REORG_COUNT, metrics::Unit::Count, "L1 reorg count");
metrics::describe_counter!(Self::DERIVATION_L1_ORIGIN, "Derivation pipeline L1 origin");
metrics::describe_counter!(
Self::DERIVATION_CRITICAL_ERROR,
"Critical errors in the derivation pipeline"
);
metrics::describe_counter!(Self::SEQUENCER_STATE, "Tracks sequencer state flags");
metrics::describe_gauge!(
Self::SEQUENCER_ATTRIBUTES_BUILDER_DURATION,
"Duration of the sequencer attributes builder"
);
metrics::describe_gauge!(
Self::SEQUENCER_BLOCK_BUILDING_JOB_DURATION,
"Duration of the sequencer block building job"
);
metrics::describe_gauge!(
Self::SEQUENCER_CONDUCTOR_COMMITMENT_DURATION,
"Duration of the sequencer conductor commitment"
);
}
#[cfg(feature = "metrics")]
pub fn zero() {
kona_macros::set!(counter, Self::L1_REORG_COUNT, 0);
kona_macros::set!(counter, Self::DERIVATION_CRITICAL_ERROR, 0);
}
}