From: David Zafman Date: Thu, 27 Aug 2020 05:10:06 +0000 (+0000) Subject: mon: Add mgr version collector X-Git-Tag: v16.1.0~634^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bda3eaea56a883b03d4ef36dc6f9013d91b844a2;p=ceph.git mon: Add mgr version collector Signed-off-by: David Zafman --- diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index b75114734124..cd5d6305e0eb 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -1290,6 +1290,18 @@ void MgrMonitor::count_metadata(const string& field, Formatter *f) f->close_section(); } +void MgrMonitor::get_versions(std::map > &versions) +{ + std::set ls = map.get_all_names(); + for (auto& name : ls) { + std::map meta; + load_metadata(name, meta, nullptr); + auto p = meta.find("ceph_version_short"); + if (p == meta.end()) continue; + versions[p->second].push_back(string("mgr.") + name); + } +} + int MgrMonitor::dump_metadata(const string& name, Formatter *f, ostream *err) { std::map m; diff --git a/src/mon/MgrMonitor.h b/src/mon/MgrMonitor.h index d29a0d090a1b..dabd9386e25f 100644 --- a/src/mon/MgrMonitor.h +++ b/src/mon/MgrMonitor.h @@ -129,6 +129,7 @@ public: void print_nodes(ceph::Formatter *f) const; void count_metadata(const std::string& field, ceph::Formatter *f); void count_metadata(const std::string& field, std::map *out); + void get_versions(std::map > &versions); // When did the mon last call into our tick() method? Used for detecting // when the mon was not updating us for some period (e.g. during slow diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 170e2b6a9b8f..8a4273ad3578 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -5365,6 +5365,8 @@ void Monitor::get_all_versions(std::map > &versions) get_versions(versions); // osd osdmon()->get_versions(versions); + // mgr + mgrmon()->get_versions(versions); dout(20) << __func__ << " all versions=" << versions << dendl; }