You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by zm...@apache.org on 2017/03/29 20:35:34 UTC
aurora git commit: Reset `framework_registered` metric on
disconnection.
Repository: aurora
Updated Branches:
refs/heads/master c32f14c75 -> 3a9aabda9
Reset `framework_registered` metric on disconnection.
Previously the `framework_registered` metric only transitioned from 0 to 1 on
the first registration. On disconnection and registration loss, the metric was
not updated to reflect the loss of registration.
To make this metric more useful, I have moved this metric from the
`SchedulerLifecycle`, where it was tied to the boolean controlling the
LEADER_AWAITING_REGISTRATION -> ACTIVE transtion, to `MesosCallbackHandler`. In
`MesosCallbackHandler` it can easily be updated to reflect the current state
of registration.
Bugs closed: AURORA-1910
Reviewed at https://reviews.apache.org/r/58017/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/3a9aabda
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/3a9aabda
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/3a9aabda
Branch: refs/heads/master
Commit: 3a9aabda9c37fb3595baf6b0c50f3f705c0f17cd
Parents: c32f14c
Author: Zameer Manji <zm...@apache.org>
Authored: Wed Mar 29 13:35:21 2017 -0700
Committer: Zameer Manji <zm...@apache.org>
Committed: Wed Mar 29 13:35:21 2017 -0700
----------------------------------------------------------------------
.../org/apache/aurora/scheduler/SchedulerLifecycle.java | 11 -----------
.../aurora/scheduler/mesos/MesosCallbackHandler.java | 9 ++++++++-
.../apache/aurora/scheduler/SchedulerLifecycleTest.java | 3 ---
.../aurora/scheduler/mesos/MesosCallbackHandlerTest.java | 4 ++++
4 files changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/3a9aabda/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java b/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
index 4e354b6..aa09aff 100644
--- a/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
+++ b/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
@@ -170,9 +170,6 @@ public class SchedulerLifecycle implements EventSubscriber {
}
@VisibleForTesting
- static final String REGISTERED_GAUGE = "framework_registered";
-
- @VisibleForTesting
static String stateGaugeName(State state) {
return "scheduler_lifecycle_" + state;
}
@@ -193,14 +190,6 @@ public class SchedulerLifecycle implements EventSubscriber {
requireNonNull(delayedActions);
requireNonNull(shutdownRegistry);
- statsProvider.makeGauge(
- REGISTERED_GAUGE,
- new Supplier<Integer>() {
- @Override
- public Integer get() {
- return registrationAcked.get() ? 1 : 0;
- }
- });
for (final State state : State.values()) {
statsProvider.makeGauge(
stateGaugeName(state),
http://git-wip-us.apache.org/repos/asf/aurora/blob/3a9aabda/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 800edfa..5bf1e4e 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
@@ -19,6 +19,7 @@ import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.concurrent.Executor;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import javax.inject.Inject;
import javax.inject.Qualifier;
@@ -102,6 +103,7 @@ public interface MesosCallbackHandler {
private final AtomicLong inverseOffersReceived;
private final AtomicLong disconnects;
private final AtomicLong executorsLost;
+ private final AtomicBoolean frameworkRegistered;
/**
* Binding annotation for the executor the incoming Mesos message handler uses.
@@ -184,6 +186,8 @@ public interface MesosCallbackHandler {
this.inverseOffersReceived = statsProvider.makeCounter("scheduler_inverse_offers");
this.disconnects = statsProvider.makeCounter("scheduler_framework_disconnects");
this.executorsLost = statsProvider.makeCounter("scheduler_lost_executors");
+ this.frameworkRegistered = new AtomicBoolean(false);
+ statsProvider.makeGauge("framework_registered", () -> frameworkRegistered.get() ? 1 : 0);
}
@Override
@@ -193,12 +197,14 @@ public interface MesosCallbackHandler {
storage.write(
(Storage.MutateWork.NoResult.Quiet) storeProvider ->
storeProvider.getSchedulerStore().saveFrameworkId(frameworkId.getValue()));
+ frameworkRegistered.set(true);
eventSink.post(new PubsubEvent.DriverRegistered());
}
@Override
public void handleReregistration(MasterInfo masterInfo) {
log.info("Framework re-registered with master " + masterInfo);
+ frameworkRegistered.set(true);
reRegisters.incrementAndGet();
}
@@ -228,7 +234,8 @@ public interface MesosCallbackHandler {
@Override
public void handleDisconnection() {
log.warn("Framework disconnected.");
- this.disconnects.incrementAndGet();
+ disconnects.incrementAndGet();
+ frameworkRegistered.set(false);
eventSink.post(new PubsubEvent.DriverDisconnected());
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/3a9aabda/src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java b/src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java
index 051c520..70479ef 100644
--- a/src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java
@@ -84,7 +84,6 @@ public class SchedulerLifecycleTest extends EasyMockTest {
shutdownRegistry,
statsProvider,
serviceManager);
- assertEquals(0, statsProvider.getValue(SchedulerLifecycle.REGISTERED_GAUGE));
assertEquals(1, statsProvider.getValue(stateGaugeName(State.IDLE)));
return shutdownCommand;
}
@@ -137,10 +136,8 @@ public class SchedulerLifecycleTest extends EasyMockTest {
assertEquals(1, statsProvider.getValue(stateGaugeName(State.STORAGE_PREPARED)));
leaderListener.onLeading(leaderControl);
assertEquals(1, statsProvider.getValue(stateGaugeName(State.LEADER_AWAITING_REGISTRATION)));
- assertEquals(0, statsProvider.getValue(SchedulerLifecycle.REGISTERED_GAUGE));
schedulerLifecycle.registered(new DriverRegistered());
assertEquals(1, statsProvider.getValue(stateGaugeName(State.ACTIVE)));
- assertEquals(1, statsProvider.getValue(SchedulerLifecycle.REGISTERED_GAUGE));
triggerFailover.getValue().run();
}
http://git-wip-us.apache.org/repos/asf/aurora/blob/3a9aabda/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 52041b5..b955d61 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
@@ -211,7 +211,9 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
control.replay();
+ assertEquals(0L, statsProvider.getLongValue("framework_registered"));
handler.handleRegistration(FRAMEWORK, MASTER);
+ assertEquals(1L, statsProvider.getLongValue("framework_registered"));
}
@Test
@@ -220,6 +222,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
handler.handleReregistration(MASTER);
assertEquals(1L, statsProvider.getLongValue("scheduler_framework_reregisters"));
+ assertEquals(1L, statsProvider.getLongValue("framework_registered"));
}
@Test
@@ -294,6 +297,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
handler.handleDisconnection();
assertEquals(1L, statsProvider.getLongValue("scheduler_framework_disconnects"));
+ assertEquals(0L, statsProvider.getLongValue("framework_registered"));
}
@Test