From 460446b01bab79117a4d61c6e40965d3e72a9945 Mon Sep 17 00:00:00 2001 From: Maria Kuklina <101095419+kmd-fl@users.noreply.github.com> Date: Thu, 6 Apr 2023 13:04:33 +0200 Subject: [PATCH] feat(metrics): add rust-peer version info in prometheus metrics [fixes NET-422] (#1552) * add rust-peer version info in prometheus metrics --- crates/peer-metrics/src/info.rs | 17 +++++++++++++++++ crates/peer-metrics/src/lib.rs | 2 ++ particle-node/src/node.rs | 8 ++++++++ 3 files changed, 27 insertions(+) create mode 100644 crates/peer-metrics/src/info.rs diff --git a/crates/peer-metrics/src/info.rs b/crates/peer-metrics/src/info.rs new file mode 100644 index 0000000000..55febcc05b --- /dev/null +++ b/crates/peer-metrics/src/info.rs @@ -0,0 +1,17 @@ +use prometheus_client::metrics::info::Info; +use prometheus_client::registry::Registry; + +pub fn add_info_metrics( + registry: &mut Registry, + node_version: String, + air_version: String, + spell_version: String, +) { + let sub_registry = registry.sub_registry_with_prefix("rust_peer"); + let info = Info::new(vec![ + ("peer-version", node_version), + ("air-version", air_version), + ("spell-version", spell_version), + ]); + sub_registry.register("build", "Rust Peer Info", info); +} diff --git a/crates/peer-metrics/src/lib.rs b/crates/peer-metrics/src/lib.rs index 307af1d726..5030ca64e6 100644 --- a/crates/peer-metrics/src/lib.rs +++ b/crates/peer-metrics/src/lib.rs @@ -7,6 +7,7 @@ pub use connection_pool::ConnectionPoolMetrics; pub use connectivity::ConnectivityMetrics; pub use connectivity::Resolution; pub use dispatcher::DispatcherMetrics; +pub use info::add_info_metrics; pub use particle_executor::{FunctionKind, ParticleExecutorMetrics}; pub use services_metrics::{ ServiceCallStats, ServiceMemoryStat, ServiceType, ServicesMetrics, ServicesMetricsBackend, @@ -17,6 +18,7 @@ pub use vm_pool::VmPoolMetrics; mod connection_pool; mod connectivity; mod dispatcher; +mod info; mod network_protocol; mod particle_executor; mod services_metrics; diff --git a/particle-node/src/node.rs b/particle-node/src/node.rs index 192d084d5c..c61d277939 100644 --- a/particle-node/src/node.rs +++ b/particle-node/src/node.rs @@ -266,6 +266,14 @@ impl Node { spell_version, allowed_binaries, }; + if let Some(m) = metrics_registry.as_mut() { + peer_metrics::add_info_metrics( + m, + node_info.node_version.to_string(), + node_info.air_version.to_string(), + node_info.spell_version.clone(), + ); + } custom_service_functions.extend_one(make_peer_builtin(node_info)); custom_service_functions.into_iter().for_each(