summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddharth Wagle <swagle@hortonworks.com>2015-01-13 16:22:29 -0800
committerSiddharth Wagle <swagle@hortonworks.com>2015-01-13 18:06:58 -0800
commite904eb7fa1bb8260bd89fed62cf9bd042f2c0aa3 (patch)
tree31eadf75d2d38e75058958d28dba2f766c969d7e
parentf0f0c7b4bfe690a1e23c14c80b28a397d49cbc65 (diff)
AMBARI-9034. Add ability to change log and pid dirs for AMS daemons. (swagle)
-rw-r--r--ambari-metrics/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor18
-rw-r--r--ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector16
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml32
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-hbase-env.xml4
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-log4j.xml5
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams.py17
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/ams_service.py3
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/params.py46
-rw-r--r--ambari-server/src/main/resources/common-services/AMS/0.1.0/package/scripts/status_params.py4
-rw-r--r--ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py19
-rw-r--r--ambari-server/src/main/resources/stacks/HDP/2.2/services/stack_advisor.py7
-rw-r--r--ambari-web/app/data/HDP2/site_properties.js142
-rw-r--r--ambari-web/app/models/stack_service.js4
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 @@
<property-type>USER</property-type>
<description>AMS User Name.</description>
</property>
+ <property>
+ <name>ams_collector_log_dir</name>
+ <value>/var/log/ambari-metrics-collector</value>
+ <description>Collector log directory.</description>
+ </property>
+ <property>
+ <name>ams_collector_pid_dir</name>
+ <value>/var/run/ambari-metrics-collector</value>
+ <description>Collector pid directory.</description>
+ </property>
+ <property>
+ <name>ams_monitor_pid_dir</name>
+ <value>/var/run/ambari-metrics-monitor</value>
+ <description>Monitor pid directory.</description>
+ </property>
+ <property>
+ <name>ams_monitor_log_dir</name>
+ <value>/var/log/ambari-metrics-monitor</value>
+ <description>Monitor log directory.</description>
+ </property>
<property>
<name>content</name>
@@ -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}}
</value>
</property>
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 @@
<configuration>
<property>
<name>hbase_log_dir</name>
- <value>/var/log/ams-hbase/</value>
+ <value>/var/log/ambari-metrics-collector</value>
<description>Log Directories for HBase.</description>
</property>
<property>
<name>hbase_pid_dir</name>
- <value>/var/run/ams-hbase/</value>
+ <value>/var/run/ambari-metrics-collector/</value>
<description>Pid Directory for HBase.</description>
</property>
<property>
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':