AMBARI-21334 Ability to disable Container metrics in AMS (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6eaabc12 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6eaabc12 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6eaabc12 Branch: refs/heads/branch-feature-logsearch-ui Commit: 6eaabc120a2604b3e15c41f77dd88da52b3f6dd0 Parents: a2464b9 Author: Dmytro Sen <d...@apache.org> Authored: Mon Jun 26 19:52:14 2017 +0300 Committer: Dmytro Sen <d...@apache.org> Committed: Mon Jun 26 19:52:14 2017 +0300 ---------------------------------------------------------------------- .../metrics/timeline/HBaseTimelineMetricStore.java | 9 ++++++++- .../metrics/timeline/TimelineMetricConfiguration.java | 11 +++++++++++ .../metrics/timeline/TestTimelineMetricStore.java | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6eaabc12/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java index 12c27a4..ad1fd67 100644 --- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java +++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java @@ -82,6 +82,7 @@ public class HBaseTimelineMetricStore extends AbstractService implements Timelin private TimelineMetricMetadataManager metricMetadataManager; private Integer defaultTopNHostsLimit; private MetricCollectorHAController haController; + private boolean containerMetricsDisabled = false; /** * Construct the service. @@ -188,7 +189,7 @@ public class HBaseTimelineMetricStore extends AbstractService implements Timelin LOG.info("Started watchdog for timeline metrics store with initial " + "delay = " + initDelay + ", delay = " + delay); } - + containerMetricsDisabled = configuration.isContainerMetricsDisabled(); isInitialized = true; } @@ -363,6 +364,12 @@ public class HBaseTimelineMetricStore extends AbstractService implements Timelin @Override public TimelinePutResponse putContainerMetrics(List<ContainerMetric> metrics) throws SQLException, IOException { + + if (containerMetricsDisabled) { + LOG.debug("Ignoring submitted container metrics according to configuration. Values will not be stored."); + return new TimelinePutResponse(); + } + hBaseAccessor.insertContainerMetrics(metrics); return new TimelinePutResponse(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/6eaabc12/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java index 006a403..44073ab 100644 --- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java +++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java @@ -191,6 +191,9 @@ public class TimelineMetricConfiguration { public static final String TIMELINE_SERVICE_RPC_ADDRESS = "timeline.metrics.service.rpc.address"; + public static final String TIMELINE_SERVICE_DISABLE_CONTAINER_METRICS = + "timeline.metrics.service.container.metrics.disabled"; + public static final String CLUSTER_AGGREGATOR_APP_IDS = "timeline.metrics.service.cluster.aggregator.appIds"; @@ -507,4 +510,12 @@ public class TimelineMetricConfiguration { return whitelist; } + + public boolean isContainerMetricsDisabled() { + try { + return metricsConf != null && Boolean.parseBoolean(metricsConf.get(TIMELINE_SERVICE_DISABLE_CONTAINER_METRICS, "false")); + } catch (Exception e) { + return false; + } + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/6eaabc12/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TestTimelineMetricStore.java ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TestTimelineMetricStore.java b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TestTimelineMetricStore.java index ac2f9d7..8abcd83 100644 --- a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TestTimelineMetricStore.java +++ b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TestTimelineMetricStore.java @@ -111,4 +111,5 @@ public class TestTimelineMetricStore implements TimelineMetricStore { public List<String> getLiveInstances() { return Collections.emptyList(); } + }