]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add numpg_removing metric 20785/head
authorSage Weil <sage@redhat.com>
Fri, 20 Oct 2017 16:00:53 +0000 (11:00 -0500)
committerBrad Hubbard <bhubbard@redhat.com>
Wed, 7 Mar 2018 21:17:32 +0000 (07:17 +1000)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit b50ee3e7953e7901eb3d5ea54724b9ff542e48f1)

src/osd/OSD.cc
src/osd/OSD.h

index b666e980891a7e05c6820191cd587f9cc6d25aae..0cc42eed5998a99d04df2b9fdb339561e31c5f1d 100644 (file)
@@ -3139,6 +3139,10 @@ void OSD::create_logger()
   osd_plb.add_u64(
     l_osd_pg_stray, "numpg_stray",
     "Placement groups ready to be deleted from this osd");
+  osd_plb.add_u64(
+    l_osd_pg_removing, "numpg_removing",
+    "Placement groups queued for local deletion", "pgsr",
+    PerfCountersBuilder::PRIO_USEFUL);
   osd_plb.add_u64(
     l_osd_hb_to, "heartbeat_to_peers", "Heartbeat (ping) peers we send to");
   osd_plb.add_u64_counter(l_osd_map, "map_messages", "OSD map messages");
@@ -5283,6 +5287,7 @@ void OSD::tick_without_osd_lock()
   logger->set(l_osd_cached_crc, buffer::get_cached_crc());
   logger->set(l_osd_cached_crc_adjusted, buffer::get_cached_crc_adjusted());
   logger->set(l_osd_missed_crc, buffer::get_missed_crc());
+  logger->set(l_osd_pg_removing, remove_wq.get_remove_queue_len());
 
   // osd_lock is not being held, which means the OSD state
   // might change when doing the monitor report
@@ -8446,6 +8451,7 @@ void OSD::consume_map()
   logger->set(l_osd_pg_primary, num_pg_primary);
   logger->set(l_osd_pg_replica, num_pg_replica);
   logger->set(l_osd_pg_stray, num_pg_stray);
+  logger->set(l_osd_pg_removing, remove_wq.get_remove_queue_len());
 }
 
 void OSD::activate_map()
index 7781dfc1453d71142da0fbb95aa7dcc614a41983..48711405b0c7190a12a07fc2c2e03eb06a59152a 100644 (file)
@@ -127,6 +127,7 @@ enum {
   l_osd_pg_primary,
   l_osd_pg_replica,
   l_osd_pg_stray,
+  l_osd_pg_removing,
   l_osd_hb_to,
   l_osd_map,
   l_osd_mape,
@@ -2297,6 +2298,12 @@ protected:
     void _clear() override {
       remove_queue.clear();
     }
+    int get_remove_queue_len() {
+      lock();
+      int r = remove_queue.size();
+      unlock();
+      return r;
+    }
   } remove_wq;
 
   // -- status reporting --