You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by sa...@apache.org on 2017/06/22 17:28:19 UTC

aurora git commit: Add missing stats in MesosCallbackHandler

Repository: aurora
Updated Branches:
  refs/heads/master 13055df3b -> a922b053e


Add missing stats in MesosCallbackHandler

*Add missing stats in MesosCallbackHandler.

We are thinking about switching to a new driver implementation around V1Mesos (https://reviews.apache.org/r/57061). The V1 Mesos code requires a Scheduler callback with a different API. To maximize code reuse, event handling logic was extracted into a MesosCallbackHandler class. However, two metrics for handling __task status update__, and for handling __framework message__ are missing in this class.

This CR adds the two missing stats in the MesosCallbackHandler class.

Testing Done:
./build-support/jenkins/build.sh

Bugs closed: AURORA-1937

Reviewed at https://reviews.apache.org/r/60350/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/a922b053
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/a922b053
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/a922b053

Branch: refs/heads/master
Commit: a922b053e9402ed895694c22ed9ca62581ef49bd
Parents: 13055df
Author: Kai Huang <te...@hotmail.com>
Authored: Thu Jun 22 10:27:57 2017 -0700
Committer: Santhosh Kumar <ss...@twitter.com>
Committed: Thu Jun 22 10:27:57 2017 -0700

----------------------------------------------------------------------
 .../apache/aurora/scheduler/mesos/MesosCallbackHandler.java   | 6 ++++++
 .../aurora/scheduler/mesos/MesosCallbackHandlerTest.java      | 7 +++++++
 2 files changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/a922b053/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
index 772a04c..60df46c 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
@@ -91,11 +91,13 @@ public interface MesosCallbackHandler {
 
     private final AtomicLong offersRescinded;
     private final AtomicLong slavesLost;
+    private final AtomicLong statusUpdate;
     private final AtomicLong reRegisters;
     private final AtomicLong offersReceived;
     private final AtomicLong inverseOffersReceived;
     private final AtomicLong disconnects;
     private final AtomicLong executorsLost;
+    private final AtomicLong frameworkMessage;
     private final AtomicBoolean frameworkRegistered;
 
     /**
@@ -166,11 +168,13 @@ public interface MesosCallbackHandler {
 
       this.offersRescinded = statsProvider.makeCounter("offers_rescinded");
       this.slavesLost = statsProvider.makeCounter("slaves_lost");
+      this.statusUpdate = statsProvider.makeCounter("scheduler_status_update");
       this.reRegisters = statsProvider.makeCounter("scheduler_framework_reregisters");
       this.offersReceived = statsProvider.makeCounter("scheduler_resource_offers");
       this.inverseOffersReceived = statsProvider.makeCounter("scheduler_inverse_offers");
       this.disconnects = statsProvider.makeCounter("scheduler_framework_disconnects");
       this.executorsLost = statsProvider.makeCounter("scheduler_lost_executors");
+      this.frameworkMessage = statsProvider.makeCounter("scheduler_framework_message");
       this.frameworkRegistered = new AtomicBoolean(false);
       statsProvider.makeGauge("framework_registered", () -> frameworkRegistered.get() ? 1 : 0);
     }
@@ -246,6 +250,7 @@ public interface MesosCallbackHandler {
           "Ignoring framework message from {} on {}.",
           executorID.getValue(),
           agentID.getValue());
+      frameworkMessage.incrementAndGet();
     }
 
     @Override
@@ -295,6 +300,7 @@ public interface MesosCallbackHandler {
       try {
         // The status handler is responsible for acknowledging the update.
         taskStatusHandler.statusUpdate(status);
+        statusUpdate.incrementAndGet();
       } catch (SchedulerException e) {
         log.error("Status update failed due to scheduler exception: " + e, e);
         // We re-throw the exception here to trigger an abort of the driver.

http://git-wip-us.apache.org/repos/asf/aurora/blob/a922b053/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
index b955d61..b5fa1c8 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
@@ -333,6 +333,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(STATUS);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test
@@ -350,6 +351,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(status);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test
@@ -367,6 +369,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(status);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test
@@ -384,6 +387,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(status);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test(expected = SchedulerException.class)
@@ -400,6 +404,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(STATUS);
+    assertEquals(0L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test
@@ -424,6 +429,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleUpdate(STATUS_RECONCILIATION);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_status_update"));
   }
 
   @Test
@@ -456,6 +462,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
     control.replay();
 
     handler.handleMessage(EXECUTOR_ID, AGENT_ID);
+    assertEquals(1L, statsProvider.getLongValue("scheduler_framework_message"));
   }
 
   @Test