diff --git a/crates/node-core/src/metrics/prometheus_exporter.rs b/crates/node-core/src/metrics/prometheus_exporter.rs index b7a3ba7015c3..7ab377c33731 100644 --- a/crates/node-core/src/metrics/prometheus_exporter.rs +++ b/crates/node-core/src/metrics/prometheus_exporter.rs @@ -1,6 +1,6 @@ //! Prometheus exporter -use crate::metrics::version_metrics::register_version_metrics; +use crate::metrics::version_metrics::{register_version_metrics, VersionInfo}; use eyre::WrapErr; use futures::{future::FusedFuture, FutureExt}; use http::Response; @@ -151,7 +151,7 @@ where process.describe(); describe_memory_stats(); describe_io_stats(); - register_version_metrics(); + register_version_metrics(VersionInfo::default()); Ok(()) } diff --git a/crates/node-core/src/metrics/version_metrics.rs b/crates/node-core/src/metrics/version_metrics.rs index 253e759dbb33..729db3310b12 100644 --- a/crates/node-core/src/metrics/version_metrics.rs +++ b/crates/node-core/src/metrics/version_metrics.rs @@ -1,18 +1,40 @@ //! This exposes reth's version information over prometheus. -use crate::version::{build_profile_name, VERGEN_GIT_SHA}; +use crate::version::{ build_profile_name, VERGEN_GIT_SHA }; use metrics::gauge; -const LABELS: [(&str, &str); 6] = [ - ("version", env!("CARGO_PKG_VERSION")), - ("build_timestamp", env!("VERGEN_BUILD_TIMESTAMP")), - ("cargo_features", env!("VERGEN_CARGO_FEATURES")), - ("git_sha", VERGEN_GIT_SHA), - ("target_triple", env!("VERGEN_CARGO_TARGET_TRIPLE")), - ("build_profile", build_profile_name()), -]; +pub struct VersionInfo { + version: &str, + build_timestamp: &str, + cargo_features: &str, + git_sha: &str, + target_triple: &str, + build_profile: &str, +} + +impl Default for VersionInfo { + fn default() -> Self { + VersionInfo { + version: env!("CARGO_PKG_VERSION"), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP"), + cargo_features: env!("VERGEN_CARGO_FEATURES"), + git_sha: env!("VERGEN_GIT_SHA"), + target_triple: env!("VERGEN_CARGO_TARGET_TRIPLE"), + build_profile: build_profile_name(), + } + } +} /// This exposes reth's version information over prometheus. -pub fn register_version_metrics() { - let _gauge = gauge!("info", &LABELS); +pub fn register_version_metrics(version_info: VersionInfo) { + let labels: [(&str, &str); 6] = [ + ("version", version_info.version), + ("build_timestamp", version_info.build_timestamp), + ("cargo_features", version_info.cargo_features), + ("git_sha", version_info.git_sha), + ("target_triple", version_info.target_triple), + ("build_profile", version_info.build_profile), + ]; + + let _gauge = gauge!("info", &labels); }