From: Sage Weil Date: Fri, 20 Oct 2017 16:00:53 +0000 (-0500) Subject: osd: add numpg_removing metric X-Git-Tag: v12.2.5~95^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F20785%2Fhead;p=ceph.git osd: add numpg_removing metric Signed-off-by: Sage Weil (cherry picked from commit b50ee3e7953e7901eb3d5ea54724b9ff542e48f1) --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index b666e980891a..0cc42eed5998 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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() diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 7781dfc1453d..48711405b0c7 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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 --