]> git.proxmox.com Git - proxmox-backup.git/commitdiff
proxmox-rrd: pass time and value to update function
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 14 Oct 2021 06:11:04 +0000 (08:11 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 14 Oct 2021 06:12:56 +0000 (08:12 +0200)
proxmox-rrd/src/cache.rs
src/rrd_cache.rs

index 5225bd49639384bde591b7cb9907fc27faac2767..35716fc0cc0a467fcd4f36f24b6b93e4417777c1 100644 (file)
@@ -244,24 +244,23 @@ impl RRDCache {
     pub fn update_value(
         &self,
         rel_path: &str,
+        time: f64,
         value: f64,
         dst: DST,
     ) -> Result<(), Error> {
 
         let mut state = self.state.write().unwrap(); // block other writers
 
-        let now = proxmox_time::epoch_f64();
-
-        if (now - state.last_journal_flush) > self.apply_interval {
+        if (time - state.last_journal_flush) > self.apply_interval {
             if let Err(err) = self.apply_journal_locked(&mut state) {
                 log::error!("apply journal failed: {}", err);
             }
         }
 
-        Self::append_journal_entry(&mut state, now, value, dst, rel_path)?;
+        Self::append_journal_entry(&mut state, time, value, dst, rel_path)?;
 
         if let Some(rrd) = state.rrd_map.get_mut(rel_path) {
-            rrd.update(now, value);
+            rrd.update(time, value);
         } else {
             let mut path = self.basedir.clone();
             path.push(rel_path);
@@ -269,7 +268,7 @@ impl RRDCache {
 
             let mut rrd = Self::load_rrd(&path, dst);
 
-            rrd.update(now, value);
+            rrd.update(time, value);
             state.rrd_map.insert(rel_path.into(), rrd);
         }
 
index 7c7c81ab7924b1e074ec93156a89f7b5c295e125..198df38a9400580d6323e23c59aef0d023902338 100644 (file)
@@ -76,7 +76,8 @@ pub fn extract_rrd_data(
 /// Update RRD Gauge values
 pub fn rrd_update_gauge(name: &str, value: f64) {
     if let Ok(rrd_cache) = get_rrd_cache() {
-        if let Err(err) = rrd_cache.update_value(name, value, DST::Gauge) {
+        let now = proxmox_time::epoch_f64();
+        if let Err(err) = rrd_cache.update_value(name, now, value, DST::Gauge) {
             log::error!("rrd::update_value '{}' failed - {}", name, err);
         }
     }
@@ -85,7 +86,8 @@ pub fn rrd_update_gauge(name: &str, value: f64) {
 /// Update RRD Derive values
 pub fn rrd_update_derive(name: &str, value: f64) {
     if let Ok(rrd_cache) = get_rrd_cache() {
-        if let Err(err) = rrd_cache.update_value(name, value, DST::Derive) {
+        let now = proxmox_time::epoch_f64();
+        if let Err(err) = rrd_cache.update_value(name, now, value, DST::Derive) {
             log::error!("rrd::update_value '{}' failed - {}", name, err);
         }
     }