]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: refactor quorum age calculation
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 10 Dec 2019 00:12:12 +0000 (16:12 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Fri, 3 Sep 2021 17:02:02 +0000 (13:02 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mon/Monitor.cc
src/mon/Monitor.h

index 6f4a8fc0e83331da6b1c34e2faeb5b868586bfbf..9a0a5370e292c9060e6f64a4b584ade3b6c32f1f 100644 (file)
@@ -2614,8 +2614,7 @@ void Monitor::_quorum_status(Formatter *f, ostream& ss)
   if (!quorum.empty()) {
     f->dump_int(
       "quorum_age",
-      std::chrono::duration_cast<std::chrono::seconds>(
-       mono_clock::now() - quorum_since).count());
+      quorum_age());
   }
 
   f->open_object_section("features");
@@ -2650,8 +2649,7 @@ void Monitor::get_mon_status(Formatter *f)
   if (!quorum.empty()) {
     f->dump_int(
       "quorum_age",
-      std::chrono::duration_cast<std::chrono::seconds>(
-       mono_clock::now() - quorum_since).count());
+      quorum_age());
   }
 
   f->open_object_section("features");
@@ -2990,7 +2988,6 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f,
 
   const auto&& fs_names = session->get_allowed_fs_names();
 
-  mono_clock::time_point now = mono_clock::now();
   if (f) {
     f->dump_stream("fsid") << monmap->get_fsid();
     healthmon()->get_health_status(false, f, nullptr);
@@ -3006,8 +3003,7 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f,
       f->close_section();
       f->dump_int(
        "quorum_age",
-       std::chrono::duration_cast<std::chrono::seconds>(
-         mono_clock::now() - quorum_since).count());
+        quorum_age());
     }
     f->open_object_section("monmap");
     monmap->dump_summary(f);
@@ -3061,7 +3057,7 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f,
       const auto quorum_names = get_quorum_names();
       const auto mon_count = monmap->mon_info.size();
       ss << "    mon: " << spacing << mon_count << " daemons, quorum "
-        << quorum_names << " (age " << timespan_str(now - quorum_since) << ")";
+        << quorum_names << " (age " << quorum_age() << ")";
       if (quorum_names.size() != mon_count) {
        std::list<std::string> out_of_q;
        for (size_t i = 0; i < monmap->ranks.size(); ++i) {
index 22bf6e9669c6917a97b579da442d236e81b29c00..330ecbc70d9507caa5a1623f9f1941d11f61337e 100644 (file)
@@ -216,6 +216,11 @@ public:
 
   std::vector<DaemonHealthMetric> get_health_metrics();
 
+  int quorum_age() const {
+    auto age = ceph::mono_clock::now() - quorum_since;
+    return age.count();
+  }
+
   // -- elector --
 private:
   std::unique_ptr<Paxos> paxos;