]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: introduce removal perf counter
authorIgor Fedotov <ifedotov@suse.com>
Fri, 4 Sep 2020 10:17:54 +0000 (13:17 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Mon, 7 Dec 2020 16:31:53 +0000 (19:31 +0300)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit cc9d58421ef9785802482faa5e68ac25911331e8)

src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 360a4e302805b6cc1dd207637cec527c7d06fb72..9c990899933f62e877e7c83848d76f653c30fa51 100644 (file)
@@ -4711,6 +4711,9 @@ void BlueStore::_init_logger()
     "Average omap get_values call latency");
   b.add_time_avg(l_bluestore_clist_lat, "clist_lat",
     "Average collection listing latency");
+  b.add_time_avg(l_bluestore_remove_lat, "remove_lat",
+    "Average removal latency");
+
   logger = b.create_perf_counters();
   cct->get_perfcounters_collection()->add(logger);
 }
@@ -13765,7 +13768,23 @@ int BlueStore::_remove(TransContext *txc,
   dout(15) << __func__ << " " << c->cid << " " << o->oid
           << " onode " << o.get()
           << " txc "<< txc << dendl;
+
+  auto start_time = mono_clock::now();
   int r = _do_remove(txc, c, o);
+  log_latency_fn(
+    __func__,
+    l_bluestore_remove_lat,
+    mono_clock::now() - start_time,
+    cct->_conf->bluestore_log_op_age,
+    [&](const ceph::timespan& lat) {
+      ostringstream ostr;
+      ostr << ", lat = " << timespan_str(lat)
+        << " cid =" << c->cid
+        << " oid =" << o->oid;
+      return ostr.str();
+    }
+  );
+
   dout(10) << __func__ << " " << c->cid << " " << o->oid << " = " << r << dendl;
   return r;
 }
index e7f45da30ba0402811ece57f3fd008da7db0aae3..945a4f93ac998b7b9af694fea726a1bfa08fca3f 100644 (file)
@@ -132,6 +132,7 @@ enum {
   l_bluestore_omap_get_keys_lat,
   l_bluestore_omap_get_values_lat,
   l_bluestore_clist_lat,
+  l_bluestore_remove_lat,
   l_bluestore_last
 };