]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: Add perf Counter to Count Slow Ops in BlueStore 66577/head
authorJaya Prakash <jayaprakash@ibm.com>
Fri, 20 Mar 2026 12:02:16 +0000 (12:02 +0000)
committerJaya Prakash <jayaprakash@ibm.com>
Wed, 25 Mar 2026 10:12:21 +0000 (10:12 +0000)
Signed-off-by: Jaya Prakash <jayaprakash@ibm.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 2261e447485cada4d42ededb583b6daa28f6c3d8..69b145e9f0f943ccdf5102d9e4eb0949d484a772 100644 (file)
@@ -6602,6 +6602,16 @@ void BlueStore::_init_logger()
     "Slow op count for read wait aio",
     "srwc",
     PerfCountersBuilder::PRIO_USEFUL);
+  b.add_u64_counter(l_bluestore_slow_op_normal_count,
+    "slow_op_normal_count",
+    "Slow Normal op count in BlueStore",
+    "snoc",
+    PerfCountersBuilder::PRIO_USEFUL);
+  b.add_u64_counter(l_bluestore_slow_op_scrub_count,
+    "slow_op_scrub_count",
+    "Slow Scrub op count in BlueStore",
+    "ssoc",
+    PerfCountersBuilder::PRIO_USEFUL);
 
   // Resulting size axis configuration for op histograms, values are in bytes
   PerfHistogramCommon::axis_config_d alloc_hist_x_axis_config{
@@ -18878,8 +18888,10 @@ std::pair<size_t, size_t> BlueStore::_trim_slow_op_event_queue(
         (slow_scrub_op_event_count > cct->_conf->bluestore_slow_scrub_ops_warn_threshold))) {
       if (!slow_op_event_queue.front().second) {
         slow_op_event_count--;
+        logger->dec(l_bluestore_slow_op_normal_count);
       } else {
         slow_scrub_op_event_count--;
+        logger->dec(l_bluestore_slow_op_scrub_count);
       }
       slow_op_event_queue.pop();
   }
@@ -18894,6 +18906,7 @@ void BlueStore::_add_slow_op_event() {
   auto cur_time = mono_clock::now();
   slow_op_event_queue.push({cur_time, false});
   slow_op_event_count++;
+  logger->inc(l_bluestore_slow_op_normal_count);
   _trim_slow_op_event_queue(cur_time);
 }
 
@@ -18905,6 +18918,7 @@ void BlueStore::_add_slow_scrub_op_event() {
   auto cur_time = mono_clock::now();
   slow_op_event_queue.push({cur_time, true});
   slow_scrub_op_event_count++;
+  logger->inc(l_bluestore_slow_op_scrub_count);
   _trim_slow_op_event_queue(cur_time);
 }
 
index 650a78f91ed4b2da63a2b27756b817c3f80acd96..95103d73f62a756d0fc4d74ae9d66034c6fa24f3 100644 (file)
@@ -241,6 +241,8 @@ enum {
   l_bluestore_slow_committed_kv_count,
   l_bluestore_slow_read_onode_meta_count,
   l_bluestore_slow_read_wait_aio_count,
+  l_bluestore_slow_op_normal_count,
+  l_bluestore_slow_op_scrub_count,
   //****************************************
   l_bluestore_last
 };