From: Patrick Donnelly Date: Tue, 10 Dec 2019 00:12:12 +0000 (-0800) Subject: mon: refactor quorum age calculation X-Git-Tag: v16.2.8~88^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dba421cbe66b55bbe35ef7ca74856fef36d7d696;p=ceph.git mon: refactor quorum age calculation Signed-off-by: Patrick Donnelly (cherry picked from commit 1a9aab62b615830107ee28866630f043e1a01a35) --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 3f2e2dc03666..dce5bb25b2ce 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2595,8 +2595,7 @@ void Monitor::_quorum_status(Formatter *f, ostream& ss) if (!quorum.empty()) { f->dump_int( "quorum_age", - std::chrono::duration_cast( - mono_clock::now() - quorum_since).count()); + quorum_age()); } f->open_object_section("features"); @@ -2631,8 +2630,7 @@ void Monitor::get_mon_status(Formatter *f) if (!quorum.empty()) { f->dump_int( "quorum_age", - std::chrono::duration_cast( - mono_clock::now() - quorum_since).count()); + quorum_age()); } f->open_object_section("features"); @@ -2971,7 +2969,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); @@ -2987,8 +2984,7 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f, f->close_section(); f->dump_int( "quorum_age", - std::chrono::duration_cast( - mono_clock::now() - quorum_since).count()); + quorum_age()); } f->open_object_section("monmap"); monmap->dump_summary(f); @@ -3042,7 +3038,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 out_of_q; for (size_t i = 0; i < monmap->ranks.size(); ++i) { diff --git a/src/mon/Monitor.h b/src/mon/Monitor.h index ccdd5fe65d57..e820e537a617 100644 --- a/src/mon/Monitor.h +++ b/src/mon/Monitor.h @@ -216,6 +216,11 @@ public: std::vector get_health_metrics(); + int quorum_age() const { + auto age = ceph::mono_clock::now() - quorum_since; + return age.count(); + } + // -- elector -- private: std::unique_ptr paxos;