Add kernel changed metric
This commit is contained in:
22
src/main.rs
22
src/main.rs
@@ -174,14 +174,14 @@ async fn main() {
|
||||
|
||||
async fn metrics() -> Result<(StatusCode, impl IntoResponse), (StatusCode, impl IntoResponse)> {
|
||||
let nix_store_paths = HashMap::from([
|
||||
("current_system", NixStorePath::from_str_symlink("/run/current-system")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("current_system_kernel", NixStorePath::from_str_symlink("/run/current-system/kernel")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("booted_system", NixStorePath::from_str_symlink("/run/booted-system")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("booted_system_kernel", NixStorePath::from_str_symlink("/run/booted-system/kernel")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("current_system", NixStorePath::from_str_symlink("/run/current-system")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("current_system_kernel", NixStorePath::from_str_symlink("/run/current-system/kernel")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("booted_system", NixStorePath::from_str_symlink("/run/booted-system")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
("booted_system_kernel", NixStorePath::from_str_symlink("/run/booted-system/kernel")
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?),
|
||||
]);
|
||||
|
||||
let mut out = String::new();
|
||||
@@ -190,6 +190,12 @@ async fn metrics() -> Result<(StatusCode, impl IntoResponse), (StatusCode, impl
|
||||
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err))?.as_str());
|
||||
}
|
||||
|
||||
out.push_str(format!("nixos_current_system_kernel_is_booted_system_kernel{{}} {}", (
|
||||
nix_store_paths.get("current_system_kernel").ok_or_else(|| (StatusCode::INTERNAL_SERVER_ERROR, String::from("")))?.hash
|
||||
== nix_store_paths.get("booted_system_kernel").ok_or_else(|| (StatusCode::INTERNAL_SERVER_ERROR, String::from("")))?.hash
|
||||
) as i32).as_str()
|
||||
);
|
||||
|
||||
return Ok((
|
||||
StatusCode::OK,
|
||||
out,
|
||||
|
Reference in New Issue
Block a user