]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: update the osd stats with hb peers
authorKefu Chai <kchai@redhat.com>
Fri, 3 Jul 2020 08:08:55 +0000 (16:08 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 3 Jul 2020 08:09:38 +0000 (16:09 +0800)
just to align with classic OSD

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/heartbeat.cc
src/crimson/osd/heartbeat.h
src/crimson/osd/osd.cc

index e3b8b3c6a2a50cf642b1d8a17362029127568f29..c36af322acd7e9bc03883caa4dc5787cfe504ba0 100644 (file)
@@ -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);
index 55f779a3a8b29d7e205cc98d123d2c481049dcb6..7e8608aa23af58ff7f86b79703a7b94018790b92 100644 (file)
@@ -36,9 +36,11 @@ public:
                          entity_addrvec_t back);
   seastar::future<> stop();
 
+  using osds_t = std::vector<osd_id_t>;
   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<MOSDPing> m);
   seastar::future<> handle_you_died();
 
-  using osds_t = std::vector<osd_id_t>;
   /// remove down OSDs
   /// @return peers not needed in this epoch
   osds_t remove_down_peers();
index 4c72ccd58922608ae028dc7e75ba7ae7730ca624..694317f94fe84d2f47c405c0459c3417236f231a 100644 (file)
@@ -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<uint64_t>(get_up_epoch()) << 32) | osd_stat_seq;
 }