From f0c26122e0f461785f9a1860f6cdf12c794c6fb0 Mon Sep 17 00:00:00 2001 From: Lukas Wagner Date: Wed, 31 Jan 2024 16:19:16 +0100 Subject: [PATCH] rrd_cache: use `proxmox-rrd` from `proxmox` workspace and use renamed structs from proxmox-rrd Signed-off-by: Lukas Wagner [w.bumiller@proxmox.com: squash "and use renamed structs from proxmox-rrd" as build fix] [w.bumiller@proxmox.com: bump d/control] Signed-off-by: Wolfgang Bumiller --- Cargo.toml | 4 ++-- debian/control | 2 +- src/rrd_cache.rs | 26 +++++++++++++------------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 78b547a3..6255a6a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,6 @@ members = [ "proxmox-backup-client", "proxmox-file-restore", "proxmox-restore-daemon", - "proxmox-rrd", "pxar-bin", ] @@ -70,6 +69,7 @@ proxmox-openid = "0.10.0" proxmox-rest-server = { version = "0.5.1", features = [ "templates" ] } # some use "cli", some use "cli" and "server", pbs-config uses nothing proxmox-router = { version = "2.0.0", default_features = false } +proxmox-rrd = { version = "0.1" } # everything but pbs-config and pbs-client use "api-macro" proxmox-schema = "2.0.0" proxmox-section-config = "2" @@ -98,7 +98,6 @@ pbs-key-config = { path = "pbs-key-config" } pbs-pxar-fuse = { path = "pbs-pxar-fuse" } pbs-tape = { path = "pbs-tape" } pbs-tools = { path = "pbs-tools" } -proxmox-rrd = { path = "proxmox-rrd" } # regular crates anyhow = "1.0" @@ -260,6 +259,7 @@ proxmox-rrd.workspace = true #proxmox-openid = { path = "../proxmox/proxmox-openid" } #proxmox-rest-server = { path = "../proxmox/proxmox-rest-server" } #proxmox-router = { path = "../proxmox/proxmox-router" } +#proxmox-rrd = { path = "../proxmox/proxmox-rrd" } #proxmox-schema = { path = "../proxmox/proxmox-schema" } #proxmox-section-config = { path = "../proxmox/proxmox-section-config" } #proxmox-serde = { path = "../proxmox/proxmox-serde" } diff --git a/debian/control b/debian/control index 30d11db0..09186e40 100644 --- a/debian/control +++ b/debian/control @@ -79,6 +79,7 @@ Build-Depends: bash-completion, librust-proxmox-router-2+cli-dev, librust-proxmox-router-2+default-dev, librust-proxmox-router-2+server-dev, + librust-proxmox-rrd-0.1+default-dev, librust-proxmox-schema-2+api-macro-dev, librust-proxmox-schema-2+default-dev, librust-proxmox-section-config-2+default-dev, @@ -104,7 +105,6 @@ Build-Depends: bash-completion, librust-rustyline-9+default-dev, librust-serde-1+default-dev, librust-serde-1+derive-dev, - librust-serde-cbor-0.11+default-dev (>= 0.11.1-~~), librust-serde-json-1+default-dev, librust-serde-plain-1+default-dev, librust-siphasher-0.3+default-dev, diff --git a/src/rrd_cache.rs b/src/rrd_cache.rs index 60a4cc87..02bb9372 100644 --- a/src/rrd_cache.rs +++ b/src/rrd_cache.rs @@ -9,8 +9,8 @@ use std::path::Path; use anyhow::{format_err, Error}; use once_cell::sync::OnceCell; -use proxmox_rrd::rrd::{CF, DST, RRD}; -use proxmox_rrd::RRDCache; +use proxmox_rrd::rrd::{AggregationFn, DataSourceType, Database}; +use proxmox_rrd::Cache; use proxmox_sys::fs::CreateOptions; use pbs_api_types::{RRDMode, RRDTimeFrame}; @@ -18,10 +18,10 @@ use pbs_buildcfg::PROXMOX_BACKUP_STATE_DIR_M; const RRD_CACHE_BASEDIR: &str = concat!(PROXMOX_BACKUP_STATE_DIR_M!(), "/rrdb"); -static RRD_CACHE: OnceCell = OnceCell::new(); +static RRD_CACHE: OnceCell = OnceCell::new(); /// Get the RRD cache instance -pub fn get_rrd_cache() -> Result<&'static RRDCache, Error> { +pub fn get_rrd_cache() -> Result<&'static Cache, Error> { RRD_CACHE .get() .ok_or_else(|| format_err!("RRD cache not initialized!")) @@ -30,7 +30,7 @@ pub fn get_rrd_cache() -> Result<&'static RRDCache, Error> { /// Initialize the RRD cache instance /// /// Note: Only a single process must do this (proxmox-backup-proxy) -pub fn initialize_rrd_cache() -> Result<&'static RRDCache, Error> { +pub fn initialize_rrd_cache() -> Result<&'static Cache, Error> { let backup_user = pbs_config::backup_user()?; let file_options = CreateOptions::new() @@ -43,7 +43,7 @@ pub fn initialize_rrd_cache() -> Result<&'static RRDCache, Error> { let apply_interval = 30.0 * 60.0; // 30 minutes - let cache = RRDCache::new( + let cache = Cache::new( RRD_CACHE_BASEDIR, Some(file_options), Some(dir_options), @@ -58,8 +58,8 @@ pub fn initialize_rrd_cache() -> Result<&'static RRDCache, Error> { Ok(RRD_CACHE.get().unwrap()) } -fn load_callback(path: &Path, _rel_path: &str, dst: DST) -> RRD { - match RRD::load(path, true) { +fn load_callback(path: &Path, _rel_path: &str, dst: DataSourceType) -> Database { + match Database::load(path, true) { Ok(rrd) => rrd, Err(err) => { if err.kind() != std::io::ErrorKind::NotFound { @@ -69,7 +69,7 @@ fn load_callback(path: &Path, _rel_path: &str, dst: DST) -> RRD { err ); } - RRDCache::create_proxmox_backup_default_rrd(dst) + Cache::create_proxmox_backup_default_rrd(dst) } } } @@ -93,8 +93,8 @@ pub fn extract_rrd_data( }; let cf = match mode { - RRDMode::Max => CF::Maximum, - RRDMode::Average => CF::Average, + RRDMode::Max => AggregationFn::Maximum, + RRDMode::Average => AggregationFn::Average, }; let rrd_cache = get_rrd_cache()?; @@ -114,7 +114,7 @@ pub fn rrd_sync_journal() { pub fn rrd_update_gauge(name: &str, value: f64) { if let Ok(rrd_cache) = get_rrd_cache() { let now = proxmox_time::epoch_f64(); - if let Err(err) = rrd_cache.update_value(name, now, value, DST::Gauge) { + if let Err(err) = rrd_cache.update_value(name, now, value, DataSourceType::Gauge) { log::error!("rrd::update_value '{}' failed - {}", name, err); } } @@ -124,7 +124,7 @@ pub fn rrd_update_gauge(name: &str, value: f64) { pub fn rrd_update_derive(name: &str, value: f64) { if let Ok(rrd_cache) = get_rrd_cache() { let now = proxmox_time::epoch_f64(); - if let Err(err) = rrd_cache.update_value(name, now, value, DST::Derive) { + if let Err(err) = rrd_cache.update_value(name, now, value, DataSourceType::Derive) { log::error!("rrd::update_value '{}' failed - {}", name, err); } }