pub use metered; pub mod metronome; pub use self::metronome::Metronome; #[cfg(feature = "runtime-metrics")] pub mod runtime; #[cfg(feature = "runtime-metrics")] pub use self::runtime::logger_hook; /// Export a dummy logger hook when the `runtime-metrics` feature is not enbaled. #[cfg(not(feature = "runtime-metrics"))] pub fn logger_hook() -> impl FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration) { |_logger_builder, _config| {} } /// This module exports Prometheus types an:d defines /// the [`Metrics`](metrics::Metrics) trait. pub mod metrics { pub use prometheus_endpoint as prometheus; pub trait Metrics: Default + Clone { fn try_register( registry: &prometheus::Registry, ) -> Result; fn register( registry: Option<&prometheus::Registry>, ) -> Result { match registry { None => Ok(Self::default()), Some(registry) => Self::try_register(registry), } } } impl Metrics for () { fn try_register( _registry: &prometheus::Registry, ) -> Result<(), prometheus::PrometheusError> { Ok(()) } } } #[cfg(all(feature = "runtime-metrics", not(feature = "runtime-benchmarks"), test))] mod tests;