From a288b19f54293a7441490284cebe7d87587c21ca Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch>
Date: Wed, 10 May 2023 10:19:35 +0200
Subject: [PATCH] ceph_io: fix for small transfer rates in B/s

---
 check_ceph_io | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/check_ceph_io b/check_ceph_io
index 6bfa6d0..8963f74 100755
--- a/check_ceph_io
+++ b/check_ceph_io
@@ -15,12 +15,13 @@
 #
 # ----------------------------------------------------------------------
 # 2023-05-09  v1.0  <axel.hahn@unibe.ch>
+# 2023-05-10  v1.1  <axel.hahn@unibe.ch>  fix for small transfer rates in B/s
 # ======================================================================
 
 . $(dirname $0)/inc_pluginfunctions
 
 self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] )
-self_APPVERSION=1.0
+self_APPVERSION=1.1
 
 function showHelp(){
 cat <<EOF
@@ -59,6 +60,8 @@ ph.require ceph
 
 CEPHIO=$( sudo ceph status 2>/dev/null | grep "client:.* rd,.* wr," | cut -f 2 -d ":" )
 # CEPHIO="8.9 KiB/s rd, 887 KiB/s wr, 138 op/s rd, 140 op/s wr"
+# CEPHIO="255 B/s rd, 85 B/s wr, 0 op/s rd, 0 op/s"
+
 
 if [ -z "${CEPHIO}" ]; then
         ph.setStatus "unknown"
@@ -67,8 +70,11 @@ if [ -z "${CEPHIO}" ]; then
         echo "No ceph here or no sudo permissions on ceph command?"
 else
 
-        IO_READ=$(  echo ${CEPHIO} | cut -f 1,2 -d " " | sed -E "s#([0-9]*) (.).(.).*#\1\2\3#g")
-        IO_WRITE=$( echo ${CEPHIO} | cut -f 4,5 -d " " | sed -E "s#([0-9]*) (.).(.).*#\1\2\3#g")
+        # remark:
+        # - the sed transforms "NN KiB/s" --> "NN KB" (cut "i")
+        # - the tr is for small values "NN B/s" and removes "s"
+        IO_READ=$(  echo ${CEPHIO} | cut -f 1,2 -d " " | sed -E "s#([0-9]*) (.).(.).*#\1\2\3#g" | tr -d 's' )
+        IO_WRITE=$( echo ${CEPHIO} | cut -f 4,5 -d " " | sed -E "s#([0-9]*) (.).(.).*#\1\2\3#g" | tr -d 's' )
         ph.status "$CEPHIO"
 
         # echo "read: $IO_READ"
-- 
GitLab