Repository: storm Updated Branches: refs/heads/master db510ae58 -> 9d5515a8a
[STORM-2743] Add logging and metrics to monitor how long scheduling is taking Project: http://git-wip-us.apache.org/repos/asf/storm/repo Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/7d07c72a Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/7d07c72a Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/7d07c72a Branch: refs/heads/master Commit: 7d07c72a2f434f30b5d10047be65740a1b2e4f9f Parents: d2e221a Author: Ethan Li <[email protected]> Authored: Tue Sep 19 09:11:00 2017 -0500 Committer: Ethan Li <[email protected]> Committed: Fri Sep 22 10:55:04 2017 -0500 ---------------------------------------------------------------------- .../src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java | 8 ++++++++ 1 file changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/storm/blob/7d07c72a/storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java ---------------------------------------------------------------------- diff --git a/storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java b/storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java index 2c81f8e..d6b6ab6 100644 --- a/storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java +++ b/storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java @@ -18,6 +18,8 @@ package org.apache.storm.daemon.nimbus; +import com.codahale.metrics.ExponentiallyDecayingReservoir; +import com.codahale.metrics.Histogram; import com.codahale.metrics.Meter; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; @@ -215,6 +217,7 @@ public class Nimbus implements Iface, Shutdownable, DaemonCommon { private static final Meter getSupervisorPageInfoCalls = StormMetricsRegistry.registerMeter("nimbus:num-getSupervisorPageInfo-calls"); private static final Meter getComponentPageInfoCalls = StormMetricsRegistry.registerMeter("nimbus:num-getComponentPageInfo-calls"); private static final Meter getOwnerResourceSummariesCalls = StormMetricsRegistry.registerMeter("nimbus:num-getOwnerResourceSummaries-calls"); + private static final Histogram scheduleTopologyTimeMs = StormMetricsRegistry.registerHistogram("nimbus:time-scheduleTopology-ms", new ExponentiallyDecayingReservoir()); private static final Meter shutdownCalls = StormMetricsRegistry.registerMeter("nimbus:num-shutdown-calls"); // END Metrics @@ -1602,7 +1605,12 @@ public class Nimbus implements Iface, Shutdownable, DaemonCommon { Map<String, SupervisorDetails> supervisors = readAllSupervisorDetails(supervisorToDeadPorts, topologies, missingAssignmentTopologies); Cluster cluster = new Cluster(inimbus, supervisors, topoToSchedAssignment, topologies, conf); cluster.setStatusMap(idToSchedStatus.get()); + + long beforeSchedule = System.currentTimeMillis(); scheduler.schedule(topologies, cluster); + long scheduleTimeElapsedMs = System.currentTimeMillis() - beforeSchedule; + LOG.info("Scheduling took {} ms for {} topologies", scheduleTimeElapsedMs, topologies.getTopologies().size()); + scheduleTopologyTimeMs.update(scheduleTimeElapsedMs); //merge with existing statuses idToSchedStatus.set(Utils.merge(idToSchedStatus.get(), cluster.getStatusMap()));
