diff --git a/Cargo.lock b/Cargo.lock index 9f85dacf891..55372cf6832 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11481,6 +11481,7 @@ name = "starknet_sequencer_metrics" version = "0.0.0" dependencies = [ "clap", + "lazy_static", "metrics 0.24.1", "num-traits", "regex", diff --git a/crates/starknet_sequencer_metrics/Cargo.toml b/crates/starknet_sequencer_metrics/Cargo.toml index c96da7e6c21..aff0e22a4d7 100644 --- a/crates/starknet_sequencer_metrics/Cargo.toml +++ b/crates/starknet_sequencer_metrics/Cargo.toml @@ -14,6 +14,7 @@ workspace = true [dependencies] clap.workspace = true +lazy_static.workspace = true metrics.workspace = true num-traits.workspace = true regex.workspace = true diff --git a/crates/starknet_sequencer_metrics/src/metric_definitions.rs b/crates/starknet_sequencer_metrics/src/metric_definitions.rs index 0cafb98a4fe..3dabd1eec32 100644 --- a/crates/starknet_sequencer_metrics/src/metric_definitions.rs +++ b/crates/starknet_sequencer_metrics/src/metric_definitions.rs @@ -1,3 +1,7 @@ +use std::collections::HashMap; + +use lazy_static::lazy_static; + use crate::metrics::{MetricCounter, MetricGauge, MetricScope}; #[cfg(test)] @@ -36,6 +40,18 @@ macro_rules! define_counter_metrics { $($name),* ),* ]; + + lazy_static! { + pub static ref METRIC_COUNTERS_MAP: HashMap<&'static str, &'static MetricCounter> = { + let mut map = HashMap::new(); + $( + $( + map.insert($key, &$name); + )* + )* + map + }; + } }; } @@ -70,6 +86,18 @@ macro_rules! define_gauge_metrics { $($name),* ),* ]; + + lazy_static! { + pub static ref METRIC_GAUGES_MAP: HashMap<&'static str, &'static MetricGauge> = { + let mut map = HashMap::new(); + $( + $( + map.insert($key, &$name); + )* + )* + map + }; + } }; } @@ -109,6 +137,24 @@ define_counter_metrics!( { ADDED_TRANSACTIONS_SUCCESS, "ADDED_TRANSACTIONS_SUCCESS", "Number of successfully added transactions", 0 }, { ADDED_TRANSACTIONS_FAILURE, "ADDED_TRANSACTIONS_FAILURE", "Number of faulty added transactions", 0 } }, + MetricScope::Infra => { + { BATCHER_MSGS_RECEIVED, "batcher_msgs_received", "Counter of messages received by batcher component", 0 }, + { BATCHER_MSGS_PROCESSED, "batcher_msgs_processed", "Counter of messages processed by batcher component", 0 }, + { CLASS_MANAGER_MSGS_RECEIVED, "fs_class_manager_msgs_received", "Counter of messages received by class manager component", 0 }, + { CLASS_MANAGER_MSGS_PROCESSED, "fs_class_manager_msgs_processed", "Counter of messages processed by class manager component", 0 }, + { GATEWAY_MSGS_RECEIVED, "gateway_msgs_received", "Counter of messages received by gateway component", 0 }, + { GATEWAY_MSGS_PROCESSED, "gateway_msgs_processed", "Counter of messages processed by gateway component", 0 }, + { L1_PROVIDER_MSGS_RECEIVED, "l1_provider_msgs_received", "Counter of messages received by L1 provider component", 0 }, + { L1_PROVIDER_MSGS_PROCESSED, "l1_provider_msgs_processed", "Counter of messages processed by L1 provider component", 0 }, + { MEMPOOL_MSGS_RECEIVED, "mempool_communication_wrapper_msgs_received", "Counter of messages received by mempool component", 0 }, + { MEMPOOL_MSGS_PROCESSED, "mempool_communication_wrapper_msgs_processed", "Counter of messages processed by mempool component", 0 }, + { MEMPOOL_P2P_MSGS_RECEIVED, "mempool_p2p_propagator_msgs_received", "Counter of messages received by mempool p2p component", 0 }, + { MEMPOOL_P2P_MSGS_PROCESSED, "mempool_p2p_propagator_msgs_processed", "Counter of messages processed by mempool p2p component", 0 }, + { SIERRA_COMPILER_MSGS_RECEIVED, "sierra_compiler_msgs_received", "Counter of messages received by sierra compiler component", 0 }, + { SIERRA_COMPILER_MSGS_PROCESSED, "sierra_compiler_msgs_processed", "Counter of messages processed by sierra compiler component", 0 }, + { STATE_SYNC_MSGS_RECEIVED, "state_sync_msgs_received", "Counter of messages received by state sync component", 0 }, + { STATE_SYNC_MSGS_PROCESSED, "state_sync_msgs_processed", "Counter of messages processed by state sync component", 0 }, + }, MetricScope::Network => { { MEMPOOL_P2P_NUM_SENT_MESSAGES, "apollo_mempool_num_sent_messages", "The number of messages sent by the mempool p2p component", 0 }, { MEMPOOL_P2P_NUM_RECEIVED_MESSAGES, "apollo_mempool_num_received_messages", "The number of messages received by the mempool p2p component", 0 }, diff --git a/crates/starknet_sequencer_metrics/src/metrics.rs b/crates/starknet_sequencer_metrics/src/metrics.rs index 7c51089c5b3..7d94a0b6419 100644 --- a/crates/starknet_sequencer_metrics/src/metrics.rs +++ b/crates/starknet_sequencer_metrics/src/metrics.rs @@ -9,6 +9,7 @@ use regex::{escape, Regex}; pub enum MetricScope { Batcher, HttpServer, + Infra, Network, PapyrusSync, }