Files
reth/crates/node/metrics/src/version.rs
Luca Provini 93ebdf292b feat: move metrics to its own crate (#9691)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-07-25 15:47:46 +00:00

36 lines
1.2 KiB
Rust

//! 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);
}
}