From bda3eaea56a883b03d4ef36dc6f9013d91b844a2 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Thu, 27 Aug 2020 05:10:06 +0000 Subject: [PATCH] mon: Add mgr version collector Signed-off-by: David Zafman --- src/mon/MgrMonitor.cc | 12 ++++++++++++ src/mon/MgrMonitor.h | 1 + src/mon/Monitor.cc | 2 ++ 3 files changed, 15 insertions(+) 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; } -- 2.47.3