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.lai...@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 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel