From e904eb7fa1bb8260bd89fed62cf9bd042f2c0aa3 Mon Sep 17 00:00:00 2001 From: Siddharth Wagle Date: Tue, 13 Jan 2015 16:22:29 -0800 Subject: AMBARI-9034. Add ability to change log and pid dirs for AMS daemons. (swagle) --- .../conf/unix/ambari-metrics-monitor | 18 +++ .../conf/unix/ambari-metrics-collector | 16 ++- .../AMS/0.1.0/configuration/ams-env.xml | 32 ++++- .../AMS/0.1.0/configuration/ams-hbase-env.xml | 4 +- .../AMS/0.1.0/configuration/ams-log4j.xml | 5 +- .../AMS/0.1.0/package/scripts/ams.py | 17 +++ .../AMS/0.1.0/package/scripts/ams_service.py | 3 - .../AMS/0.1.0/package/scripts/params.py | 46 +++---- .../AMS/0.1.0/package/scripts/status_params.py | 4 +- .../stacks/HDP/2.0.6/services/stack_advisor.py | 19 +++ .../stacks/HDP/2.2/services/stack_advisor.py | 7 +- ambari-web/app/data/HDP2/site_properties.js | 142 +++++++++++++++------ ambari-web/app/models/stack_service.js | 4 +- 13 files changed, 240 insertions(+), 77 deletions(-) diff --git a/ambari-metrics/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor b/ambari-metrics/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor index 5779b5b40e..aaa77c4e7e 100644 --- a/ambari-metrics/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor +++ b/ambari-metrics/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor @@ -102,6 +102,24 @@ while [[ -z "${_ams_configs_done}" ]]; do esac done +#execute ams-env.sh +if [[ -f "${MONITOR_CONF_DIR}/ams-env.sh" ]]; then + . "${MONITOR_CONF_DIR}/ams-env.sh" +else + echo "ERROR: Cannot execute ${MONITOR_CONF_DIR}/ams-env.sh." 2>&1 + exit 1 +fi + +# Set log directory path +if [[ -n "${AMS_MONITOR_LOG_DIR}" ]]; then + OUTFILE=${AMS_MONITOR_LOG_DIR}/ambari-metrics-monitor.out +fi + +# Set pid directory path +if [[ -n "${AMS_MONITOR_PID_DIR}" ]]; then + PIDFILE=${AMS_MONITOR_PID_DIR}/ambari-metrics-monitor.pid +fi + case "$1" in start) diff --git a/ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector b/ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector index 9aabbdcead..c98fea245a 100644 --- a/ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector +++ b/ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector @@ -31,6 +31,8 @@ HBASE_CONF_DIR=/etc/ams-hbase/conf METRIC_COLLECTOR=ambari-metrics-collector +AMS_LOG_DIR=/var/log/ambari-metrics-collector + STOP_TIMEOUT=5 function hbase_daemon @@ -160,7 +162,7 @@ while [[ -z "${_ams_configs_done}" ]]; do esac done -#execute ams-env.sh +# execute ams-env.sh if [[ -f "${COLLECTOR_CONF_DIR}/ams-env.sh" ]]; then . "${COLLECTOR_CONF_DIR}/ams-env.sh" else @@ -168,6 +170,16 @@ else exit 1 fi +# set pid dir path +if [[ -n "${AMS_PID_DIR}" ]]; then + PIDFILE=${AMS_PID_DIR}/ambari-metrics-collector.pid +fi + +# set out file path +if [[ -n "${AMS_COLLECTOR_LOG_DIR}" ]]; then + OUTFILE=${AMS_COLLECTOR_LOG_DIR}/ambari-metrics-collector.out +fi + #TODO manage 3 hbase daemons for start/stop/status case "$1" in @@ -200,7 +212,7 @@ case "$1" in rm -f "${PIDFILE}" >/dev/null 2>&1 fi - nohup "${JAVA}" "-cp" "/usr/lib/ambari-metrics-collector/*:${COLLECTOR_CONF_DIR}" "-Djava.net.preferIPv4Stack=true" "-Dproc_${DAEMON_NAME}" "${CLASS}" "$@" > $OUTFILE 2>&1 & + nohup "${JAVA}" "-cp" "/usr/lib/ambari-metrics-collector/*:${COLLECTOR_CONF_DIR}" "-Djava.net.preferIPv4Stack=true" "-Dams.log.dir=${AMS_COLLECTOR_LOG_DIR}" "-Dproc_${DAEMON_NAME}" "${CLASS}" "$@" > $OUTFILE 2>&1 & PID=$! write_pidfile "${PIDFILE}" sleep 2 diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml index fda1df0524..112c3672ef 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml @@ -25,6 +25,26 @@ USER AMS User Name. + + ams_collector_log_dir + /var/log/ambari-metrics-collector + Collector log directory. + + + ams_collector_pid_dir + /var/run/ambari-metrics-collector + Collector pid directory. + + + ams_monitor_pid_dir + /var/run/ambari-metrics-monitor + Monitor pid directory. + + + ams_monitor_log_dir + /var/log/ambari-metrics-monitor + Monitor log directory. + content @@ -34,7 +54,17 @@ # The java implementation to use. Java 1.6 required. export JAVA_HOME={{java64_home}} - #TODO + # Collector Log directory for log4j + export AMS_COLLECTOR_LOG_DIR={{ams_collector_log_dir}} + + # Monitor Log directory for outfile + export AMS_MONITOR_LOG_DIR={{ams_monitor_log_dir}} + + # Collector pid directory + export AMS_COLLECTOR_PID_DIR={{ams_collector_pid_dir}} + + # Monitor pid directory + export AMS_MONITOR_PID_DIR={{ams_monitor_pid_dir}} diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml index 1cf80c8b43..bc3f516bfa 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml @@ -23,12 +23,12 @@ hbase_log_dir - /var/log/ams-hbase/ + /var/log/ambari-metrics-collector Log Directories for HBase. hbase_pid_dir - /var/run/ams-hbase/ + /var/run/ambari-metrics-collector/ Pid Directory for HBase. diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-log4j.xml b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-log4j.xml index 3f2e148c61..72ca9674d7 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-log4j.xml +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-log4j.xml @@ -43,12 +43,15 @@ # # Define some default values that can be overridden by system properties + ams.log.dir=. + ams.log.file=ambari-metrics-collector.log + # Root logger option log4j.rootLogger=INFO,file # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender - log4j.appender.file.File=/var/log/ambari-metrics-collector/ambari-metrics-collector.log + log4j.appender.file.File=${ams.log.dir}/${ams.log.file} log4j.appender.file.MaxFileSize=80MB log4j.appender.file.MaxBackupIndex=60 log4j.appender.file.layout=org.apache.log4j.PatternLayout diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams.py b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams.py index 4a3a3f1f81..9aa9484080 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams.py +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams.py @@ -66,6 +66,18 @@ def ams(name=None): content=InlineTemplate(params.ams_env_sh_template) ) + Directory(params.ams_collector_log_dir, + owner=params.ams_user, + group=params.user_group, + recursive=True + ) + + Directory(params.ams_collector_pid_dir, + owner=params.ams_user, + group=params.user_group, + recursive=True + ) + pass elif name == 'monitor': @@ -89,6 +101,11 @@ def ams(name=None): template_tag=None ) + File(format("{ams_monitor_conf_dir}/ams-env.sh"), + owner=params.ams_user, + content=InlineTemplate(params.ams_env_sh_template) + ) + # TODO pass diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams_service.py b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams_service.py index 5fdd0f7f76..2785c384d3 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams_service.py +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams_service.py @@ -66,7 +66,4 @@ def ams_service(name='collector', action='start'): pass pass - - #TODO - pass pass diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/params.py index 0932f3af51..db08fead20 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/params.py @@ -27,8 +27,8 @@ config = Script.get_config() exec_tmp_dir = Script.get_tmp_dir() #AMS data -ams_user=status_params.ams_user -ams_pid_dir="/var/run/ambari-metrics" +ams_user = status_params.ams_user +ams_pid_dir = status_params.ams_collector_pid_dir ams_collector_script = "/usr/sbin/ambari-metrics-collector" ams_collector_conf_dir = "/etc/ambari-metrics-collector/conf" @@ -40,6 +40,8 @@ if metric_collector_port and metric_collector_port.find(':') != -1: metric_collector_port = metric_collector_port.split(':')[1] pass +ams_collector_log_dir = config['configurations']['ams-env']['ams_collector_log_dir'] +ams_monitor_log_dir = config['configurations']['ams-env']['ams_monitor_log_dir'] ams_monitor_conf_dir = "/etc/ambari-metrics-monitor/conf/" ams_monitor_dir = "/usr/lib/python2.6/site-packages/resource_monitoring" @@ -79,8 +81,11 @@ hbase_included_hosts = config['commandParams']['included_hosts'] hbase_user = status_params.hbase_user smokeuser = config['configurations']['cluster-env']['smokeuser'] -_authentication = config['configurations']['core-site']['hadoop.security.authentication'] -security_enabled = config['configurations']['cluster-env']['security_enabled'] +hbase_hdfs_root_dir = config['configurations']['ams-hbase-site']['hbase.rootdir'] +is_hbase_distributed = hbase_hdfs_root_dir.startswith('hdfs://') + +# security is disabled for embedded mode, when HBase is backed by file +security_enabled = False if not is_hbase_distributed else config['configurations']['cluster-env']['security_enabled'] # this is "hadoop-metrics.properties" for 1.x stacks metric_prop_file_name = "hadoop-metrics2-hbase.properties" @@ -109,15 +114,6 @@ client_jaas_config_file = format("{hbase_conf_dir}/hbase_client_jaas.conf") master_jaas_config_file = format("{hbase_conf_dir}/hbase_master_jaas.conf") regionserver_jaas_config_file = format("{hbase_conf_dir}/hbase_regionserver_jaas.conf") -# ganglia_server_hosts = default('/clusterHostInfo/ganglia_server_host', []) # is not passed when ganglia is not present -# ganglia_server_host = '' if len(ganglia_server_hosts) == 0 else ganglia_server_hosts[0] - -# if hbase is selected the hbase_rs_hosts, should not be empty, but still default just in case -# if 'slave_hosts' in config['clusterHostInfo']: -# rs_hosts = default('/clusterHostInfo/hbase_rs_hosts', '/clusterHostInfo/slave_hosts') #if hbase_rs_hosts not given it is assumed that region servers on same nodes as slaves -# else: -# rs_hosts = default('/clusterHostInfo/hbase_rs_hosts', '/clusterHostInfo/all_hosts') - rs_hosts = ["localhost"] smoke_test_user = config['configurations']['cluster-env']['smokeuser'] @@ -127,19 +123,19 @@ user_group = config['configurations']['cluster-env']["user_group"] if security_enabled: _hostname_lowercase = config['hostname'].lower() - master_jaas_princ = config['configurations']['ams-hbase-site']['hbase.master.kerberos.principal'].replace('_HOST',_hostname_lowercase) - regionserver_jaas_princ = config['configurations']['ams-hbase-site']['hbase.regionserver.kerberos.principal'].replace('_HOST',_hostname_lowercase) + master_jaas_princ = default('/configurations/ams-hbase-site/hbase.master.kerberos.principal', 'hbase/_HOST@EXAMPLE.COM').replace('_HOST',_hostname_lowercase) + regionserver_jaas_princ = default('/configurations/ams-hbase-site/hbase.regionserver.kerberos.principal', 'hbase/_HOST@EXAMPLE.COM').replace('_HOST',_hostname_lowercase) -master_keytab_path = config['configurations']['ams-hbase-site']['hbase.master.keytab.file'] -regionserver_keytab_path = config['configurations']['ams-hbase-site']['hbase.regionserver.keytab.file'] -smoke_user_keytab = config['configurations']['cluster-env']['smokeuser_keytab'] -hbase_user_keytab = config['configurations']['ams-hbase-env']['hbase_user_keytab'] -kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"]) + master_keytab_path = config['configurations']['ams-hbase-site']['hbase.master.keytab.file'] + regionserver_keytab_path = config['configurations']['ams-hbase-site']['hbase.regionserver.keytab.file'] + smoke_user_keytab = config['configurations']['cluster-env']['smokeuser_keytab'] + hbase_user_keytab = config['configurations']['ams-hbase-env']['hbase_user_keytab'] + kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"]) -# if security_enabled: -# kinit_cmd = format("{kinit_path_local} -kt {hbase_user_keytab} {hbase_user};") -# else: -# kinit_cmd = "" +if security_enabled: + kinit_cmd = format("{kinit_path_local} -kt {hbase_user_keytab} {hbase_user};") +else: + kinit_cmd = "" #log4j.properties if (('ams-hbase-log4j' in config['configurations']) and ('content' in config['configurations']['ams-hbase-log4j'])): @@ -155,7 +151,7 @@ else: hbase_env_sh_template = config['configurations']['ams-hbase-env']['content'] ams_env_sh_template = config['configurations']['ams-env']['content'] -hbase_hdfs_root_dir = config['configurations']['ams-hbase-site']['hbase.rootdir'] + hbase_staging_dir = "/apps/hbase/staging" #for create_hdfs_directory hostname = config["hostname"] diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/status_params.py index 0e949eb7be..f71c1fba1e 100644 --- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/status_params.py +++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/status_params.py @@ -25,6 +25,6 @@ config = Script.get_config() hbase_pid_dir = config['configurations']['ams-hbase-env']['hbase_pid_dir'] hbase_user = config['configurations']['ams-hbase-env']['hbase_user'] ams_user = config['configurations']['ams-env']['ams_user'] +ams_collector_pid_dir = config['configurations']['ams-env']['ams_collector_pid_dir'] +ams_monitor_pid_dir = config['configurations']['ams-env']['ams_monitor_pid_dir'] -ams_monitor_pid_dir = "/var/run/ambari-metrics-monitor" -ams_collector_pid_dir = "/var/run/ambari-metrics-collector" diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py index 2d7b0b252f..ac7011b073 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py @@ -278,6 +278,25 @@ class HDP206StackAdvisor(DefaultStackAdvisor): return self.getWarnItem("Value is less than the recommended default of {0}".format(defaultValue)) return None + def validatorEqualsPropertyItem(self, properties1, propertyName1, + properties2, propertyName2, + emptyAllowed=False): + if not propertyName1 in properties1: + return self.getErrorItem("Value should be set for %s" % propertyName1) + if not propertyName2 in properties2: + return self.getErrorItem("Value should be set for %s" % propertyName2) + value1 = properties1.get(propertyName1) + if value1 is None and not emptyAllowed: + return self.getErrorItem("Empty value for %s" % propertyName1) + value2 = properties2.get(propertyName2) + if value2 is None and not emptyAllowed: + return self.getErrorItem("Empty value for %s" % propertyName2) + if value1 != value2: + return self.getWarnItem("It is recommended to set equal values " + "for properties {0} and {1}".format(propertyName1, propertyName2)) + + return None + def validateXmxValue(self, properties, recommendedDefaults, propertyName): if not propertyName in properties: return self.getErrorItem("Value should be set") diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.2/services/stack_advisor.py index 44c04a27d5..2b0ce832bd 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/stack_advisor.py +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/stack_advisor.py @@ -143,6 +143,9 @@ class HDP22StackAdvisor(HDP21StackAdvisor): def validateAmsHbaseEnvConfigurations(self, properties, recommendedDefaults, configurations, services, hosts): regionServerItem = self.validatorLessThenDefaultValue(properties, recommendedDefaults, "hbase_regionserver_heapsize") masterItem = self.validatorLessThenDefaultValue(properties, recommendedDefaults, "hbase_master_heapsize") + ams_env = getSiteProperties(configurations, "ams-env") + logDirItem = self.validatorEqualsPropertyItem(properties, "hbase_log_dir", + ams_env, "ams_collector_log_dir") if masterItem is None: hbase_master_heapsize = formatXmxSizeToBytes(properties["hbase_master_heapsize"]) @@ -165,7 +168,9 @@ class HDP22StackAdvisor(HDP21StackAdvisor): break validationItems = [{"config-name": "hbase_regionserver_heapsize", "item": regionServerItem}, - {"config-name": "hbase_master_heapsize", "item": masterItem}] + {"config-name": "hbase_master_heapsize", "item": masterItem}, + {"config-name": "hbase_log_dir", "item": logDirItem} + ] return self.toConfigurationValidationProblems(validationItems, "ams-hbase-env") def recommendMapReduce2Configurations(self, configurations, clusterData, services, hosts): diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js index fd89933902..6ab8adba6d 100644 --- a/ambari-web/app/data/HDP2/site_properties.js +++ b/ambari-web/app/data/HDP2/site_properties.js @@ -4242,200 +4242,266 @@ module.exports = { "id": "site property", "name": "timeline.metrics.service.operation.mode", - "displayName": "timeline.metrics.service.operation.mode", + "displayName": "Metrics Service operation mode", "description": "\n Service Operation modes:\n 1) embedded: Metrics stored on local FS, HBase in Standalone mode\n 2) distributed: HBase daemons writing to HDFS\n 3) external: External HBase storage backend\n ", "defaultValue": "embedded", "displayType": "string", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "General" + "category": "General", + "index" : 1 + }, + { + "id": "site property", + "name": "ams_collector_log_dir", + "displayName": "Metrics Collector log dir", + "description": "\n Log location for collector logs\n ", + "defaultValue": "embedded", + "displayType": "string", + "serviceName": "AMS", + "filename": "ams-env.xml", + "category": "General", + "index" : 2 + }, + { + "id": "site property", + "name": "ams_collector_pid_dir", + "displayName": "Metrics Collector pid dir", + "description": "\n pid location for collector\n ", + "defaultValue": "embedded", + "displayType": "string", + "serviceName": "AMS", + "filename": "ams-env.xml", + "category": "General", + "index" : 3 + }, + { + "id": "site property", + "name": "ams_monitor_log_dir", + "displayName": "Metrics Monitor log dir", + "description": "\n Log location for monitor logs\n ", + "defaultValue": "embedded", + "displayType": "string", + "serviceName": "AMS", + "filename": "ams-env.xml", + "category": "General", + "index" : 4 + }, + { + "id": "site property", + "name": "ams_monitor_pid_dir", + "displayName": "Metrics Monitor pid dir", + "description": "\n pid location for monitor\n ", + "defaultValue": "embedded", + "displayType": "string", + "serviceName": "AMS", + "filename": "ams-env.xml", + "category": "General", + "index" : 5 }, { "id": "site property", "name" : "timeline.metrics.aggregator.checkpoint.dir", - "displayName": "timeline.metrics.aggregator.checkpoint.dir", - "description": "\n Directory to store aggregator checkpoints. Change to a permanent\n location so that checkpoint ar not lost.\n ", + "displayName": "Aggregator checkpoint directory", + "description": "\n Directory to store aggregator checkpoints\n ", "defaultValue": "/tmp", "displayType": "directory", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 17 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.hourly.checkpointCutOffMultiplier", - "displayName": "timeline.metrics.cluster.aggregator.hourly.checkpointCutOffMultiplier", + "displayName": "Hourly cluster aggregator checkpoint cutOff multiplier", "description": "\n Multiplier value * interval = Max allowed checkpoint lag. Effectively\n if aggregator checkpoint is greater than max allowed checkpoint delay,\n the checkpoint will be discarded by the aggregator.\n ", "defaultValue": "2", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 16 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.hourly.disabled", - "displayName": "timeline.metrics.cluster.aggregator.hourly.disabled", + "displayName": "Disable Hourly cluster aggregator", "description": "\n Disable cluster based hourly aggregations.\n ", "defaultValue": "false", "displayType": "string", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 14 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.hourly.interval", - "displayName": "timeline.metrics.cluster.aggregator.hourly.interval", + "displayName": "Hourly cluster aggregator Interval", "description": "\n Time in seconds to sleep for the hourly resolution cluster wide\n aggregator. Default is 1 hour.\n ", "defaultValue": "3600", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 15 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.minute.checkpointCutOffMultiplier", - "displayName": "timeline.metrics.cluster.aggregator.minute.checkpointCutOffMultiplier", + "displayName": "Minute cluster aggregator checkpoint cutOff multiplier", "description": "\n Multiplier value * interval = Max allowed checkpoint lag. Effectively\n if aggregator checkpoint is greater than max allowed checkpoint delay,\n the checkpoint will be discarded by the aggregator.\n ", "defaultValue": "2", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 13 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.minute.disabled", - "displayName": "timeline.metrics.cluster.aggregator.minute.disabled", + "displayName": "Disable minute cluster aggregator", "description": "\n Disable cluster based minute aggregations.\n ", "defaultValue": "false", "displayType": "string", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 10 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.minute.interval", - "displayName": "timeline.metrics.cluster.aggregator.minute.interval", + "displayName": "Minute cluster aggregator interval", "description": "\n Time in seconds to sleep for the minute resolution cluster wide\n aggregator. Default resolution is 2 minutes.\n ", "defaultValue": "120", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 11 }, { "id": "site property", "name": "timeline.metrics.cluster.aggregator.minute.timeslice.interval", - "displayName": "timeline.metrics.cluster.aggregator.minute.timeslice.interval", + "displayName": "Minute cluster aggregator timeslice interval", "description": "\n Lowest resolution of desired data for cluster level minute aggregates.\n ", "defaultValue": "15", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 12 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.hourly.checkpointCutOffMultiplier", - "displayName": "timeline.metrics.host.aggregator.hourly.checkpointCutOffMultiplier", + "displayName": "Hourly host aggregator checkpoint cutOff multiplier", "description": "\n Multiplier value * interval = Max allowed checkpoint lag. Effectively\n if aggregator checkpoint is greater than max allowed checkpoint delay,\n the checkpoint will be discarded by the aggregator.\n ", "defaultValue": "2", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 9 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.hourly.disabled", - "displayName": "timeline.metrics.host.aggregator.hourly.disabled", - "description": "\n Disable host based hourly aggregations.\n ", + "displayName": "Disable Hourly host aggregator", + "description": "\n Disable host based hourly aggregations\n ", "defaultValue": "false", "displayType": "string", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 7 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.hourly.interval", - "displayName": "timeline.metrics.host.aggregator.hourly.interval", + "displayName": "Hourly host aggregator interval", "description": "\n Time in seconds to sleep for the hourly resolution host based\n aggregator. Default resolution is 1 hour.\n ", "defaultValue": "3600", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 8 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.minute.checkpointCutOffMultiplier", - "displayName": "timeline.metrics.host.aggregator.minute.checkpointCutOffMultiplier", + "displayName": "Minute host aggregator checkpoint cutOff multiplier", "description": "\n Multiplier value * interval = Max allowed checkpoint lag. Effectively\n if aggregator checkpoint is greater than max allowed checkpoint delay,\n the checkpoint will be discarded by the aggregator.\n ", "defaultValue": "2", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 6 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.minute.disabled", - "displayName": "timeline.metrics.host.aggregator.minute.disabled", + "displayName": "Disable Minute host aggregator", "description": "\n Disable host based minute aggregations.\n ", "defaultValue": "false", "displayType": "string", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 4 }, { "id": "site property", "name": "timeline.metrics.host.aggregator.minute.interval", - "displayName": "timeline.metrics.host.aggregator.minute.interval", + "displayName": "Minute host aggregator interval", "description": "\n Time in seconds to sleep for the minute resolution host based\n aggregator. Default resolution is 5 minutes.\n ", "defaultValue": "300", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 5 }, { "id": "site property", "name": "timeline.metrics.service.checkpointDelay", - "displayName": "timeline.metrics.service.checkpointDelay", + "displayName": "Metrics service checkpoint delay", "description": "\n Time in seconds to sleep on the first run or when the checkpoint is\n too old.\n ", "defaultValue": "120", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 1 }, { "id": "site property", "name": "timeline.metrics.service.default.result.limit", - "displayName": "timeline.metrics.service.default.result.limit", + "displayName": "Metrics service default result limit", "description": "\n Max result limit on number of rows returned. Calculated as follows:\n 4 aggregate metrics/min * 60 * 24: Retrieve aggregate data for 1 day.\n ", "defaultValue": "5760", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 2 }, { "id": "site property", "name": "timeline.metrics.service.resultset.fetchSize", - "displayName": "timeline.metrics.service.resultset.fetchSize", + "displayName": "Metrics service resultset fetchSize", "description": "\n JDBC resultset prefect size for aggregator queries.\n ", "defaultValue": "2000", "displayType": "int", "serviceName": "AMS", "filename": "ams-site.xml", - "category": "MetricCollector" + "category": "MetricCollector", + "index" : 3 } ] }; diff --git a/ambari-web/app/models/stack_service.js b/ambari-web/app/models/stack_service.js index c1905d43d5..517499ba2f 100644 --- a/ambari-web/app/models/stack_service.js +++ b/ambari-web/app/models/stack_service.js @@ -322,8 +322,8 @@ App.StackService.configCategories = function () { break; case 'AMS': serviceConfigCategories.pushObjects([ - App.ServiceConfigCategory.create({ name: 'MetricCollector', displayName: 'Metric Collector'}), - App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}) + App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}), + App.ServiceConfigCategory.create({ name: 'MetricCollector', displayName: 'Metric Collector'}) ]); break; case 'PIG': -- cgit v1.2.3