]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: Add mds version collector
authorDavid Zafman <dzafman@redhat.com>
Thu, 27 Aug 2020 17:54:15 +0000 (17:54 +0000)
committerDavid Zafman <dzafman@redhat.com>
Wed, 11 Nov 2020 23:10:11 +0000 (15:10 -0800)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/mon/MDSMonitor.cc
src/mon/MDSMonitor.h
src/mon/Monitor.cc

index a57e63a5a3d5c1c448bcbe15a58c7437ce85ae22..2e8d112ffe48b0613a471e452f2ec9b81f9225be 100644 (file)
@@ -1876,6 +1876,20 @@ void MDSMonitor::count_metadata(const std::string &field, Formatter *f)
   f->close_section();
 }
 
+void MDSMonitor::get_versions(std::map<string, list<string> > &versions)
+{
+  map<mds_gid_t,Metadata> meta;
+  load_metadata(meta);
+  const auto &fsmap = get_fsmap();
+  std::map<mds_gid_t, mds_info_t> map = fsmap.get_mds_info();
+  dout(10) << __func__ << " mds meta=" << meta << dendl;
+  for (auto& p : meta) {
+    auto q = p.second.find("ceph_version_short");
+    if (q == p.second.end()) continue;
+    versions[q->second].push_back(string("mds.") + map[p.first].name);
+  }
+}
+
 int MDSMonitor::dump_metadata(const FSMap& fsmap, const std::string &who,
     Formatter *f, ostream& err)
 {
index 45be5106672d29fbc5082c432137ce5ca409557b..f84744e0c73a4d73f2906ba9427084827507a273 100644 (file)
@@ -127,6 +127,7 @@ class MDSMonitor : public PaxosService, public PaxosFSMap, protected CommandHand
   void count_metadata(const std::string& field, ceph::Formatter *f);
 public:
   void count_metadata(const std::string& field, std::map<std::string,int> *out);
+  void get_versions(std::map<string, list<string> > &versions);
 protected:
 
   // MDS daemon GID to latest health state from that GID
index 8a4273ad3578ce2e2b79b53bfd9c518c22a3cc70..279d786a60cec4627f003d3b2550bcdaec4fc3fa 100644 (file)
@@ -5367,6 +5367,8 @@ void Monitor::get_all_versions(std::map<string, list<string> > &versions)
   osdmon()->get_versions(versions);
   // mgr
   mgrmon()->get_versions(versions);
+  // mds
+  mdsmon()->get_versions(versions);
   dout(20) << __func__ << " all versions=" << versions << dendl;
 }