You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2014/05/19 21:16:13 UTC
git commit: Added elected time to master's web ui.
Repository: mesos
Updated Branches:
refs/heads/master dc7e42657 -> be8b90792
Added elected time to master's web ui.
Review: https://reviews.apache.org/r/21501
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/be8b9079
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/be8b9079
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/be8b9079
Branch: refs/heads/master
Commit: be8b90792b268080794004533ba8b8a35eaab615
Parents: dc7e426
Author: Vinod Kone <vi...@twitter.com>
Authored: Thu May 15 15:40:05 2014 -0700
Committer: Vinod Kone <vi...@twitter.com>
Committed: Mon May 19 12:16:02 2014 -0700
----------------------------------------------------------------------
src/master/http.cpp | 5 +++++
src/master/master.cpp | 23 ++++++++++++++++-------
src/master/master.hpp | 2 ++
src/webui/master/static/home.html | 4 ++++
4 files changed, 27 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/be8b9079/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index f54c841..a341866 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -470,6 +470,11 @@ Future<Response> Master::Http::state(const Request& request)
object.values["build_time"] = build::TIME;
object.values["build_user"] = build::USER;
object.values["start_time"] = master.startTime.secs();
+
+ if (master.electedTime.isSome()) {
+ object.values["elected_time"] = master.electedTime.get().secs();
+ }
+
object.values["id"] = master.info().id();
object.values["pid"] = string(master.self());
object.values["hostname"] = master.info().hostname();
http://git-wip-us.apache.org/repos/asf/mesos/blob/be8b9079/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 63b6cdc..075755c 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -224,7 +224,8 @@ Master::Master(
files(_files),
contender(_contender),
detector(_detector),
- metrics(*this)
+ metrics(*this),
+ electedTime(None())
{
// NOTE: We populate 'info_' here instead of inside 'initialize()'
// because 'StandaloneMasterDetector' needs access to the info.
@@ -929,13 +930,21 @@ void Master::detected(const Future<Option<MasterInfo> >& _leader)
EXIT(1) << "Lost leadership... committing suicide!";
}
- if (!wasElected && elected()) {
- LOG(INFO) << "Elected as the leading master!";
+ if (elected()) {
+ electedTime = Clock::now();
+
+ if (!wasElected) {
+ LOG(INFO) << "Elected as the leading master!";
- // Begin the recovery process, bail if it fails or is discarded.
- recover()
- .onFailed(lambda::bind(fail, "Recovery failed", lambda::_1))
- .onDiscarded(lambda::bind(fail, "Recovery failed", "discarded"));
+ // Begin the recovery process, bail if it fails or is discarded.
+ recover()
+ .onFailed(lambda::bind(fail, "Recovery failed", lambda::_1))
+ .onDiscarded(lambda::bind(fail, "Recovery failed", "discarded"));
+ } else {
+ // This happens if there is a ZK blip that causes a re-election
+ // but the same leading master is elected as leader.
+ LOG(INFO) << "Re-elected as the leading master";
+ }
}
// Keep detecting.
http://git-wip-us.apache.org/repos/asf/mesos/blob/be8b9079/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 25d9e83..5e0d712 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -598,6 +598,8 @@ private:
double _resources_percent(const std::string& name);
process::Time startTime; // Start time used to calculate uptime.
+
+ Option<process::Time> electedTime; // Time when this master is elected.
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/be8b9079/src/webui/master/static/home.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/home.html b/src/webui/master/static/home.html
index ea9444a..ce8ca19 100644
--- a/src/webui/master/static/home.html
+++ b/src/webui/master/static/home.html
@@ -33,6 +33,10 @@
<dd>
<m-timestamp value="{{state.start_time * 1000}}"></m-timestamp>
</dd>
+ <dt>Elected:</dt>
+ <dd>
+ <m-timestamp value="{{state.elected_time * 1000}}"></m-timestamp>
+ </dd>
</dl>
<p><a href="" ng-click="log($event)">LOG</a></p>