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();