You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2016/06/08 11:47:30 UTC

ambari git commit: AMBARI-16991. Fix metric sink (Miklos Gergely via oleewere)

Repository: ambari
Updated Branches:
  refs/heads/trunk fa2f440a5 -> e18718a8c


AMBARI-16991. Fix metric sink (Miklos Gergely via oleewere)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e18718a8
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e18718a8
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e18718a8

Branch: refs/heads/trunk
Commit: e18718a8cb8390b4d27cd986692afd3104a6c0bc
Parents: fa2f440
Author: Miklos Gergely <mg...@hortonworks.com>
Authored: Wed Jun 8 13:46:05 2016 +0200
Committer: oleewere <ol...@gmail.com>
Committed: Wed Jun 8 13:46:21 2016 +0200

----------------------------------------------------------------------
 .../timeline/AbstractTimelineMetricsSink.java     | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e18718a8/ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java b/ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java
index ca7ccea..f0cea7a 100644
--- a/ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java
+++ b/ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java
@@ -51,10 +51,8 @@ import java.net.URL;
 import java.security.KeyStore;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Random;
-import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -93,7 +91,7 @@ public abstract class AbstractTimelineMetricsSink {
 
   // Single element cache with fixed expiration - Helps adjacent Sinks as
   // well as timed refresh
-  protected Supplier targetCollectorHostSupplier;
+  protected Supplier<String> targetCollectorHostSupplier;
 
   protected final List<String> allKnownLiveCollectors = new ArrayList<>();
 
@@ -201,7 +199,7 @@ public abstract class AbstractTimelineMetricsSink {
     String collectorHost;
     // Get cached target
     if (targetCollectorHostSupplier != null) {
-      collectorHost = (String) targetCollectorHostSupplier.get();
+      collectorHost = targetCollectorHostSupplier.get();
       // Last X attempts have failed - force refresh
       if (failedCollectorConnectionsCounter.get() > RETRY_COUNT_BEFORE_COLLECTOR_FAILOVER) {
         targetCollectorHostSupplier = null;
@@ -322,9 +320,9 @@ public abstract class AbstractTimelineMetricsSink {
 
     // Auto expire and re-calculate after 1 hour
     if (targetCollectorHostSupplier != null) {
-      Object targetCollector = targetCollectorHostSupplier.get();
+      String targetCollector = targetCollectorHostSupplier.get();
       if (targetCollector != null) {
-        return (String) targetCollector;
+        return targetCollector;
       }
     }
 
@@ -361,15 +359,15 @@ public abstract class AbstractTimelineMetricsSink {
     }
 
     // Lookup Zookeeper for live hosts - max 10 seconds wait time
-    if (allKnownLiveCollectors.size() == 0) {
+    if (allKnownLiveCollectors.size() == 0 && getZookeeperQuorum() != null) {
       allKnownLiveCollectors.addAll(collectorHAHelper.findLiveCollectorHostsFromZNode());
     }
 
     if (allKnownLiveCollectors.size() != 0) {
       targetCollectorHostSupplier = Suppliers.memoizeWithExpiration(
-        new Supplier() {
+        new Supplier<String>() {
           @Override
-          public Object get() {
+          public String get() {
             return metricSinkWriteShardStrategy.findCollectorShard(new ArrayList<>(allKnownLiveCollectors));
           }
         },  // random.nextInt(max - min + 1) + min # (60 to 75 minutes)
@@ -379,7 +377,7 @@ public abstract class AbstractTimelineMetricsSink {
         TimeUnit.MINUTES
       );
 
-      return (String) targetCollectorHostSupplier.get();
+      return targetCollectorHostSupplier.get();
     }
     return null;
   }