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 2016/09/06 19:18:26 UTC
aurora git commit: Remove static Stats method `exportSize`.
Repository: aurora
Updated Branches:
refs/heads/master 5d3f94549 -> 059b08621
Remove static Stats method `exportSize`.
Reviewed at https://reviews.apache.org/r/51469/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/059b0862
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/059b0862
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/059b0862
Branch: refs/heads/master
Commit: 059b08621ae4892d98954a6cd0e88f274cdd1bef
Parents: 5d3f945
Author: Zameer Manji <zm...@apache.org>
Authored: Tue Sep 6 12:18:36 2016 -0700
Committer: Zameer Manji <zm...@apache.org>
Committed: Tue Sep 6 12:18:36 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/aurora/common/stats/Stats.java | 14 --------------
.../org/apache/aurora/common/stats/StatsProvider.java | 11 +++++++++++
.../aurora/scheduler/TaskStatusHandlerImpl.java | 6 ++++--
.../apache/aurora/scheduler/offers/OfferManager.java | 11 ++++++++---
.../aurora/scheduler/TaskStatusHandlerImplTest.java | 2 ++
.../aurora/scheduler/offers/OfferManagerImplTest.java | 5 ++++-
6 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/stats/Stats.java b/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
index 538e807..af1a7b3 100644
--- a/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
+++ b/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
@@ -237,20 +237,6 @@ public class Stats {
}
/**
- * Exports a metric that tracks the size of a collection.
- *
- * @param name Name of the stat to export.
- * @param collection Collection whose size should be tracked.
- */
- public static void exportSize(String name, final Collection<?> collection) {
- export(new StatImpl<Integer>(name) {
- @Override public Integer read() {
- return collection.size();
- }
- });
- }
-
- /**
* Exports a 'static' statistic, which will not be registered for time series tracking.
*
* @param var Variable to statically export.
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java b/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
index 6b1fa4b..c02dd38 100644
--- a/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
+++ b/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
@@ -13,6 +13,7 @@
*/
package org.apache.aurora.common.stats;
+import java.util.Collection;
import java.util.concurrent.atomic.AtomicLong;
import com.google.common.base.Supplier;
@@ -43,6 +44,16 @@ public interface StatsProvider {
<T extends Number> Stat<T> makeGauge(String name, Supplier<T> gauge);
/**
+ * Exports a metric that tracks the size of a collection.
+ *
+ * @param name Name of the stat to export.
+ * @param collection Collection whose size should be tracked.
+ */
+ default void exportSize(String name, final Collection<?> collection) {
+ makeGauge(name, (Supplier<Number>) collection::size);
+ }
+
+ /**
* Gets a stats provider that does not track stats in an internal time series repository.
* The stored variables will only be available as instantaneous values.
*
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
index a83f183..51215b6 100644
--- a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
@@ -28,7 +28,7 @@ import com.google.common.base.Optional;
import com.google.common.util.concurrent.AbstractExecutionThreadService;
import com.google.common.util.concurrent.MoreExecutors;
-import org.apache.aurora.common.stats.Stats;
+import org.apache.aurora.common.stats.StatsProvider;
import org.apache.aurora.gen.ScheduleStatus;
import org.apache.aurora.scheduler.base.Conversions;
import org.apache.aurora.scheduler.mesos.Driver;
@@ -93,6 +93,7 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
TaskStatusHandlerImpl(
Storage storage,
StateManager stateManager,
+ StatsProvider statsProvider,
final Driver driver,
@StatusUpdateQueue BlockingQueue<TaskStatus> pendingUpdates,
@MaxBatchSize Integer maxBatchSize,
@@ -104,8 +105,9 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
this.pendingUpdates = requireNonNull(pendingUpdates);
this.maxBatchSize = requireNonNull(maxBatchSize);
this.counters = requireNonNull(counters);
+ requireNonNull(statsProvider);
- Stats.exportSize("status_updates_queue_size", this.pendingUpdates);
+ statsProvider.exportSize("status_updates_queue_size", this.pendingUpdates);
addListener(
new Listener() {
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
index a1ae7c7..925c025 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
@@ -36,6 +36,7 @@ import com.google.common.eventbus.Subscribe;
import org.apache.aurora.common.inject.TimedInterceptor.Timed;
import org.apache.aurora.common.quantity.Time;
import org.apache.aurora.common.stats.Stats;
+import org.apache.aurora.common.stats.StatsProvider;
import org.apache.aurora.gen.MaintenanceMode;
import org.apache.aurora.scheduler.HostOffer;
import org.apache.aurora.scheduler.async.AsyncModule.AsyncExecutor;
@@ -145,23 +146,27 @@ public interface OfferManager extends EventSubscriber {
@VisibleForTesting
static final Logger LOG = LoggerFactory.getLogger(OfferManagerImpl.class);
- private final HostOffers hostOffers = new HostOffers();
+ private final HostOffers hostOffers;
private final AtomicLong offerRaces = Stats.exportLong("offer_accept_races");
private final Driver driver;
private final OfferSettings offerSettings;
private final DelayExecutor executor;
+ private final StatsProvider statsProvider;
@Inject
@VisibleForTesting
public OfferManagerImpl(
Driver driver,
OfferSettings offerSettings,
+ StatsProvider statsProvider,
@AsyncExecutor DelayExecutor executor) {
this.driver = requireNonNull(driver);
this.offerSettings = requireNonNull(offerSettings);
this.executor = requireNonNull(executor);
+ this.statsProvider = requireNonNull(statsProvider);
+ this.hostOffers = new HostOffers(statsProvider);
}
@Override
@@ -281,10 +286,10 @@ public interface OfferManager extends EventSubscriber {
// scheduling attempts. See VetoGroup for more details on static ban.
private final Multimap<OfferID, TaskGroupKey> staticallyBannedOffers = HashMultimap.create();
- HostOffers() {
+ HostOffers(StatsProvider statsProvider) {
// Potential gotcha - since this is a ConcurrentSkipListSet, size() is more expensive.
// Could track this separately if it turns out to pose problems.
- Stats.exportSize("outstanding_offers", offers);
+ statsProvider.exportSize("outstanding_offers", offers);
}
synchronized Optional<HostOffer> get(SlaveID slaveId) {
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
index 6d4934b..b28d703 100644
--- a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
@@ -68,6 +68,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
statusHandler = new TaskStatusHandlerImpl(
storageUtil.storage,
stateManager,
+ stats,
driver,
queue,
1000,
@@ -261,6 +262,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
statusHandler = new TaskStatusHandlerImpl(
storageUtil.storage,
stateManager,
+ stats,
driver,
queue,
1000,
http://git-wip-us.apache.org/repos/asf/aurora/blob/059b0862/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
index e7534c4..a739bce 100644
--- a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
@@ -19,6 +19,7 @@ import com.google.common.collect.Iterables;
import org.apache.aurora.common.quantity.Amount;
import org.apache.aurora.common.quantity.Time;
+import org.apache.aurora.common.stats.StatsProvider;
import org.apache.aurora.common.testing.easymock.EasyMockTest;
import org.apache.aurora.gen.HostAttributes;
import org.apache.aurora.gen.JobKey;
@@ -34,6 +35,7 @@ import org.apache.aurora.scheduler.offers.OfferManager.OfferManagerImpl;
import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
import org.apache.aurora.scheduler.testing.FakeScheduledExecutor;
+import org.apache.aurora.scheduler.testing.FakeStatsProvider;
import org.apache.mesos.Protos;
import org.apache.mesos.Protos.Filters;
import org.apache.mesos.Protos.TaskInfo;
@@ -85,7 +87,8 @@ public class OfferManagerImplTest extends EasyMockTest {
OfferSettings offerSettings = new OfferSettings(
Amount.of(OFFER_FILTER_SECONDS, Time.SECONDS),
() -> RETURN_DELAY);
- offerManager = new OfferManagerImpl(driver, offerSettings, executorMock);
+ StatsProvider stats = new FakeStatsProvider();
+ offerManager = new OfferManagerImpl(driver, offerSettings, stats, executorMock);
}
@Test