You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by ag...@apache.org on 2020/10/29 16:16:10 UTC

[storm] branch master updated: STORM-3707 add meter to track update blob exceptions

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


The following commit(s) were added to refs/heads/master by this push:
     new d3a06a2  STORM-3707 add meter to track update blob exceptions
     new 1d653a2  Merge pull request #3341 from agresch/agresch_storm_3707
d3a06a2 is described below

commit d3a06a2fc0c577b9db7f14e24b99f7bf70d2d55d
Author: Aaron Gresch <ag...@yahoo-inc.com>
AuthorDate: Tue Oct 27 16:45:17 2020 -0500

    STORM-3707 add meter to track update blob exceptions
---
 docs/ClusterMetrics.md                                                 | 1 +
 .../src/main/java/org/apache/storm/localizer/AsyncLocalizer.java       | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/docs/ClusterMetrics.md b/docs/ClusterMetrics.md
index 0ed4f3a..6aa87eb 100644
--- a/docs/ClusterMetrics.md
+++ b/docs/ClusterMetrics.md
@@ -214,6 +214,7 @@ Metrics associated with the supervisor, which launches the workers for a topolog
 | supervisor:time-worker-spent-in-state-waiting-for-blob-localization-ms | timer | time spent in waiting-for-blob-localization state as it transitions out. Not necessarily in ms. |
 | supervisor:time-worker-spent-in-state-waiting-for-blob-update-ms | timer | time spent in waiting-for-blob-update state as it transitions out. Not necessarily in ms. |
 | supervisor:time-worker-spent-in-state-waiting-for-worker-start-ms | timer | time spent in waiting-for-worker-start state as it transitions out. Not necessarily in ms. |
+| supervisor:update-blob-exceptions | meter | number of exceptions updating blobs. |
 | supervisor:worker-launch-duration | timer | Time taken for a worker to launch. |
 | supervisor:worker-per-call-clean-up-duration-ns | meter | how long it takes to cleanup a worker (ns). |
 | supervisor:worker-shutdown-duration-ns | meter | how long it takes to shutdown a worker (ns). |
diff --git a/storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java b/storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java
index 054dc62..d899a8a 100644
--- a/storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java
+++ b/storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java
@@ -79,6 +79,7 @@ public class AsyncLocalizer implements AutoCloseable {
     private final Timer blobLocalizationDuration;
     private final Meter numBlobUpdateVersionChanged;
     private final Meter localResourceFileNotFoundWhenReleasingSlot;
+    private final Meter updateBlobExceptions;
 
     // track resources - user to resourceSet
     //ConcurrentHashMap is explicitly used everywhere in this class because it uses locks to guarantee atomicity for compute and
@@ -113,6 +114,7 @@ public class AsyncLocalizer implements AutoCloseable {
         this.numBlobUpdateVersionChanged = metricsRegistry.registerMeter("supervisor:num-blob-update-version-changed");
         this.localResourceFileNotFoundWhenReleasingSlot
                 = metricsRegistry.registerMeter("supervisor:local-resource-file-not-found-when-releasing-slot");
+        this.updateBlobExceptions = metricsRegistry.registerMeter("supervisor:update-blob-exceptions");
         this.metricsRegistry = metricsRegistry;
         isLocalMode = ConfigUtils.isLocalMode(conf);
         fsOps = ops;
@@ -330,6 +332,7 @@ public class AsyncLocalizer implements AutoCloseable {
                 try {
                     f.get();
                 } catch (Exception e) {
+                    updateBlobExceptions.mark();
                     if (Utils.exceptionCauseIsInstanceOf(TTransportException.class, e)) {
                         LOG.error("Network error while updating blobs, will retry again later", e);
                     } else if (Utils.exceptionCauseIsInstanceOf(NimbusLeaderNotFoundException.class, e)) {