From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 486958AA35 for ; Fri, 21 Oct 2022 08:57:44 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2DE071E493 for ; Fri, 21 Oct 2022 08:57:44 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 21 Oct 2022 08:57:43 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 56A5A44AEF for ; Fri, 21 Oct 2022 08:57:37 +0200 (CEST) Message-ID: <8f6f8f15-31bd-f6c5-44e3-09b64e749761@proxmox.com> Date: Fri, 21 Oct 2022 08:57:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 From: Stefan Sterz To: Thomas Lamprecht , Proxmox VE development discussion References: <20221020071704.46578-1-s.sterz@proxmox.com> <47cbf07a-d82f-618e-7d11-28d49ebdffb6@proxmox.com> Content-Language: en-US In-Reply-To: <47cbf07a-d82f-618e-7d11-28d49ebdffb6@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.112 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.001 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [pools.pm] Subject: Re: [pve-devel] [PATCH manager v3 1/2] api: ceph: add applications of each pool to the lspools endpoint X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Oct 2022 06:57:44 -0000 On 10/20/22 14:55, Thomas Lamprecht wrote: > Am 20/10/2022 um 09:17 schrieb Stefan Sterz: >> since ceph luminous (ceph 12) pools need to be associated with at >> least one applicaton. expose this information here too so that clients >> of this endpoint can use it >> >> Signed-off-by: Stefan Sterz >> --- >> v3: add an api viewer entry for the applications object >> >> thanks @ alwin antreich for pointing out that pools have applications! >> >> PVE/API2/Ceph/Pools.pm | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/PVE/API2/Ceph/Pools.pm b/PVE/API2/Ceph/Pools.pm >> index 6c05250e..f5984c2c 100644 >> --- a/PVE/API2/Ceph/Pools.pm >> +++ b/PVE/API2/Ceph/Pools.pm >> @@ -125,6 +125,11 @@ __PACKAGE__->register_method ({ >> title => 'Autoscale Status', >> optional => 1, >> }, >> + applications => { >> + type => 'object', >> + title => 'Associated Applications', >> + optional => 1, >> + }, >> }, >> }, >> links => [ { rel => 'child', href => "{pool_name}" } ], >> @@ -167,6 +172,8 @@ __PACKAGE__->register_method ({ >> # pg_autoscaler module is not enabled in Nautilus >> my $autoscale = eval { $get_autoscale_status->($rados) }; >> >> + my $apps = eval { $rados->mon_command({ prefix => 'osd pool application get' }) }; > > out of interest: how expensive is this, did you check the overhead? > do you want a specific metric? in my (admittedly small) test setup (three vm cluster with 4 cores and 4Gib RAM) it is barely noticeable. the api call takes between 18 and 25ms in both cases for me. >> + >> foreach my $e (@{$res->{pools}}) { >> my $d = {}; >> foreach my $attr (@$attr_list) { >> @@ -191,6 +198,10 @@ __PACKAGE__->register_method ({ >> $d->{percent_used} = $s->{percent_used}; >> } >> >> + if ($apps) { >> + $d->{applications} = $apps->{$d->{pool_name}} if $apps->{$d->{pool_name}}; > > no nested hashes-in-hashes, pull out $d->{pool_name} earlier and then make it an one > liner: > > $d->{applications} = $apps->{$pool} if defined($apps->{$pool}); > noted, ill avoid that in the future. >> + } >> + >> # Cephs numerical pool types are barely documented. Found the following in the Ceph >> # codebase: https://github.com/ceph/ceph/blob/ff144995a849407c258bcb763daa3e03cfce5059/src/osd/osd_types.h#L1221-L1233 >> if ($e->{type} == 1) { >