From: Patrick Donnelly Date: Tue, 10 Dec 2019 00:12:12 +0000 (-0800) Subject: mon: refactor quorum age calculation X-Git-Tag: v17.1.0~872^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1a9aab62b615830107ee28866630f043e1a01a35;p=ceph.git mon: refactor quorum age calculation Signed-off-by: Patrick Donnelly --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 6f4a8fc0e833..9a0a5370e292 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2614,8 +2614,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"); @@ -2650,8 +2649,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"); @@ -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( - 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 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 22bf6e9669c6..330ecbc70d95 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;