[pve-devel] superseded: [PATCH pve-cluster] fix #6615: rrd: only return populated entries
Hannes Laimer
h.laimer at proxmox.com
Fri Aug 8 17:08:48 CEST 2025
superseded-by:
https://lore.proxmox.com/pve-devel/20250808150814.110051-1-h.laimer@proxmox.com/T/#u
On 08.08.25 16:16, Hannes Laimer wrote:
> 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;
More information about the pve-devel
mailing list