From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 4FB6E1FF13C for ; Thu, 30 Apr 2026 10:22:16 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 21BD91ED47; Thu, 30 Apr 2026 10:22:16 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 30 Apr 2026 10:21:42 +0200 Message-Id: To: "Daniel Kral" , Subject: Re: [PATCH pve-ha-manager v2 5/6] api: status: add load imbalance to status From: "Dominik Rusovac" X-Mailer: aerc 0.20.0 References: <20260429122051.179485-1-d.rusovac@proxmox.com> <20260429122051.179485-6-d.rusovac@proxmox.com> In-Reply-To: X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1777537203625 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.393 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: KILU2AV2IHWXUZFDCKUYNQ7VO2CI3ZMJ X-Message-ID-Hash: KILU2AV2IHWXUZFDCKUYNQ7VO2CI3ZMJ X-MailFrom: d.rusovac@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: ah ok, I misunderstood what you wanted. my bad. will fix that in a v3. On Thu Apr 30, 2026 at 9:46 AM CEST, Daniel Kral wrote: > On Wed Apr 29, 2026 at 2:20 PM CEST, Dominik Rusovac wrote: >> This is a very basic measure to enable users to detect the prevailing >> load imbalance in the UI, which atm reveals nothing about the latter. >> >> imo, enabling users to track how the load imbalance changed over time >> (using RRD graphs, for example) should be considered, in the long run. >> >> Signed-off-by: Dominik Rusovac >> --- >> >> Notes: >> changes since v1: >> * check whether load balancing system is enabled >> * binding $crs->{ha} to $mode >> >> src/PVE/API2/HA/Status.pm | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/src/PVE/API2/HA/Status.pm b/src/PVE/API2/HA/Status.pm >> index 4894f3b..8dadff3 100644 >> --- a/src/PVE/API2/HA/Status.pm >> +++ b/src/PVE/API2/HA/Status.pm >> @@ -199,8 +199,11 @@ __PACKAGE__->register_method({ >> } >> my $datacenter_config =3D eval { cfs_read_file('datacenter.= cfg') } // {}; >> if (my $crs =3D $datacenter_config->{crs}) { >> - $extra_status .=3D " - $crs->{ha} load CRS" >> - if $crs->{ha} && $crs->{ha} ne 'basic'; >> + my $mode =3D $crs->{ha}; >> + $extra_status .=3D >> + " - $mode load CRS " >> + . sprintf("(load imbalance: %.2f", 100 * $status->{= imbalance}) . "%)" >> + if $crs->{'ha-auto-rebalance'} && $mode && $mode ne= 'basic'; > > Sorry, I missed that bit in the previous review, but this should be > something like > > my $mode =3D $crs->{ha}; > $extra_status .=3D " $mode load CRS" if $mode && $mode ne 'basic'; > $extra_status .=3D > sprintf(" (load imbalance: %.2f", 100 * $status->{imbalance}) . "= %)" > if $crs->{'ha-auto-rebalance'} && $mode && $mode ne 'basic'; > > Otherwise the CRS mode wouldn't be visible anymore if auto rebalancing > is not enabled. > >> } >> my $time_str =3D localtime($status->{timestamp}); >> my $status_text =3D "$master ($status_str, $time_str)$extra= _status";