You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2014/05/03 02:19:27 UTC
[2/2] git commit: Added metric for event queue size in the master.
Added metric for event queue size in the master.
Review: https://reviews.apache.org/r/21032
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b323f291
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b323f291
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b323f291
Branch: refs/heads/master
Commit: b323f291bdec89e801f39467c89412f90e28fdd2
Parents: 20d2c43
Author: Dominic Hamon <dh...@twopensource.com>
Authored: Fri May 2 16:59:37 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Fri May 2 17:05:44 2014 -0700
----------------------------------------------------------------------
src/master/master.cpp | 3 ++-
src/master/master.hpp | 29 +++++++++++++++++++++++++++--
src/tests/master_tests.cpp | 2 ++
3 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b323f291/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index e7b6657..e8a6124 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -221,7 +221,8 @@ Master::Master(
repairer(_repairer),
files(_files),
contender(_contender),
- detector(_detector)
+ detector(_detector),
+ metrics(*this)
{
// NOTE: We populate 'info_' here instead of inside 'initialize()'
// because 'StandaloneMasterDetector' needs access to the info.
http://git-wip-us.apache.org/repos/asf/mesos/blob/b323f291/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 6ae6ae4..0a350b0 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -36,6 +36,7 @@
#include <process/timer.hpp>
#include <process/metrics/counter.hpp>
+#include <process/metrics/gauge.hpp>
#include <process/metrics/metrics.hpp>
#include <stout/cache.hpp>
@@ -468,7 +469,7 @@ private:
struct Metrics
{
- Metrics()
+ Metrics(const Master& master)
: dropped_messages(
"master/dropped_messages"),
framework_registration_messages(
@@ -480,7 +481,10 @@ private:
slave_reregistration_messages(
"master/slave_reregistration_messages"),
recovery_slave_removals(
- "master/recovery_slave_removals")
+ "master/recovery_slave_removals"),
+ event_queue_size(
+ "master/event_queue_size",
+ defer(master, &Master::_event_queue_size))
{
process::metrics::add(dropped_messages);
@@ -491,6 +495,8 @@ private:
process::metrics::add(slave_reregistration_messages);
process::metrics::add(recovery_slave_removals);
+
+ process::metrics::add(event_queue_size);
}
~Metrics()
@@ -504,6 +510,8 @@ private:
process::metrics::remove(slave_reregistration_messages);
process::metrics::remove(recovery_slave_removals);
+
+ process::metrics::remove(event_queue_size);
}
// Message counters.
@@ -519,8 +527,25 @@ private:
// Recovery counters.
process::metrics::Counter recovery_slave_removals;
+
+ // Process metrics.
+ process::metrics::Gauge event_queue_size;
} metrics;
+ // Gauge handlers.
+ double _event_queue_size()
+ {
+ size_t size;
+
+ lock();
+ {
+ size = events.size();
+ }
+ unlock();
+
+ return static_cast<double>(size);
+ }
+
process::Time startTime; // Start time used to calculate uptime.
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/b323f291/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index 534afee..d407834 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -1290,6 +1290,8 @@ TEST_F(MasterTest, MetricsInStatsEndpoint)
EXPECT_EQ(1u, stats.values.count("master/recovery_slave_removals"));
+ EXPECT_EQ(1u, stats.values.count("master/event_queue_size"));
+
EXPECT_EQ(1u, stats.values.count("registrar/queued_operations"));
EXPECT_EQ(1u, stats.values.count("registrar/registry_size_bytes"));