This is an automated email from the ASF dual-hosted git repository.

agresch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git


View the commit online:
https://github.com/apache/storm/commit/bd42fe98a6e56ac17467f3903d41f93539d234f5

The following commit(s) were added to refs/heads/master by this push:
     new bd42fe9  STORM-3539 Add metric for worker start time out
     new 0c6648a  Merge pull request #3168 from dandsager1/STORM-3539
bd42fe9 is described below

commit bd42fe98a6e56ac17467f3903d41f93539d234f5
Author: david <[email protected]>
AuthorDate: Fri Nov 15 11:25:35 2019 -0600

    STORM-3539 Add metric for worker start time out
---
 docs/ClusterMetrics.md                                                  | 1 +
 storm-server/src/main/java/org/apache/storm/daemon/supervisor/Slot.java | 1 +
 .../src/main/java/org/apache/storm/daemon/supervisor/SlotMetrics.java   | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/docs/ClusterMetrics.md b/docs/ClusterMetrics.md
index 4e4d0f1..f7f7b4f 100644
--- a/docs/ClusterMetrics.md
+++ b/docs/ClusterMetrics.md
@@ -185,6 +185,7 @@ Metrics associated with the supervisor, which launches the 
workers for a topolog
 | supervisor:num-launched | meter | number of times the supervisor is 
launched. |
 | supervisor:num-shell-exceptions | meter | number of exceptions calling shell 
commands. |
 | supervisor:num-slots-used-gauge | gauge | number of slots used on the 
supervisor. |
+| supervisor:num-worker-start-timed-out | meter | number of times worker start 
timed out. |
 | supervisor:num-worker-transitions-into-empty | meter | number of transitions 
into empty state. |
 | supervisor:num-worker-transitions-into-kill | meter | number of transitions 
into kill state. |
 | supervisor:num-worker-transitions-into-kill-and-relaunch | meter | number of 
transitions into kill-and-relaunch state |
diff --git 
a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Slot.java 
b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Slot.java
index 7575a91..df419b9 100644
--- a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Slot.java
+++ b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/Slot.java
@@ -684,6 +684,7 @@ public class Slot extends Thread implements AutoCloseable, 
BlobChangingCallback
         long timeDiffms = (Time.currentTimeMillis() - dynamicState.startTime);
         long hbFirstTimeoutMs = getFirstHbTimeoutMs(staticState, dynamicState);
         if (timeDiffms > hbFirstTimeoutMs) {
+            staticState.slotMetrics.numWorkerStartTimedOut.mark();
             LOG.warn("SLOT {}: Container {} failed to launch in {} ms.", 
staticState.port, dynamicState.container,
                     hbFirstTimeoutMs);
             return killContainerFor(KillReason.HB_TIMEOUT, dynamicState, 
staticState);
diff --git 
a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/SlotMetrics.java
 
b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/SlotMetrics.java
index f8e13fd..8b2f5f1 100644
--- 
a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/SlotMetrics.java
+++ 
b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/SlotMetrics.java
@@ -26,6 +26,7 @@ import org.apache.storm.utils.EnumUtil;
 class SlotMetrics {
 
     final Meter numWorkersLaunched;
+    final Meter numWorkerStartTimedOut;
     final Map<Slot.KillReason, Meter> numWorkersKilledFor;
     final Timer workerLaunchDuration;
     final Map<Slot.MachineState, Meter> transitionIntoState;
@@ -34,6 +35,7 @@ class SlotMetrics {
 
     SlotMetrics(StormMetricsRegistry metricsRegistry) {
         numWorkersLaunched = 
metricsRegistry.registerMeter("supervisor:num-workers-launched");
+        numWorkerStartTimedOut = 
metricsRegistry.registerMeter("supervisor:num-worker-start-timed-out");
         numWorkersKilledFor = 
Collections.unmodifiableMap(EnumUtil.toEnumMap(Slot.KillReason.class,
             killReason -> 
metricsRegistry.registerMeter("supervisor:num-workers-killed-" + 
killReason.toString())));
         workerLaunchDuration = 
metricsRegistry.registerTimer("supervisor:worker-launch-duration");

Reply via email to