You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2014/10/20 19:47:30 UTC
git commit: AMBARI-7845. Kafka ganglia metrics integration with
Ambari. (Sriharsha Chintalapani via Jaimin Jetly)
Repository: ambari
Updated Branches:
refs/heads/branch-1.7.0 2e853b914 -> 4a83d3b11
AMBARI-7845. Kafka ganglia metrics integration with Ambari. (Sriharsha Chintalapani via Jaimin Jetly)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4a83d3b1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4a83d3b1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4a83d3b1
Branch: refs/heads/branch-1.7.0
Commit: 4a83d3b111ee4ba08ab1e96cf3e53ab720a346c5
Parents: 2e853b9
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Mon Oct 20 10:47:06 2014 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Mon Oct 20 10:47:21 2014 -0700
----------------------------------------------------------------------
.../ganglia/GangliaHostPropertyProvider.java | 1 +
.../ganglia/GangliaPropertyProvider.java | 1 +
.../GANGLIA/package/scripts/ganglia_monitor.py | 13 +-
.../services/GANGLIA/package/scripts/params.py | 4 +
.../KAFKA/configuration/kafka-broker.xml | 5 +-
.../stacks/HDP/2.2/services/KAFKA/metrics.json | 262 +++++++++++++++++++
.../2.2/services/KAFKA/package/scripts/kafka.py | 2 +-
.../services/KAFKA/package/scripts/params.py | 2 +-
.../ganglia/GangliaPropertyProviderTest.java | 30 +--
.../test/python/stacks/2.2/configs/default.json | 2 +-
ambari-web/app/data/HDP2/site_properties.js | 22 +-
ambari-web/app/models/service_config.js | 10 +-
ambari-web/test/models/service_config_test.js | 30 +++
13 files changed, 353 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaHostPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaHostPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaHostPropertyProvider.java
index c87cd3a..e1769a9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaHostPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaHostPropertyProvider.java
@@ -49,6 +49,7 @@ public class GangliaHostPropertyProvider extends GangliaPropertyProvider{
GANGLIA_CLUSTER_NAMES.add("HDPHBaseRegionServer");
GANGLIA_CLUSTER_NAMES.add("HDPFlumeServer");
GANGLIA_CLUSTER_NAMES.add("HDPJournalNode");
+ GANGLIA_CLUSTER_NAMES.add("HDPKafka");
}
// ----- Constructors ------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
index 39a6b61..6f5d025 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
@@ -73,6 +73,7 @@ public abstract class GangliaPropertyProvider extends AbstractPropertyProvider {
GANGLIA_CLUSTER_NAME_MAP.put("JOURNALNODE", Arrays.asList("HDPJournalNode", "HDPSlaves"));
GANGLIA_CLUSTER_NAME_MAP.put("NIMBUS", Collections.singletonList("HDPNimbus"));
GANGLIA_CLUSTER_NAME_MAP.put("SUPERVISOR", Collections.singletonList("HDPSupervisor"));
+ GANGLIA_CLUSTER_NAME_MAP.put("KAFKA_BROKER", Collections.singletonList("HDPKafka"));
}
protected final static Logger LOG =
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/ganglia_monitor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/ganglia_monitor.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/ganglia_monitor.py
index ede1a0b..158f855 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/ganglia_monitor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/ganglia_monitor.py
@@ -33,7 +33,7 @@ class GangliaMonitor(Script):
self.install_packages(env)
env.set_params(params)
self.configure(env)
-
+
functions.turn_off_autostart(params.gmond_service_name)
functions.turn_off_autostart("gmetad") # since the package is installed as well
@@ -75,7 +75,7 @@ class GangliaMonitor(Script):
)
ganglia.config()
-
+
self.generate_slave_configs()
Directory(path.join(params.ganglia_dir, "conf.d"),
@@ -133,7 +133,7 @@ class GangliaMonitor(Script):
def generate_master_configs(self):
import params
-
+
if params.has_namenodes:
generate_daemon("gmond",
name = "HDPNameNode",
@@ -211,6 +211,13 @@ class GangliaMonitor(Script):
owner = "root",
group = params.user_group)
+ if params.has_kafka_broker:
+ generate_daemon("gmond",
+ name = "HDPKafka",
+ role = "server",
+ owner = "root",
+ group = params.user_group)
+
if params.has_flume:
generate_daemon("gmond",
name = "HDPFlumeServer",
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/params.py
index f8373ac..5fe6335 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/params.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/package/scripts/params.py
@@ -73,6 +73,8 @@ flume_hosts = set(default("/clusterHostInfo/flume_hosts", []))
jn_hosts = set(default("/clusterHostInfo/journalnode_hosts", []))
nimbus_server_hosts = set(default("/clusterHostInfo/nimbus_hosts", []))
supervisor_server_hosts = set(default("/clusterHostInfo/supervisor_hosts", []))
+kafka_broker_hosts = set(default("/clusterHostInfo/kafka_broker_hosts", []))
+kafka_ganglia_port = default("/configurations/kafka-broker/kafka.ganglia.metrics.port", 8671)
pure_slave = not hostname in (namenode_host | jtnode_host | rm_host | hs_host | \
hbase_master_hosts | slave_hosts | tt_hosts | hbase_rs_hosts | \
@@ -106,6 +108,7 @@ has_flume = not len(flume_hosts) == 0
has_journalnode = not len(jn_hosts) == 0
has_nimbus_server = not len(nimbus_server_hosts) == 0
has_supervisor_server = not len(supervisor_server_hosts) == 0
+has_kafka_broker = not len(kafka_broker_hosts) == 0
ganglia_cluster_names = {
"jn_hosts": [("HDPJournalNode", 8654)],
@@ -121,6 +124,7 @@ ganglia_cluster_names = {
"hs_host": [("HDPHistoryServer", 8666)],
"nimbus_hosts": [("HDPNimbus", 8649)],
"supervisor_hosts": [("HDPSupervisor", 8650)],
+ "kafka_broker_hosts": [("HDPKafka", kafka_ganglia_port)],
"ReservedPort1": [("ReservedPort1", 8667)],
"ReservedPort2": [("ReservedPort2", 8668)],
"ReservedPort3": [("ReservedPort3", 8669)]
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/configuration/kafka-broker.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/configuration/kafka-broker.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/configuration/kafka-broker.xml
index cbedca3..f9df3e0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/configuration/kafka-broker.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/configuration/kafka-broker.xml
@@ -289,7 +289,6 @@
Backoff time between shutdown retries.
</description>
</property>
- <!--
<property>
<name>kafka.metrics.reporters</name>
<value>kafka.ganglia.KafkaGangliaMetricsReporter</value>
@@ -297,7 +296,6 @@
kafka ganglia metrics reporter
</description>
</property>
-
<property>
<name>kafka.ganglia.metrics.reporter.enabled</name>
<value>true</value>
@@ -305,7 +303,6 @@
kafka ganglia metrics reporter enable
</description>
</property>
- -->
<property>
<name>kafka.ganglia.metrics.host</name>
<value>localhost</value>
@@ -313,7 +310,7 @@
</property>
<property>
<name>kafka.ganglia.metrics.port</name>
- <value>8649</value>
+ <value>8671</value>
<description> Ganglia port </description>
</property>
<property>
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metrics.json b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metrics.json
new file mode 100644
index 0000000..826c0e8
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/metrics.json
@@ -0,0 +1,262 @@
+{
+ "KAFKA_BROKER": {
+ "Component": [
+ {
+ "type": "ganglia",
+ "metrics": {
+ "metrics/jvm/uptime":{
+ "metric":"jvm.uptime",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/heap_usage":{
+ "metric":"jvm.heap_usage",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/non_heap_usage":{
+ "metric":"jvm.non_heap_usage",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/thread-states/runnable":{
+ "metric":"jvm.thread-states.runnable",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/thread-states/blocked":{
+ "metric":"jvm.thread-states.blocked",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/thread-states/timed_waiting":{
+ "metric":"jvm.thread-states.timed_waiting",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/thread-states/terminated":{
+ "metric":"jvm.thread-states.terminated",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/thread_count":{
+ "metric":"jvm.thread_count",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/jvm/daemon_thread_count":{
+ "metric":"jvm.daemon_thread_count",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/1MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsMessagesInPerSec.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/5MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsMessagesInPerSec.5MinuteRate",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/15MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsMessagesInPerSec.15MinuteRate",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/meanRate": {
+ "metric": "kafka.server.BrokerTopicMetrics/AllTopicsMessagesInPerSec/meanRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/count": {
+ "metric": "kafka.server.BrokerTopicMetrics/AllTopicsMessagesInPerSec.counte",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/1MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesInPerSec.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/5MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesInPerSec.5MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/15MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesInPerSec.15MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/meanRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesInPerSec.meanRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/count": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesInPerSec.count",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/1MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesOutPerSec.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/5MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesOutPerSec.5MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/15MinuteRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesOutPerSec.15MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/meanRate": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesOutPerSec.meanRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/count": {
+ "metric": "kafka.server.BrokerTopicMetrics.AllTopicsBytesOutPerSec.count",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/KafkaController/ActiveControllerCount": {
+ "metric": "kafka.controller.KafkaController.ActiveControllerCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/meanRate": {
+ "metric": "kafka.log.LogFlushStats.LogFlushRateAndTimeMs.meanRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/1MinuteRate": {
+ "metric": "kafka.log.LogFlushStats.LogFlushRateAndTimeMs.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/5MinuteRate": {
+ "metric": "kafka.log.LogFlushStats.LogFlushRateAndTimeMs.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/15MinuteRate": {
+ "metric": "kafka.log.LogFlushStats.LogFlushRateAndTimeMs.15MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/count": {
+ "metric": "kafka.log.LogFlushStats.LogFlushRateAndTimeMs.count",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/meanRate": {
+ "metric": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.meanRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/1MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/5MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.5MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/15MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.15MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/count": {
+ "metric": "kafka.controller.ControllerStats.LeaderElectionRateAndTimeMs.count",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/1MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.UncleanLeaderElectionsPerSec.1MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/5MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.UncleanLeaderElectionsPerSec.5MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/15MinuteRate": {
+ "metric": "kafka.controller.ControllerStats.UncleanLeaderElectionsPerSec.15MinuteRate",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/kafka/controller/ControllerStats/OfflinePartitionsCount": {
+ "metric": "kafka.controller.ControllerStats.OfflinePartitionsCount",
+ "pointInTime" :true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ReplicaManager/PartitionCount": {
+ "metric": "kafka.server.ReplicaManager.PartitionCount",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ReplicaManager/LeaderCount": {
+ "metric": "kafka.server.ReplicaManager.LeaderCount",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ReplicaManager/UnderReplicatedPartitions": {
+ "metric": "kafka.server.ReplicaManager.UnderReplicatedPartitions",
+ "pointInTime" :true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ReplicaManager/ISRShrinksPerSec": {
+ "metric": "kafka.server.ReplicaManager.ISRShrinksPerSec",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ReplicaManager/ISRExpandsPerSec": {
+ "metric": "kafka.server.ReplicaManager.ISRExpandsPerSec",
+ "pointInTime" : true,
+ "temporal": true
+ },
+
+ "metrics/kafka/server/ReplicaFetcherManager/Replica-MaxLag": {
+ "metric": "kafka.server.ReplicaFetcherManager.Replica-MaxLag",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/server/ProducerRequestPurgatory/PurgatorySize": {
+ "metric": "kafka.server.ProducerRequestPurgatory.PurgatorySize",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/server/FetchRequestPurgatory/PurgatorySize": {
+ "metric": "kafka.server.FetchRequestPurgatory.PurgatorySize",
+ "pointInTime" : true,
+ "temporal": true
+ },
+ "metrics/kafka/cluster/Partition/$1-UnderReplicated":{
+ "metric":"kafka.cluster.Partition.(\\w+)-UnderReplicated",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/kafka/consumer/ConsumerFetcherManager/$1-MaxLag":{
+ "metric":"kafka.consumer.ConsumerFetcherManager.(\\w+)-MaxLag",
+ "pointInTime":true,
+ "temporal":true
+ },
+ "metrics/kafka/consumer/ConsumerFetcherManager/$1-MinFetch":{
+ "metric":"kafka.consumer.ConsumerFetcherManager.(\\w+)-MinFetch",
+ "pointInTime":true,
+ "temporal":true
+ }
+ }
+ }
+ ]
+ }
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/kafka.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/kafka.py b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/kafka.py
index 269b0ae..b6bc061 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/kafka.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/kafka.py
@@ -34,7 +34,7 @@ def kafka():
brokerid = str(sorted(params.kafka_hosts).index(params.hostname))
kafka_server_config = mutable_config_dict(params.config['configurations']['kafka-broker'])
kafka_server_config['broker.id'] = brokerid
- kafka_server_config['hostname'] = params.hostname
+ kafka_server_config['host.name'] = params.hostname
conf_dir = params.conf_dir
properties_config("server.properties",
conf_dir=params.conf_dir,
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/params.py
index fa68914..502b6d9 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/params.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/KAFKA/package/scripts/params.py
@@ -45,7 +45,7 @@ hostname = config['hostname']
user_group = config['configurations']['cluster-env']['user_group']
java64_home = config['hostLevelParams']['java_home']
kafka_env_sh_template = config['configurations']['kafka-env']['content']
-kafka_hosts = config['clusterHostInfo']['zookeeper_hosts']
+kafka_hosts = config['clusterHostInfo']['kafka_broker_hosts']
kafka_hosts.sort()
zookeeper_hosts = config['clusterHostInfo']['zookeeper_hosts']
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProviderTest.java
index 4dc95a3..dcb793e 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProviderTest.java
@@ -17,19 +17,6 @@
*/
package org.apache.ambari.server.controller.ganglia;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.ambari.server.configuration.ComponentSSLConfiguration;
import org.apache.ambari.server.configuration.ComponentSSLConfigurationTest;
import org.apache.ambari.server.controller.internal.PropertyInfo;
@@ -51,6 +38,19 @@ import org.junit.runners.Parameterized;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.expect;
+
/**
* Test the Ganglia property provider.
*/
@@ -323,7 +323,7 @@ public class GangliaPropertyProviderTest {
uriBuilder.setScheme((configuration.isGangliaSSL() ? "https" : "http"));
uriBuilder.setHost("domU-12-31-39-0E-34-E1.compute-1.internal");
uriBuilder.setPath("/cgi-bin/rrd.py");
- uriBuilder.setParameter("c", "HDPJobTracker,HDPHBaseMaster,HDPResourceManager,HDPFlumeServer,HDPSlaves,HDPHistoryServer,HDPJournalNode,HDPTaskTracker,HDPHBaseRegionServer,HDPNameNode");
+ uriBuilder.setParameter("c", "HDPJobTracker,HDPHBaseMaster,HDPKafka,HDPResourceManager,HDPFlumeServer,HDPSlaves,HDPHistoryServer,HDPJournalNode,HDPTaskTracker,HDPHBaseRegionServer,HDPNameNode");
uriBuilder.setParameter("h", "domU-12-31-39-0E-34-E3.compute-1.internal,domU-12-31-39-0E-34-E1.compute-1.internal,domU-12-31-39-0E-34-E2.compute-1.internal");
uriBuilder.setParameter("m", "jvm.metrics.gcCount");
uriBuilder.setParameter("s", "10");
@@ -382,7 +382,7 @@ public class GangliaPropertyProviderTest {
expectedUri.setScheme((configuration.isGangliaSSL() ? "https" : "http"));
expectedUri.setHost("domU-12-31-39-0E-34-E1.compute-1.internal");
expectedUri.setPath("/cgi-bin/rrd.py");
- expectedUri.setParameter("c", "HDPJobTracker,HDPHBaseMaster,HDPResourceManager,HDPFlumeServer,HDPSlaves,HDPHistoryServer,HDPJournalNode,HDPTaskTracker,HDPHBaseRegionServer,HDPNameNode");
+ expectedUri.setParameter("c", "HDPJobTracker,HDPHBaseMaster,HDPKafka,HDPResourceManager,HDPFlumeServer,HDPSlaves,HDPHistoryServer,HDPJournalNode,HDPTaskTracker,HDPHBaseRegionServer,HDPNameNode");
expectedUri.setParameter("h", hostsList.toString());
expectedUri.setParameter("m", "jvm.metrics.gcCount");
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-server/src/test/python/stacks/2.2/configs/default.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/configs/default.json b/ambari-server/src/test/python/stacks/2.2/configs/default.json
index 4c2ada9..72f9799 100644
--- a/ambari-server/src/test/python/stacks/2.2/configs/default.json
+++ b/ambari-server/src/test/python/stacks/2.2/configs/default.json
@@ -234,7 +234,7 @@
"jaimin-knox-1.c.pramod-thangali.internal"
],
"kafka_broker_hosts": [
- "c6402.ambari.apache.org"
+ "c6401.ambari.apache.org"
],
"zookeeper_hosts": [
"c6401.ambari.apache.org"
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-web/app/data/HDP2/site_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js
index a828cdf..541a6d0 100644
--- a/ambari-web/app/data/HDP2/site_properties.js
+++ b/ambari-web/app/data/HDP2/site_properties.js
@@ -1690,18 +1690,18 @@ module.exports =
"isOverridable": false,
"serviceName": "KNOX",
"filename": "knox-env.xml",
- "category": "Advanced knox-env.xml"
+ "category": "Advanced knox-env"
},
/********************************************* KAFKA *****************************/
{
"id": "puppet var",
- "name": "kafka_broker_host",
+ "name": "kafka_broker_hosts",
"displayName": "Kafka Broker host",
"value": "",
"defaultValue": "",
"description": "The host that has been assigned to run Kafka Broker",
- "displayType": "masterHost",
+ "displayType": "masterHosts",
"isOverridable": false,
"isVisible": true,
"isRequiredByAgent": false,
@@ -1781,7 +1781,7 @@ module.exports =
"displayType": "directory",
"serviceName": "KAFKA",
"filename": "kafka-broker.xml",
- "category": "Advanced kafka-env.xml",
+ "category": "Advanced kafka-env",
"index": 0
},
@@ -3962,6 +3962,20 @@ module.exports =
},
{
"id": "puppet var",
+ "name": "kafka_user",
+ "displayName": "Kafka User",
+ "isReconfigurable": false,
+ "displayType": "user",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "MISC",
+ "filename": "kafka-env.xml",
+ "category": "Users and Groups",
+ "belongsToService": ["KAFKA"],
+ "index": 20
+ },
+ {
+ "id": "puppet var",
"name": "rrdcached_base_dir",
"displayName": "Ganglia rrdcached base directory",
"description": "Default directory for saving the rrd files on ganglia server",
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-web/app/models/service_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service_config.js b/ambari-web/app/models/service_config.js
index 89e3adc..7901253 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -481,8 +481,14 @@ App.ServiceConfigProperty = Ember.Object.extend({
case 'knox_gateway_host':
this.set('value', masterComponentHostsInDB.findProperty('component', 'KNOX_GATEWAY').hostName);
break;
- case 'kafka_broker_host':
- this.set('value', masterComponentHostsInDB.findProperty('component', 'KAFKA_BROKER').hostName);
+ case 'kafka_broker_hosts':
+ this.set('value', masterComponentHostsInDB.filterProperty('component', 'KAFKA_BROKER').mapProperty('hostName'));
+ break;
+ case 'kafka.ganglia.metrics.host':
+ var gangliaHost = masterComponentHostsInDB.findProperty('component', 'GANGLIA_SERVER');
+ if (gangliaHost) {
+ this.set('value', gangliaHost.hostName);
+ }
break;
case 'hbase.zookeeper.quorum':
var zkHosts = masterComponentHostsInDB.filterProperty('component', 'ZOOKEEPER_SERVER').mapProperty('hostName');
http://git-wip-us.apache.org/repos/asf/ambari/blob/4a83d3b1/ambari-web/test/models/service_config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/models/service_config_test.js b/ambari-web/test/models/service_config_test.js
index 50ad222..a015d82 100644
--- a/ambari-web/test/models/service_config_test.js
+++ b/ambari-web/test/models/service_config_test.js
@@ -616,3 +616,33 @@ describe('App.ServiceConfigProperty', function () {
});
});
+
+describe('initialValue', function () {
+
+ var tests = [
+ {
+ message: 'kafka.ganglia.metrics.host property should have the value of ganglia hostname when ganglia is selected',
+ localDB: {masterComponentHosts: [
+ {component: 'GANGLIA_SERVER', hostName: 'c6401'}
+ ]},
+ expected: 'c6401'
+ },
+ {
+ message: 'kafka.ganglia.metrics.host property should have the value "localhost" when ganglia is not selected',
+ localDB: {masterComponentHosts: [
+ {component: 'NAMENODE', hostName: 'c6401'}
+ ]},
+ expected: 'localhost'
+ }
+ ];
+ var serviceConfigProperty;
+ beforeEach(function () {
+ serviceConfigProperty = App.ServiceConfigProperty.create({name: 'kafka.ganglia.metrics.host', value: 'localhost'});
+ });
+ tests.forEach(function(test){
+ it(test.message, function () {
+ serviceConfigProperty.initialValue(test.localDB);
+ expect(serviceConfigProperty.get('value')).to.equal(test.expected);
+ });
+ });
+});