[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