]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: perf counters for omap_get_keys[_get_values]
authorIgor Fedotov <ifedotov@suse.com>
Wed, 2 Sep 2020 11:44:07 +0000 (14:44 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Mon, 7 Dec 2020 14:13:23 +0000 (17:13 +0300)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 86840616ba62e37cd7bdc04fc0f5d63d2df93525)

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

index 8f80eabaf79613665272b7abab79dc6fba2e0639..9e33c9f1db0fc45805aa37244023b4c12695df33 100644 (file)
@@ -4931,6 +4931,10 @@ void BlueStore::_init_logger()
     "Average omap iterator lower_bound call latency");
   b.add_time_avg(l_bluestore_omap_next_lat, "omap_next_lat",
     "Average omap iterator next call latency");
+  b.add_time_avg(l_bluestore_omap_get_keys_lat, "omap_get_keys_lat",
+    "Average omap get_keys call latency");
+  b.add_time_avg(l_bluestore_omap_get_values_lat, "omap_get_values_lat",
+    "Average omap get_values call latency");
   b.add_time_avg(l_bluestore_clist_lat, "clist_lat",
     "Average collection listing latency");
   logger = b.create_perf_counters();
@@ -10959,6 +10963,7 @@ int BlueStore::omap_get_keys(
   dout(15) << __func__ << " " << c->get_cid() << " oid " << oid << dendl;
   if (!c->exists)
     return -ENOENT;
+  auto start1 = mono_clock::now();
   std::shared_lock l(c->lock);
   int r = 0;
   OnodeRef o = c->get_onode(oid, false);
@@ -10990,6 +10995,12 @@ int BlueStore::omap_get_keys(
     }
   }
  out:
+  c->store->log_latency(
+    __func__,
+    l_bluestore_omap_get_keys_lat,
+    mono_clock::now() - start1,
+    c->store->cct->_conf->bluestore_log_omap_iterator_age);
+
   dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r
           << dendl;
   return r;
@@ -11007,6 +11018,7 @@ int BlueStore::omap_get_values(
   if (!c->exists)
     return -ENOENT;
   std::shared_lock l(c->lock);
+  auto start1 = mono_clock::now();
   int r = 0;
   string final_key;
   OnodeRef o = c->get_onode(oid, false);
@@ -11034,6 +11046,12 @@ int BlueStore::omap_get_values(
     }
   }
  out:
+  c->store->log_latency(
+    __func__,
+    l_bluestore_omap_get_values_lat,
+    mono_clock::now() - start1,
+    c->store->cct->_conf->bluestore_log_omap_iterator_age);
+
   dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r
           << dendl;
   return r;
index 355e0306bb61ac929b12ab89a68e1419d796d4bb..18d04a69eb720c084ae2484a3245f7fa051fe51b 100644 (file)
@@ -135,6 +135,8 @@ enum {
   l_bluestore_omap_upper_bound_lat,
   l_bluestore_omap_lower_bound_lat,
   l_bluestore_omap_next_lat,
+  l_bluestore_omap_get_keys_lat,
+  l_bluestore_omap_get_values_lat,
   l_bluestore_clist_lat,
   l_bluestore_last
 };