]> 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>
Fri, 4 Dec 2020 21:09:52 +0000 (00:09 +0300)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 1d66ad48cce4bc628cd0123837fc63164ec18f0f..1b4d9ac5999e4184088d37d74d85f2b8daecc888 100644 (file)
@@ -4923,6 +4923,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);
 }
@@ -14548,7 +14551,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 65a8b093236048631d00462c3693c679ba34acce..d9a107218cdfb041a735f784d6ee3aabc3bcef81 100644 (file)
@@ -143,6 +143,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
 };