//! This exposes reth's version information over prometheus. use metrics::gauge; /// Contains version information for the application. #[derive(Debug, Clone)] pub struct VersionInfo { /// The version of the application. pub version: &'static str, /// The build timestamp of the application. pub build_timestamp: &'static str, /// The cargo features enabled for the build. pub cargo_features: &'static str, /// The Git SHA of the build. pub git_sha: &'static str, /// The target triple for the build. pub target_triple: &'static str, /// The build profile (e.g., debug or release). pub build_profile: &'static str, } impl VersionInfo { /// This exposes reth's version information over prometheus. pub fn register_version_metrics(&self) { let labels: [(&str, &str); 6] = [ ("version", self.version), ("build_timestamp", self.build_timestamp), ("cargo_features", self.cargo_features), ("git_sha", self.git_sha), ("target_triple", self.target_triple), ("build_profile", self.build_profile), ]; let _gauge = gauge!("info", &labels); } }