From 0816f16069f7d4c5efe035ab74b333a4eefc7027 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 3 Jul 2020 16:08:55 +0800 Subject: [PATCH] crimson/osd: update the osd stats with hb peers just to align with classic OSD Signed-off-by: Kefu Chai --- src/crimson/osd/heartbeat.cc | 10 ++++++++++ src/crimson/osd/heartbeat.h | 3 ++- src/crimson/osd/osd.cc | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/crimson/osd/heartbeat.cc b/src/crimson/osd/heartbeat.cc index e3b8b3c6a2a..c36af322acd 100644 --- a/src/crimson/osd/heartbeat.cc +++ b/src/crimson/osd/heartbeat.cc @@ -184,6 +184,16 @@ void Heartbeat::update_peers(int whoami) } } +Heartbeat::osds_t Heartbeat::get_peers() const +{ + osds_t osds; + osds.reserve(peers.size()); + for (auto& peer : peers) { + osds.push_back(peer.first); + } + return osds; +} + void Heartbeat::remove_peer(osd_id_t peer) { auto found = peers.find(peer); diff --git a/src/crimson/osd/heartbeat.h b/src/crimson/osd/heartbeat.h index 55f779a3a8b..7e8608aa23a 100644 --- a/src/crimson/osd/heartbeat.h +++ b/src/crimson/osd/heartbeat.h @@ -36,9 +36,11 @@ public: entity_addrvec_t back); seastar::future<> stop(); + using osds_t = std::vector; void add_peer(osd_id_t peer, epoch_t epoch); void update_peers(int whoami); void remove_peer(osd_id_t peer); + osds_t get_peers() const; const entity_addrvec_t& get_front_addrs() const; const entity_addrvec_t& get_back_addrs() const; @@ -62,7 +64,6 @@ private: Ref m); seastar::future<> handle_you_died(); - using osds_t = std::vector; /// remove down OSDs /// @return peers not needed in this epoch osds_t remove_down_peers(); diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 4c72ccd5892..694317f94fe 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -689,6 +689,7 @@ void OSD::update_stats() { osd_stat_seq++; osd_stat.up_from = get_up_epoch(); + osd_stat.hb_peers = heartbeat->get_peers(); osd_stat.seq = (static_cast(get_up_epoch()) << 32) | osd_stat_seq; } -- 2.39.5