Adding CORD specific ceilometer changes to monitoring repository
- ceilometer custom notification plugins for ONOS, vSG, vOLT and Infra layers
- ceilometer publish/subscribe module
- ceilometer dynamic pipeline config module
- ceilometer UDP proxy
- ceilometer Custom Image(ceilometer -v2 -v3 versions,kafka_installer,startup scripts)
Change-Id: Ie2ab8ce89cdadbd1fb4dc54ee15e46f8cc8c4c18
diff --git a/xos/synchronizer/ceilometer/ceilometer_pub_sub/README b/xos/synchronizer/ceilometer/ceilometer_pub_sub/README
new file mode 100644
index 0000000..dbd6a5f
--- /dev/null
+++ b/xos/synchronizer/ceilometer/ceilometer_pub_sub/README
@@ -0,0 +1,70 @@
+
+Subscribe-Publish Frame Work:
+1.Command to Install Flask Webserver frame work.
+ sudo pip install Flask
+
+ Along with flask we need the following packages:
+ msgpack
+ fnmatch
+ operator
+ logging
+ oslo_utils
+ ConfigParser
+
+2.Files: i.sub_main.py
+ ii.pubrecords.py
+ iii.pub_sub.conf
+
+3.Command to start the server:
+ #python sun_main.py
+4.Command for subscription:
+ i.app_id:Application ID,should be unique.
+ ii.target:
+ Presently only udp is supported.
+ a.udp:<ip:portno>
+ b.kafka:<kafkaip:kafkaport>
+ iii.sub_info:Sunscription notifications.ex:cpu_util,cpu_*
+ It can be given as single input or list.
+ iv.query:
+ Below information need to provide as part of query.
+ a.field:fileds like user id ,porject id etc.,
+ b.op:"eq","gt","lt" etc.,
+ c.value:value of the fileds.
+ Example:
+ curl -i -H "Content-Type: application/json" -X POST -d '{"app_id":"10","target":"udp://10.11.10.1:5006","sub_info":"cpu_util","query":[{"field":"user_id","op":"eq","value":"e1271a86bd4e413c87248baf2e5f01e0"},{"field":"project_id","op":"eq","value":"b1a3bf16d2014b47be9aefea88087318"},{"field":"resource_id","op":"eq","value":"658cd03f-d0f0-4f55-9f48-39e7222a8646"}]}' -L http://10.11.10.1:4455/subscribe
+ curl -i -H "Content-Type: application/json" -X POST -d '{"app_id":"10","target":"udp://10.11.10.1:5006", "sub_info":["cpu_util", "memory"],"query":[{"field":"user_id","op":"eq","value":"e1271a86bd4e413c87248baf2e5f01e0"},{"field":"project_id","op":"eq","value":"b1a3bf16d2014b47be9aefea88087318"},{"field":"resource_id","op":"eq","value":"658cd03f-d0f0-4f55-9f48-39e7222a8646"}]}' -L http://10.11.10.1:4455/subscribe
+
+5.Command for unsunscription:
+ For unsubcription only appid will be needed.
+ curl -i -H "Content-Type: application/json" -X POST -d '{"app_id":"10"}' http://10.11.10.1:4455/unsubscribe
+
+6.Running Kafka on the server server where pub-sub module is running:
+ i.Download the kafka from:
+ #https://www.apache.org/dyn/closer.cgi?path=/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
+ http://apache.arvixe.com/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
+ ii.install java
+ sudo apt-get update
+ sudo apt-get install default-jre
+ iii. install kafka package
+ sudo easy_install pip
+ sudo pip install kafka-python
+ iv.tar -xzf kafka_2.11-0.9.0.0.tgz
+ v. Start the zookeeper server:
+ bin/zookeeper-server-start.sh config/zookeeper.properties
+ vi.Start Kafka Server :
+ bin/kafka-server-start.sh config/server.properties
+ vii.To read messages from kafka on a topic test :
+ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
+ viii.Before configuring kafka:// publisher in ceilometer:
+ install kafka on both controller node and compute nodes
+ Restart the ceilometer-agent-notification, ceilometer-agent-compute, ceilometer-agent-central daemons
+
+7.[Optional]Install Kafka-web-console (GUI)
+ i.wget https://github.com/adamfokken/kafka-web-console/archive/topic-add-remove.zip
+ ii.unzip it
+ iii.wget http://downloads.typesafe.com/typesafe-activator/1.3.2/typesafe-activator-1.3.2-minimal.zip
+ iv.unzip it and add it to the system path so you can execute the activator command that it provides.
+ v.Install javac if required: sudo apt-get install openjdk-7-jdk
+ vi.cd kafka-web-console-topic-add-remove
+ vii.activator start -DapplyEvolutions.default=true
+ viii.Point your browser to the kafka we-console port (9000) and register the zookeeper