[pve-devel] [PATCH pve-cluster] fix #6615: rrd: only return populated entries

Hannes Laimer h.laimer at proxmox.com
Fri Aug 8 16:16:33 CEST 2025


RRD fetch can include the latest bucket before metrics are flushed,
resulting in entries with only a timestamp.

This now only returns entries with at least one value.

Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
 src/PVE/RRD.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/PVE/RRD.pm b/src/PVE/RRD.pm
index 8fe1927..41737ee 100644
--- a/src/PVE/RRD.pm
+++ b/src/PVE/RRD.pm
@@ -67,10 +67,12 @@ sub create_rrd_data {
     for my $line (@$data) {
         my $entry = { 'time' => $start };
         $start += $step;
+        my $has_value = 0;
         for (my $i = 0; $i < $fields; $i++) {
             my $name = $names->[$i];
             if (defined(my $val = $line->[$i])) {
                 $entry->{$name} = $val;
+                $has_value = 1 if !$has_value;
                 $entry->{memavailable} = $val
                     if $is_node && $name eq 'memfree' && !exists($entry->{memavailable});
             } else {
@@ -78,7 +80,8 @@ sub create_rrd_data {
                 # maybe make this configurable?
             }
         }
-        push @$res, $entry;
+        # Do not return entries that only contain 'time' without any metric values
+        push @$res, $entry if $has_value;
     }
 
     return $res;
-- 
2.47.2





More information about the pve-devel mailing list