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/06/20 02:46:53 UTC
[1/2] git commit: Exposed method in Process to get event counts of
specific types.
Repository: mesos
Updated Branches:
refs/heads/master 1e5c9a8e8 -> 5ad2d2102
Exposed method in Process to get event counts of specific types.
Review: https://reviews.apache.org/r/22756
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/cffea25a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/cffea25a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/cffea25a
Branch: refs/heads/master
Commit: cffea25ad4f03bdda0d9cd52aabef95962b9c0b4
Parents: 1e5c9a8
Author: Dominic Hamon <dh...@twopensource.com>
Authored: Thu Jun 19 17:31:15 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Thu Jun 19 17:35:14 2014 -0700
----------------------------------------------------------------------
3rdparty/libprocess/include/process/process.hpp | 22 ++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/cffea25a/3rdparty/libprocess/include/process/process.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/process.hpp b/3rdparty/libprocess/include/process/process.hpp
index c29cd21..3c31dfb 100644
--- a/3rdparty/libprocess/include/process/process.hpp
+++ b/3rdparty/libprocess/include/process/process.hpp
@@ -172,8 +172,17 @@ protected:
pthread_mutex_unlock(&m);
}
- // Queue of received events, requires lock()ed access!
- std::deque<Event*> events;
+ template<typename T>
+ size_t eventCount()
+ {
+ size_t count = 0U;
+
+ lock();
+ count = std::count_if(events.begin(), events.end(), isEventType<T>);
+ unlock();
+
+ return count;
+ }
private:
friend class SocketManager;
@@ -191,6 +200,12 @@ private:
TERMINATED
} state;
+ template<typename T>
+ static bool isEventType(const Event* event)
+ {
+ return event->is<T>();
+ }
+
// Mutex protecting internals.
// TODO(benh): Consider replacing with a spinlock, on multi-core systems.
pthread_mutex_t m;
@@ -217,6 +232,9 @@ private:
// Static assets(s) to provide.
std::map<std::string, Asset> assets;
+ // Queue of received events, requires lock()ed access!
+ std::deque<Event*> events;
+
// Active references.
int refs;
[2/2] git commit: Exposed MessageEvent queue size from
Master/Scheduler.
Posted by bm...@apache.org.
Exposed MessageEvent queue size from Master/Scheduler.
Review: https://reviews.apache.org/r/22757
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/5ad2d210
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/5ad2d210
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/5ad2d210
Branch: refs/heads/master
Commit: 5ad2d2102888cc086966b881d7bfd532c0f9a3f4
Parents: cffea25
Author: Dominic Hamon <dh...@twopensource.com>
Authored: Thu Jun 19 17:31:31 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Thu Jun 19 17:36:21 2014 -0700
----------------------------------------------------------------------
src/master/master.cpp | 10 +++++-----
src/master/master.hpp | 14 +++-----------
src/sched/sched.cpp | 24 ++++++++----------------
src/tests/master_tests.cpp | 2 +-
src/tests/scheduler_tests.cpp | 2 +-
5 files changed, 18 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/5ad2d210/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 888657d..dcf28ad 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -4480,9 +4480,9 @@ Master::Metrics::Metrics(const Master& master)
"master/invalid_status_update_acknowledgements"),
recovery_slave_removals(
"master/recovery_slave_removals"),
- event_queue_size(
- "master/event_queue_size",
- defer(master, &Master::_event_queue_size)),
+ message_event_queue_size(
+ "master/message_event_queue_size",
+ defer(master, &Master::_message_event_queue_size)),
slave_registrations(
"master/slave_registrations"),
slave_reregistrations(
@@ -4546,7 +4546,7 @@ Master::Metrics::Metrics(const Master& master)
process::metrics::add(recovery_slave_removals);
- process::metrics::add(event_queue_size);
+ process::metrics::add(message_event_queue_size);
process::metrics::add(slave_registrations);
process::metrics::add(slave_reregistrations);
@@ -4637,7 +4637,7 @@ Master::Metrics::~Metrics()
process::metrics::remove(recovery_slave_removals);
- process::metrics::remove(event_queue_size);
+ process::metrics::remove(message_event_queue_size);
process::metrics::remove(slave_registrations);
process::metrics::remove(slave_reregistrations);
http://git-wip-us.apache.org/repos/asf/mesos/blob/5ad2d210/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 2844446..b56e9f4 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -640,7 +640,7 @@ private:
process::metrics::Counter recovery_slave_removals;
// Process metrics.
- process::metrics::Gauge event_queue_size;
+ process::metrics::Gauge message_event_queue_size;
// Successful registry operations.
process::metrics::Counter slave_registrations;
@@ -683,17 +683,9 @@ private:
return offers.size();
}
- double _event_queue_size()
+ double _message_event_queue_size()
{
- size_t size;
-
- lock();
- {
- size = events.size();
- }
- unlock();
-
- return static_cast<double>(size);
+ return static_cast<double>(eventCount<process::MessageEvent>());
}
double _tasks_staging();
http://git-wip-us.apache.org/repos/asf/mesos/blob/5ad2d210/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index 68782d4..6da7159 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -1010,37 +1010,29 @@ private:
struct Metrics
{
Metrics(const SchedulerProcess& schedulerProcess)
- : event_queue_size(
- "scheduler/event_queue_size",
- defer(schedulerProcess, &SchedulerProcess::_event_queue_size))
+ : message_event_queue_size(
+ "scheduler/message_event_queue_size",
+ defer(schedulerProcess, &SchedulerProcess::_message_event_queue_size))
{
// TODO(dhamon): When we start checking the return value of 'add' we may
// get failures in situations where multiple SchedulerProcesses are active
// (ie, the fault tolerance tests). At that point we'll need MESOS-1285 to
// be fixed and to use self().id in the metric name.
- process::metrics::add(event_queue_size);
+ process::metrics::add(message_event_queue_size);
}
~Metrics()
{
- process::metrics::remove(event_queue_size);
+ process::metrics::remove(message_event_queue_size);
}
// Process metrics.
- process::metrics::Gauge event_queue_size;
+ process::metrics::Gauge message_event_queue_size;
} metrics;
- double _event_queue_size()
+ double _message_event_queue_size()
{
- size_t size;
-
- lock();
- {
- size = events.size();
- }
- unlock();
-
- return static_cast<double>(size);
+ return static_cast<double>(eventCount<MessageEvent>());
}
MesosSchedulerDriver* driver;
http://git-wip-us.apache.org/repos/asf/mesos/blob/5ad2d210/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index a60709f..f0bd1fc 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -1487,7 +1487,7 @@ 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("master/message_event_queue_size"));
EXPECT_EQ(1u, stats.values.count("master/cpus_total"));
EXPECT_EQ(1u, stats.values.count("master/cpus_used"));
http://git-wip-us.apache.org/repos/asf/mesos/blob/5ad2d210/src/tests/scheduler_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_tests.cpp b/src/tests/scheduler_tests.cpp
index 5cc6b26..f6e837e 100644
--- a/src/tests/scheduler_tests.cpp
+++ b/src/tests/scheduler_tests.cpp
@@ -241,7 +241,7 @@ TEST_F(MesosSchedulerDriverTest, MetricsEndpoint)
JSON::Object metrics = parse.get();
- EXPECT_EQ(1u, metrics.values.count("scheduler/event_queue_size"));
+ EXPECT_EQ(1u, metrics.values.count("scheduler/message_event_queue_size"));
driver.stop();
driver.join();