Repository: ambari Updated Branches: refs/heads/branch-2.1 9d77d83ca -> 55a4837b0
AMBARI-13521 Allow Monitors/Agents to be configured to communicate with a collector that is behind a VIP (dsen) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/55a4837b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/55a4837b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/55a4837b Branch: refs/heads/branch-2.1 Commit: 55a4837b0440378df43486f81eae8a6badc8af99 Parents: 9d77d83 Author: Dmytro Sen <d...@apache.org> Authored: Fri Oct 23 20:35:54 2015 +0300 Committer: Dmytro Sen <d...@apache.org> Committed: Fri Oct 23 20:37:14 2015 +0300 ---------------------------------------------------------------------- .../internal/AbstractProviderModule.java | 114 +++++++++++++------ .../controller/metrics/MetricHostProvider.java | 4 +- .../metrics/timeline/AMSPropertyProvider.java | 3 +- .../timeline/AMSReportPropertyProvider.java | 2 +- .../1.6.1.2.2.0/package/scripts/params.py | 19 +++- .../0.1.0/package/scripts/params.py | 19 +++- .../0.1.0/package/scripts/service_check.py | 8 +- .../hadoop-metrics2-hbase.properties.j2 | 8 +- .../package/templates/metric_monitor.ini.j2 | 2 +- .../FLUME/1.4.0.2.0/package/scripts/params.py | 18 ++- .../0.96.0.2.0/package/scripts/params_linux.py | 18 ++- .../KAFKA/0.8.1.2.2/package/scripts/params.py | 20 +++- .../0.9.1.2.1/package/scripts/params_linux.py | 16 ++- .../0.9.1.2.1/package/templates/config.yaml.j2 | 2 +- .../templates/storm-metrics2.properties.j2 | 2 +- .../2.0.6/hooks/before-START/scripts/params.py | 24 ++-- .../2.1/hooks/before-START/scripts/params.py | 23 ++-- .../metrics/JMXPropertyProviderTest.java | 2 +- .../RestMetricsPropertyProviderTest.java | 2 +- .../ganglia/GangliaPropertyProviderTest.java | 2 +- .../GangliaReportPropertyProviderTest.java | 2 +- .../timeline/AMSPropertyProviderTest.java | 2 +- .../python/stacks/2.0.6/FLUME/test_flume.py | 2 +- .../python/stacks/2.0.6/configs/default.json | 20 ++-- 24 files changed, 232 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java index 5d33e22..3ac64e3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java @@ -87,7 +87,7 @@ public abstract class AbstractProviderModule implements ProviderModule, private static final String GANGLIA_SERVER = "GANGLIA_SERVER"; private static final String METRIC_SERVER = "METRICS_COLLECTOR"; private static final String PROPERTIES_CATEGORY = "properties"; - private static final Map<Service.Type, String> serviceConfigVersions = new ConcurrentHashMap<Service.Type, String>(); + private static final Map<String, String> serviceConfigVersions = new ConcurrentHashMap<String, String>(); private static final Map<Service.Type, String> serviceConfigTypes = new EnumMap<Service.Type, String>(Service.Type.class); private static final Map<Service.Type, Map<String, String[]>> serviceDesiredProperties = new EnumMap<Service.Type, Map<String, String[]>>(Service.Type.class); private static final Map<String, Service.Type> componentServiceMap = new HashMap<String, Service.Type>(); @@ -99,7 +99,10 @@ public abstract class AbstractProviderModule implements ProviderModule, private static final Map<String, Map<String, String[]>> jmxDesiredProperties = new HashMap<String, Map<String, String[]>>(); private volatile Map<String, String> clusterHdfsSiteConfigVersionMap = new HashMap<String, String>(); private volatile Map<String, String> clusterJmxProtocolMap = new HashMap<String, String>(); + private volatile Set<String> metricServerHosts = new HashSet<String>(); private volatile String clusterMetricServerPort = null; + private volatile String clusterMetricServerVipPort = null; + private volatile String clusterMetricserverVipHost = null; static { serviceConfigTypes.put(Service.Type.HDFS, "hdfs-site"); @@ -267,57 +270,96 @@ public abstract class AbstractProviderModule implements ProviderModule, // ----- MetricsHostProvider ------------------------------------------------ @Override - public String getCollectorHostName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorHostName(String clusterName, MetricsService service) + throws SystemException { + checkInit(); if (service.equals(GANGLIA)) { return clusterGangliaCollectorMap.get(clusterName); } else if (service.equals(TIMELINE_METRICS)) { - return clusterMetricCollectorMap.get(clusterName); + return getMetricsCollectorHostName(clusterName); } return null; } + private String getMetricsCollectorHostName(String clusterName) + throws SystemException { + try { + // try to get vip properties from cluster-env + String configType = "cluster-env"; + String currentConfigVersion = getDesiredConfigVersion(clusterName, configType); + String oldConfigVersion = serviceConfigVersions.get(configType); + if (!currentConfigVersion.equals(oldConfigVersion)) { + serviceConfigVersions.put(configType, currentConfigVersion); + Map<String, String> configProperties = getDesiredConfigMap + (clusterName, currentConfigVersion, configType, + Collections.singletonMap("METRICS_COLLECTOR", + new String[]{"metrics_collector_vip_host"})); + + if (!configProperties.isEmpty()) { + clusterMetricserverVipHost = configProperties.get("METRICS_COLLECTOR"); + if (clusterMetricserverVipHost != null) { + clusterMetricCollectorMap.put(clusterName, clusterMetricserverVipHost); + } + } + // updating the port value, because both vip properties are stored in + // cluster-env + configProperties = getDesiredConfigMap + (clusterName, currentConfigVersion, configType, + Collections.singletonMap("METRICS_COLLECTOR", + new String[]{"metrics_collector_vip_port"})); + + if (!configProperties.isEmpty()) { + clusterMetricServerVipPort = configProperties.get("METRICS_COLLECTOR"); + } + } + } catch (NoSuchParentResourceException | UnsupportedPropertyException e) { + LOG.warn("Failed to retrieve collector hostname.", e); + } + return clusterMetricCollectorMap.get(clusterName); + } + @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { checkInit(); if (service.equals(GANGLIA)) { return "80"; // Not called by the provider } else if (service.equals(TIMELINE_METRICS)) { try { - String configType = serviceConfigTypes.get(Service.Type.AMBARI_METRICS); - String currentConfigVersion = getDesiredConfigVersion(clusterName, configType); - String oldConfigVersion = serviceConfigVersions.get(Service.Type.AMBARI_METRICS); - - if (!currentConfigVersion.equals(oldConfigVersion)) { - serviceConfigVersions.put(Service.Type.AMBARI_METRICS, currentConfigVersion); - - Map<String, String> configProperties = getDesiredConfigMap - (clusterName, currentConfigVersion, configType, + if (clusterMetricServerVipPort == null) { + String configType = serviceConfigTypes.get(Service.Type.AMBARI_METRICS); + String currentConfigVersion = getDesiredConfigVersion(clusterName, configType); + String oldConfigVersion = serviceConfigVersions.get(configType); + if (!currentConfigVersion.equals(oldConfigVersion)) { + serviceConfigVersions.put(configType, currentConfigVersion); + + Map<String, String> configProperties = getDesiredConfigMap(clusterName, + currentConfigVersion, configType, Collections.singletonMap("METRICS_COLLECTOR", - new String[] { "timeline.metrics.service.webapp.address" })); + new String[]{"timeline.metrics.service.webapp.address"})); - if (!configProperties.isEmpty()) { - clusterMetricServerPort = getPortString(configProperties.get("METRICS_COLLECTOR")); - } else { - clusterMetricServerPort = COLLECTOR_DEFAULT_PORT; + if (!configProperties.isEmpty()) { + clusterMetricServerPort = getPortString(configProperties.get("METRICS_COLLECTOR")); + } else { + clusterMetricServerPort = COLLECTOR_DEFAULT_PORT; + } } } - - } catch (NoSuchParentResourceException e) { - LOG.warn("Failed to retrieve collector port.", e); - } catch (UnsupportedPropertyException e) { + } catch (NoSuchParentResourceException | UnsupportedPropertyException e) { LOG.warn("Failed to retrieve collector port.", e); } } - return clusterMetricServerPort; + return clusterMetricServerVipPort != null ? clusterMetricServerVipPort : clusterMetricServerPort; } @Override public boolean isCollectorHostLive(String clusterName, MetricsService service) throws SystemException { - - final String collectorHostName = getCollectorHostName(clusterName, service); - - return isHostLive(clusterName, collectorHostName); + for (String hostname: metricServerHosts) { + if (isHostLive(clusterName, hostname)) { + return true; + } + } + return false; } @Override @@ -348,8 +390,12 @@ public abstract class AbstractProviderModule implements ProviderModule, return isHostComponentLive(clusterName, collectorHostName, "GANGLIA", Role.GANGLIA_SERVER.name()); } else if (service.equals(TIMELINE_METRICS)) { - return isHostComponentLive(clusterName, collectorHostName, "AMBARI_METRICS", - Role.METRICS_COLLECTOR.name()); + for (String hostname: metricServerHosts) { + if (isHostComponentLive(clusterName, hostname, "AMBARI_METRICS", + Role.METRICS_COLLECTOR.name())) { + return true; + } + } } return false; } @@ -426,8 +472,9 @@ public abstract class AbstractProviderModule implements ProviderModule, if (service != null) { try { - String currVersion = getDesiredConfigVersion(clusterName, serviceConfigTypes.get(service)); - String oldVersion = serviceConfigVersions.get(service); + String configType = serviceConfigTypes.get(service); + String currVersion = getDesiredConfigVersion(clusterName, configType); + String oldVersion = serviceConfigVersions.get(configType); // We only update port map when a config version updates, // Since concurrent thread access is expected we err on the side of @@ -436,7 +483,7 @@ public abstract class AbstractProviderModule implements ProviderModule, if (!currVersion.equals(oldVersion) || !clusterJmxPorts.containsKey(componentName)) { - serviceConfigVersions.put(service, currVersion); + serviceConfigVersions.put(configType, currVersion); Map<String, String[]> componentPorts = new HashMap<String, String[]>(); String[] componentsHttpsPorts; @@ -721,6 +768,7 @@ public abstract class AbstractProviderModule implements ProviderModule, } if (componentName.equals(METRIC_SERVER)) { clusterMetricCollectorMap.put(clusterName, hostName); + metricServerHosts.add(hostName); } } } @@ -791,7 +839,7 @@ public abstract class AbstractProviderModule implements ProviderModule, } return versionTag; } - + // TODO get configs using ConfigHelper private Map<String, String> getDesiredConfigMap(String clusterName, String versionTag, String configType, Map<String, String[]> keys) throws NoSuchParentResourceException, UnsupportedPropertyException, SystemException { http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricHostProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricHostProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricHostProvider.java index a5a7a71..38ab2a0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricHostProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/MetricHostProvider.java @@ -51,9 +51,9 @@ public interface MetricHostProvider { * * @return the metrics server * - * @throws org.apache.ambari.server.controller.spi.SystemException if unable to get the metrics server host name + * @throws org.apache.ambari.server.controller.spi.SystemException if unable to get the metrics server port */ - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException; + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException; /** * Get the status of metrics server host for the given cluster name. http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java index f221dce..2af7452 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java @@ -50,7 +50,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -564,7 +563,7 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider { } if (collectorPort == null) { - collectorPort = hostProvider.getCollectorPortName(clusterName, TIMELINE_METRICS); + collectorPort = hostProvider.getCollectorPort(clusterName, TIMELINE_METRICS); } for (String id : ids) { http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSReportPropertyProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSReportPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSReportPropertyProvider.java index 85ea575..8b60c50 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSReportPropertyProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSReportPropertyProvider.java @@ -172,7 +172,7 @@ public class AMSReportPropertyProvider extends MetricsReportPropertyProvider { Map<String, MetricReportRequest> reportRequestMap = getPropertyIdMaps(request, ids); String host = hostProvider.getCollectorHostName(clusterName, TIMELINE_METRICS); - String port = hostProvider.getCollectorPortName(clusterName, TIMELINE_METRICS); + String port = hostProvider.getCollectorPort(clusterName, TIMELINE_METRICS); URIBuilder uriBuilder = AMSPropertyProvider.getAMSUriBuilder(host, port != null ? Integer.parseInt(port) : 8188); http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py index 485128e..b4d8a97 100644 --- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py @@ -117,12 +117,21 @@ ganglia_server_host = '' if len(ganglia_server_hosts) == 0 else ganglia_server_h ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' pass - metrics_report_interval = default("/configurations/ams-site/timeline.metrics.sink.report.interval", 60) metrics_collection_period = default("/configurations/ams-site/timeline.metrics.sink.collection.period", 60) http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py index 8b5ec7a..3a348f8 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py @@ -38,11 +38,20 @@ ams_pid_dir = status_params.ams_collector_pid_dir ams_collector_script = "/usr/sbin/ambari-metrics-collector" ams_collector_pid_dir = status_params.ams_collector_pid_dir ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) -ams_collector_host_single = ams_collector_hosts[0] #TODO cardinality is 1+ so we can have more than one host -metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") -if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] -pass +if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] +else: + metric_collector_host = ams_collector_hosts[0] +if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] +else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' ams_collector_log_dir = config['configurations']['ams-env']['metrics_collector_log_dir'] ams_monitor_log_dir = config['configurations']['ams-env']['metrics_monitor_log_dir'] http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py index 7c68d98..d2c0cbb 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py @@ -76,10 +76,10 @@ class AMSServiceCheck(Script): for i in xrange(0, self.AMS_CONNECT_TRIES): try: - Logger.info("Connecting (POST) to %s:%s%s" % (params.ams_collector_host_single, + Logger.info("Connecting (POST) to %s:%s%s" % (params.metric_collector_host, params.metric_collector_port, self.AMS_METRICS_POST_URL)) - conn = httplib.HTTPConnection(params.ams_collector_host_single, + conn = httplib.HTTPConnection(params.metric_collector_host, int(params.metric_collector_port)) conn.request("POST", self.AMS_METRICS_POST_URL, metric_json, headers) except (httplib.HTTPException, socket.error) as ex: @@ -123,11 +123,11 @@ class AMSServiceCheck(Script): } encoded_get_metrics_parameters = urllib.urlencode(get_metrics_parameters) - Logger.info("Connecting (GET) to %s:%s%s" % (params.ams_collector_host_single, + Logger.info("Connecting (GET) to %s:%s%s" % (params.metric_collector_host, params.metric_collector_port, self.AMS_METRICS_GET_URL % encoded_get_metrics_parameters)) - conn = httplib.HTTPConnection(params.ams_collector_host_single, + conn = httplib.HTTPConnection(params.metric_collector_host, int(params.metric_collector_port)) conn.request("GET", self.AMS_METRICS_GET_URL % encoded_get_metrics_parameters) response = conn.getresponse() http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/hadoop-metrics2-hbase.properties.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/hadoop-metrics2-hbase.properties.j2 b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/hadoop-metrics2-hbase.properties.j2 index f0a14b6..a65ea88 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/hadoop-metrics2-hbase.properties.j2 +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/hadoop-metrics2-hbase.properties.j2 @@ -40,22 +40,22 @@ hbase.extendedperiod = 3600 hbase.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink hbase.period=30 -hbase.collector={{ams_collector_host_single}}:{{metric_collector_port}} +hbase.collector={{metric_collector_host}}:{{metric_collector_port}} jvm.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink jvm.period=30 -jvm.collector={{ams_collector_host_single}}:{{metric_collector_port}} +jvm.collector={{metric_collector_host}}:{{metric_collector_port}} rpc.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink rpc.period=30 -rpc.collector={{ams_collector_host_single}}:{{metric_collector_port}} +rpc.collector={{metric_collector_host}}:{{metric_collector_port}} *.timeline.plugin.urls=file:///usr/lib/ambari-metrics-hadoop-sink/ambari-metrics-hadoop-sink.jar *.sink.timeline.slave.host.name={{hostname}} hbase.sink.timeline.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink hbase.sink.timeline.period={{metrics_collection_period}} hbase.sink.timeline.sendInterval={{metrics_report_interval}}000 -hbase.sink.timeline.collector={{ams_collector_host_single}}:{{metric_collector_port}} +hbase.sink.timeline.collector={{metric_collector_host}}:{{metric_collector_port}} hbase.sink.timeline.serviceName-prefix=ams # Switch off metrics generation on a per region basis http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/metric_monitor.ini.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/metric_monitor.ini.j2 b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/metric_monitor.ini.j2 index 40b18d7..fef60b7 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/metric_monitor.ini.j2 +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/templates/metric_monitor.ini.j2 @@ -18,7 +18,7 @@ [default] debug_level = INFO -metrics_server = {{ams_collector_host_single}}:{{metric_collector_port}} +metrics_server = {{metric_collector_host}}:{{metric_collector_port}} enable_time_threshold = false enable_value_threshold = false http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/params.py index a80ea1e..9a6d5b6 100644 --- a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/params.py @@ -87,10 +87,20 @@ if config.has_key('hostname'): ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' pass metrics_report_interval = default("/configurations/ams-site/timeline.metrics.sink.report.interval", 60) metrics_collection_period = default("/configurations/ams-site/timeline.metrics.sink.collection.period", 60) http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py index 31e80bf..7bc979d 100644 --- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py @@ -142,10 +142,20 @@ ganglia_server_host = '' if len(ganglia_server_hosts) == 0 else ganglia_server_h ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' pass metrics_report_interval = default("/configurations/ams-site/timeline.metrics.sink.report.interval", 60) metrics_collection_period = default("/configurations/ams-site/timeline.metrics.sink.collection.period", 60) http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py index da8333a..dc3a61b 100644 --- a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py @@ -93,11 +93,21 @@ ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] - + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' + pass # Security-related params security_enabled = config['configurations']['cluster-env']['security_enabled'] kafka_kerberos_enabled = ('security.inter.broker.protocol' in config['configurations']['kafka-broker'] and http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py index c1f118f..86de2ec 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py @@ -145,7 +145,21 @@ if stack_is_hdp22_or_further: ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' + metric_collector_report_interval = 60 metric_collector_app_id = "nimbus" http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 index 460e391..01c61bf 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 @@ -58,7 +58,7 @@ metrics_collector: reportInterval: {{metric_collector_report_interval}} host: "{{metric_collector_host}}" - port: 6188 + port: {{metric_collector_port}} appId: "{{metric_collector_app_id}}" {% endif %} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 index 060b4fc..a5ee7a9 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 @@ -17,6 +17,6 @@ #} collector={{metric_collector_host}} -port=6188 +port={{metric_collector_port}} maxRowCacheSize=10000 sendInterval={{metrics_report_interval}}000 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py index 5a32b73..301e25d 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py @@ -81,9 +81,9 @@ ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_namenode = not len(namenode_host) == 0 has_resourcemanager = not len(rm_host) == 0 has_slaves = not len(slave_hosts) == 0 -has_oozie_server = not len(oozie_servers) == 0 -has_hcat_server_host = not len(hcat_server_hosts) == 0 -has_hive_server_host = not len(hive_server_host) == 0 +has_oozie_server = not len(oozie_servers) == 0 +has_hcat_server_host = not len(hcat_server_hosts) == 0 +has_hive_server_host = not len(hive_server_host) == 0 has_hbase_masters = not len(hbase_master_hosts) == 0 has_zk_host = not len(zk_hosts) == 0 has_ganglia_server = not len(ganglia_server_hosts) == 0 @@ -98,10 +98,20 @@ is_slave = hostname in slave_hosts if has_ganglia_server: ganglia_server_host = ganglia_server_hosts[0] if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' pass metrics_report_interval = default("/configurations/ams-site/timeline.metrics.sink.report.interval", 60) metrics_collection_period = default("/configurations/ams-site/timeline.metrics.sink.collection.period", 60) http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/before-START/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/before-START/scripts/params.py b/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/before-START/scripts/params.py index 093ea38..469e709 100644 --- a/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/before-START/scripts/params.py +++ b/ambari-server/src/main/resources/stacks/HDPWIN/2.1/hooks/before-START/scripts/params.py @@ -23,15 +23,24 @@ config = Script.get_config() ams_collector_hosts = default("/clusterHostInfo/metrics_collector_hosts", []) has_metric_collector = not len(ams_collector_hosts) == 0 if has_metric_collector: - metric_collector_host = ams_collector_hosts[0] - metric_collector_port = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_port and metric_collector_port.find(':') != -1: - metric_collector_port = metric_collector_port.split(':')[1] - pass + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] + else: + metric_collector_host = ams_collector_hosts[0] + if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] + else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' + sink_home = os.environ["SINK_HOME"] timeline_plugin_url = "file:"+nturl2path.pathname2url(os.path.join(sink_home, "hadoop-sink", "ambari-metrics-hadoop-sink.jar")) - - + pass hadoop_conf_dir = os.environ["HADOOP_CONF_DIR"] hbase_conf_dir = os.environ["HBASE_CONF_DIR"] http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/JMXPropertyProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/JMXPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/JMXPropertyProviderTest.java index afd4752..f0c1280 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/JMXPropertyProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/JMXPropertyProviderTest.java @@ -438,7 +438,7 @@ public class JMXPropertyProviderTest { } @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { return null; } http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java index 500eea4..82b42f2 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java @@ -399,7 +399,7 @@ public class RestMetricsPropertyProviderTest { } @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { return null; } http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java index dd7f95d..98de9cf 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java @@ -871,7 +871,7 @@ public class GangliaPropertyProviderTest { } @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { return null; } http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProviderTest.java index c7ba4a9..0f01b24 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProviderTest.java @@ -115,7 +115,7 @@ public class GangliaReportPropertyProviderTest { } @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { return null; } http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java index 71febc9..ce865cf 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java @@ -695,7 +695,7 @@ public class AMSPropertyProviderTest { } @Override - public String getCollectorPortName(String clusterName, MetricsService service) throws SystemException { + public String getCollectorPort(String clusterName, MetricsService service) throws SystemException { return "8188"; } http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py index c3722c6..5ce39af 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py +++ b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py @@ -61,7 +61,7 @@ class TestFlumeHandler(RMFTestCase): self.assertTrue(set_desired_mock.call_args[0][0] == 'STARTED') - self.assertResourceCalled('Execute', "ambari-sudo.sh su flume -l -s /bin/bash -c 'export PATH=/bin JAVA_HOME=/usr/jdk64/jdk1.7.0_45 ; /usr/bin/flume-ng agent --name a1 --conf /etc/flume/conf/a1 --conf-file /etc/flume/conf/a1/flume.conf -Dflume.monitoring.type=org.apache.hadoop.metrics2.sink.flume.FlumeTimelineMetricsSink -Dflume.monitoring.node=c6401.ambari.apache.org:6188 > /var/log/flume/a1.out 2>&1' &", + self.assertResourceCalled('Execute', "ambari-sudo.sh su flume -l -s /bin/bash -c 'export PATH=/bin JAVA_HOME=/usr/jdk64/jdk1.7.0_45 ; /usr/bin/flume-ng agent --name a1 --conf /etc/flume/conf/a1 --conf-file /etc/flume/conf/a1/flume.conf -Dflume.monitoring.type=org.apache.hadoop.metrics2.sink.flume.FlumeTimelineMetricsSink -Dflume.monitoring.node=c6402.ambari.apache.org:6189 > /var/log/flume/a1.out 2>&1' &", environment = {'JAVA_HOME': u'/usr/jdk64/jdk1.7.0_45'}, wait_for_finish = False, ) http://git-wip-us.apache.org/repos/asf/ambari/blob/55a4837b/ambari-server/src/test/python/stacks/2.0.6/configs/default.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/configs/default.json b/ambari-server/src/test/python/stacks/2.0.6/configs/default.json index 57365b6..2f75bcf 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/configs/default.json +++ b/ambari-server/src/test/python/stacks/2.0.6/configs/default.json @@ -529,15 +529,17 @@ "xml_configurations_supported" : "false" }, "cluster-env": { - "security_enabled": "false", - "hdfs_user_principal" : "", - "hdfs_user_keytab" : "", - "ignore_groupsusers_create": "false", - "smokeuser": "ambari-qa", - "kerberos_domain": "EXAMPLE.COM", - "user_group": "hadoop", - "repo_suse_rhel_template": "[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0", - "repo_ubuntu_template": "{{package_type}} {{base_url}} {{components}}", + "security_enabled": "false", + "hdfs_user_principal" : "", + "hdfs_user_keytab" : "", + "ignore_groupsusers_create": "false", + "smokeuser": "ambari-qa", + "kerberos_domain": "EXAMPLE.COM", + "user_group": "hadoop", + "repo_suse_rhel_template": "[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0", + "repo_ubuntu_template": "{{package_type}} {{base_url}} {{components}}", + "metrics_collector_vip_host": "c6402.ambari.apache.org", + "metrics_collector_vip_port": "6189", "override_uid" : "true" }, "hbase-env": {