From dfcf92f4b15e3ff7f765bff4534f9cafded07d42 Mon Sep 17 00:00:00 2001 From: Fulvio Galeazzi <fulvio.galeazzi@garr.it> Date: Thu, 29 Aug 2019 11:12:04 +0200 Subject: [PATCH] 2019-08-29: FG; Update to new structure of ceph_df_detail output, fix fraction used, fix when size is 0B. --- Ceph/Script/cephUsage.pl | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Ceph/Script/cephUsage.pl b/Ceph/Script/cephUsage.pl index 0a22df1..7c5fbeb 100755 --- a/Ceph/Script/cephUsage.pl +++ b/Ceph/Script/cephUsage.pl @@ -31,6 +31,7 @@ sub convertNumber if ($toWhat eq 'size') { # return unit: T $string =~ s/iB$//; + $string =~ s/B$//; $value = $string; my $lastChar = lc(chop($string)); if ($lastChar eq "p") { @@ -178,19 +179,25 @@ foreach my $_line (@_data) $poolTest = $fields[1]; } if (exists $poolHash{$poolTest}) { - $poolHash{$poolTest}{'size'} += convertNumber($fields[6],'size'); - $poolHash{$poolTest}{'tot'} = convertNumber($fields[8],'size') unless ($poolHash{$poolTest}{'tot'} > convertNumber($fields[8],'size')); - if ( $poolHash{$poolTest}{'tot'} > 0. ) { - $poolHash{$poolTest}{'frac'} = $poolHash{$poolTest}{'size'} / $poolHash{$poolTest}{'tot'}; + $poolHash{$poolTest}{'used'} += convertNumber($fields[5],'size'); + $poolHash{$poolTest}{'size'} += convertNumber($fields[12],'size'); + my $tempFrac = $fields[6]; + my $tempMax = convertNumber($fields[7],'size'); + $tempMax = $poolHash{$poolTest}{'used'}/$tempFrac/0.01 if ($tempFrac > 1.); + $poolHash{$poolTest}{'max'} = $tempMax unless ($poolHash{$poolTest}{'max'} > $tempMax); + if ( $poolHash{$poolTest}{'max'} > 0. ) { + $poolHash{$poolTest}{'frac'} = $poolHash{$poolTest}{'used'} / $poolHash{$poolTest}{'max'}; } $poolHash{$poolTest}{'objs'} += convertNumber($fields[9],'count'); } else { - $poolHash{$poolTest}{'size'} = convertNumber($fields[6],'size'); - $poolHash{$poolTest}{'frac'} = 0.; - $poolHash{$poolTest}{'tot'} = convertNumber($fields[8],'size'); + $poolHash{$poolTest}{'used'} = convertNumber($fields[5],'size'); + $poolHash{$poolTest}{'size'} = convertNumber($fields[12],'size'); + $poolHash{$poolTest}{'frac'} = $fields[6]; + $poolHash{$poolTest}{'max'} = convertNumber($fields[7],'size'); + $poolHash{$poolTest}{'max'} = $poolHash{$poolTest}{'used'}/$poolHash{$poolTest}{'frac'}/0.01 if ($poolHash{$poolTest}{'frac'} > 1.); $poolHash{$poolTest}{'objs'} = convertNumber($fields[9],'count'); } - print "POOL: $poolTest ".$poolHash{$poolTest}{'size'}." ".$poolHash{$poolTest}{'frac'}." ".$poolHash{$poolTest}{'objs'}."\n" if (defined $opt_debug); + print "POOL: $poolTest ".$poolHash{$poolTest}{'used'}." ".$poolHash{$poolTest}{'max'}." ".$poolHash{$poolTest}{'size'}." ".$poolHash{$poolTest}{'frac'}." ".$poolHash{$poolTest}{'objs'}."\n" if (defined $opt_debug); } if (defined $opt_debug) { -- GitLab