Am 27.08.25 um 11:04 AM schrieb Hannes Laimer:
> RRD fetch can include the latest bucket before metrics are flushed,
> resulting in entries with only a timestamp.
> 
> This now only returns the last entry if it contains at least one value.
> 
> Signed-off-by: Hannes Laimer <[email protected]>

Tested-by: Fiona Ebner <[email protected]>
Reviewed-by: Fiona Ebner <[email protected]>

With minor style nits below, but could also be applied as is:

> ---
> v3, thanks @Dominik:
>  - only remove last entry if empty, not all empty ones
> 
>  src/PVE/RRD.pm | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/PVE/RRD.pm b/src/PVE/RRD.pm
> index 8fe1927..5a23889 100644
> --- a/src/PVE/RRD.pm
> +++ b/src/PVE/RRD.pm
> @@ -81,6 +81,12 @@ sub create_rrd_data {
>          push @$res, $entry;
>      }
>  
> +    # The newest bucket can still be empty right after a boundary.
> +    if (@$res) {

Style nit: I'd prefer scalar($res->@*) > 0 to be explicit

> +        # only contains 'time'
> +        pop @$res if (scalar(keys %{$res->[-1]}) == 1);

Style nit: we don't usually use parentheses for post-if
Style nit: I'd prefer $res->[-1]->%* so you don't have to mentally keep
track of the % when reading

> +    }
> +
>      return $res;
>  }
>  


_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to