You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2015/11/13 16:22:52 UTC
ambari git commit: AMBARI-13882 Flume agent does not display metrics
(dsen)
Repository: ambari
Updated Branches:
refs/heads/trunk 090905be3 -> 52346faba
AMBARI-13882 Flume agent does not display metrics (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/52346fab
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/52346fab
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/52346fab
Branch: refs/heads/trunk
Commit: 52346faba7af51f326ff7c35f0942019fe6c137d
Parents: 090905b
Author: Dmytro Sen <ds...@apache.org>
Authored: Fri Nov 13 17:22:40 2015 +0200
Committer: Dmytro Sen <ds...@apache.org>
Committed: Fri Nov 13 17:22:40 2015 +0200
----------------------------------------------------------------------
.../timeline/AbstractTimelineMetricsSink.java | 2 +-
.../sink/flume/FlumeTimelineMetricsSink.java | 4 ++
.../flume/FlumeTimelineMetricsSinkTest.java | 61 ++++++++++++++++++++
.../kafka/KafkaTimelineMetricsReporter.java | 4 ++
.../storm/StormTimelineMetricsReporter.java | 4 ++
.../sink/storm/StormTimelineMetricsSink.java | 4 ++
.../webapp/TimelineWebServices.java | 5 +-
7 files changed, 79 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/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 5aba016..78d9210 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
@@ -37,8 +37,8 @@ public abstract class AbstractTimelineMetricsSink {
public static final String METRICS_POST_TIMEOUT_SECONDS = "timeout";
public static final String COLLECTOR_HOST_PROPERTY = "collector";
public static final String COLLECTOR_PORT_PROPERTY = "port";
+ public static final int DEFAULT_POST_TIMEOUT_SECONDS = 10;
- protected static final int DEFAULT_POST_TIMEOUT_SECONDS = 10;
protected final Log LOG;
private HttpClient httpClient = new HttpClient();
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-flume-sink/src/main/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSink.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-flume-sink/src/main/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSink.java b/ambari-metrics/ambari-metrics-flume-sink/src/main/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSink.java
index 530c8c1..0257ada 100644
--- a/ambari-metrics/ambari-metrics-flume-sink/src/main/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSink.java
+++ b/ambari-metrics/ambari-metrics-flume-sink/src/main/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSink.java
@@ -80,6 +80,10 @@ public class FlumeTimelineMetricsSink extends AbstractTimelineMetricsSink implem
LOG.info("Context parameters " + context);
try {
hostname = InetAddress.getLocalHost().getHostName();
+ //If not FQDN , call DNS
+ if ((hostname == null) || (!hostname.contains("."))) {
+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
+ }
} catch (UnknownHostException e) {
LOG.error("Could not identify hostname.");
throw new FlumeException("Could not identify hostname.", e);
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java b/ambari-metrics/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
index fa1ca21..eca742d 100644
--- a/ambari-metrics/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
+++ b/ambari-metrics/ambari-metrics-flume-sink/src/test/java/org/apache/hadoop/metrics2/sink/flume/FlumeTimelineMetricsSinkTest.java
@@ -18,19 +18,28 @@
package org.apache.hadoop.metrics2.sink.flume;
+import static org.easymock.EasyMock.anyString;
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
import static org.powermock.api.easymock.PowerMock.mockStatic;
import static org.powermock.api.easymock.PowerMock.replay;
+import static org.powermock.api.easymock.PowerMock.replayAll;
+import static org.powermock.api.easymock.PowerMock.resetAll;
import static org.powermock.api.easymock.PowerMock.verifyAll;
+import java.net.InetAddress;
import java.util.Collections;
import org.apache.commons.httpclient.HttpClient;
+import org.apache.flume.Context;
import org.apache.flume.instrumentation.util.JMXPollUtil;
import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric;
import org.apache.hadoop.metrics2.sink.timeline.cache.TimelineMetricsCache;
+import org.apache.hadoop.metrics2.sink.timeline.configuration.Configuration;
import org.easymock.EasyMock;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@@ -104,4 +113,56 @@ public class FlumeTimelineMetricsSinkTest {
collector.run();
verifyAll();
}
+
+ @Test
+ @PrepareForTest({Configuration.class, FlumeTimelineMetricsSink.class})
+ public void testGettingFqdn() throws Exception {
+ FlumeTimelineMetricsSink flumeTimelineMetricsSink = new FlumeTimelineMetricsSink();
+ Configuration config = createNiceMock(Configuration.class);
+
+ expect(config.getProperty(anyString(), anyString()))
+ .andReturn("60")
+ .anyTimes();
+ expect(config.getProperty(anyString()))
+ .andReturn("60")
+ .anyTimes();
+ replay(config);
+
+ PowerMock.expectNew(Configuration.class, anyString())
+ .andReturn(config);
+ replay(Configuration.class);
+
+ // getHostName() returned FQDN
+ InetAddress address = createNiceMock(InetAddress.class);
+ expect(address.getHostName()).andReturn("hostname.domain").once();
+ replay(address);
+
+ mockStatic(InetAddress.class);
+ expect(InetAddress.getLocalHost()).andReturn(address).once();
+ replay(InetAddress.class);
+
+ flumeTimelineMetricsSink.configure(new Context());
+ verifyAll();
+
+ resetAll();
+
+ PowerMock.expectNew(Configuration.class, anyString())
+ .andReturn(config);
+ replay(Configuration.class);
+
+ // getHostName() returned short hostname, getCanonicalHostName() called
+ address = createNiceMock(InetAddress.class);
+ expect(address.getHostName()).andReturn("hostname").once();
+ expect(address.getCanonicalHostName()).andReturn("hostname.domain").once();
+ replay(address);
+
+ mockStatic(InetAddress.class);
+ expect(InetAddress.getLocalHost()).andReturn(address).times(2);
+ replay(InetAddress.class);
+
+ flumeTimelineMetricsSink.configure(new Context());
+ verifyAll();
+
+ }
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-kafka-sink/src/main/java/org/apache/hadoop/metrics2/sink/kafka/KafkaTimelineMetricsReporter.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-kafka-sink/src/main/java/org/apache/hadoop/metrics2/sink/kafka/KafkaTimelineMetricsReporter.java b/ambari-metrics/ambari-metrics-kafka-sink/src/main/java/org/apache/hadoop/metrics2/sink/kafka/KafkaTimelineMetricsReporter.java
index dd7604b..1d1b6df 100644
--- a/ambari-metrics/ambari-metrics-kafka-sink/src/main/java/org/apache/hadoop/metrics2/sink/kafka/KafkaTimelineMetricsReporter.java
+++ b/ambari-metrics/ambari-metrics-kafka-sink/src/main/java/org/apache/hadoop/metrics2/sink/kafka/KafkaTimelineMetricsReporter.java
@@ -108,6 +108,10 @@ public class KafkaTimelineMetricsReporter extends AbstractTimelineMetricsSink
LOG.info("Initializing Kafka Timeline Metrics Sink");
try {
hostname = InetAddress.getLocalHost().getHostName();
+ //If not FQDN , call DNS
+ if ((hostname == null) || (!hostname.contains("."))) {
+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
+ }
} catch (UnknownHostException e) {
LOG.error("Could not identify hostname.");
throw new RuntimeException("Could not identify hostname.", e);
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsReporter.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsReporter.java b/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsReporter.java
index 5e27cf8..73e3de8 100644
--- a/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsReporter.java
+++ b/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsReporter.java
@@ -71,6 +71,10 @@ public class StormTimelineMetricsReporter extends AbstractTimelineMetricsSink
try {
try {
hostname = InetAddress.getLocalHost().getHostName();
+ //If not FQDN , call DNS
+ if ((hostname == null) || (!hostname.contains("."))) {
+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
+ }
} catch (UnknownHostException e) {
LOG.error("Could not identify hostname.");
throw new RuntimeException("Could not identify hostname.", e);
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsSink.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsSink.java b/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsSink.java
index 3a49e0a..0edc342 100644
--- a/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsSink.java
+++ b/ambari-metrics/ambari-metrics-storm-sink/src/main/java/org/apache/hadoop/metrics2/sink/storm/StormTimelineMetricsSink.java
@@ -62,6 +62,10 @@ public class StormTimelineMetricsSink extends AbstractTimelineMetricsSink implem
LOG.info("Preparing Storm Metrics Sink");
try {
hostname = InetAddress.getLocalHost().getHostName();
+ //If not FQDN , call DNS
+ if ((hostname == null) || (!hostname.contains("."))) {
+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
+ }
} catch (UnknownHostException e) {
LOG.error("Could not identify hostname.");
throw new RuntimeException("Could not identify hostname.", e);
http://git-wip-us.apache.org/repos/asf/ambari/blob/52346fab/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TimelineWebServices.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TimelineWebServices.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TimelineWebServices.java
index ecfbe78..a13086a 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TimelineWebServices.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/TimelineWebServices.java
@@ -319,12 +319,9 @@ public class TimelineWebServices {
"or hours");
} catch (IllegalArgumentException iae) {
throw new BadRequestException(iae.getMessage());
- } catch (SQLException sql) {
+ } catch (SQLException | IOException sql) {
throw new WebApplicationException(sql,
Response.Status.INTERNAL_SERVER_ERROR);
- } catch (IOException io) {
- throw new WebApplicationException(io,
- Response.Status.INTERNAL_SERVER_ERROR);
}
}