Minor changes to support running outside of OpenStack environment, plus some bug fixes

Change-Id: I4b274f8bfab592322088aff7b0f4761ace6312ff
This commit is contained in:
Vitaliy Kharechko 2016-05-26 10:46:01 +03:00
parent 5f3fdd5248
commit 9fd350b18d
7 changed files with 46 additions and 20 deletions

View File

@ -28,19 +28,31 @@ import os
import sys import sys
from importlib import import_module from importlib import import_module
import ast import ast
from oslo_log import log as logging
from oslo_config import cfg try:
from oslo_log import log as logging
except:
import logging
osloConfig = True
try:
from oslo_config import cfg
except:
osloConfig = False
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class BroadViewCollector(object): class BroadViewCollector(object):
def __init__(self): def __init__(self):
if osloConfig:
logging.register_options(cfg.CONF) logging.register_options(cfg.CONF)
logging.set_defaults() logging.set_defaults()
cfg.CONF(args=[], cfg.CONF(args=[],
project="broadview_collector", project="broadview_collector",
default_config_files=["/etc/broadviewcollector.conf"]) default_config_files=["/etc/broadviewcollector.conf"])
logging.setup(cfg.CONF, 'broadview_collector') logging.setup(cfg.CONF, 'broadview_collector')
self._publishers = [] self._publishers = []
self._handlers = [] self._handlers = []

View File

@ -13,12 +13,16 @@
# limitations under the License. # limitations under the License.
from broadviewpublisherbase import BroadViewPublisherBase from broadviewpublisherbase import BroadViewPublisherBase
from kafka import KafkaProducer import kafka
from broadview_collector.serializers.bst_to_monasca import BSTToMonasca from broadview_collector.serializers.bst_to_monasca import BSTToMonasca
import json import json
import ConfigParser import ConfigParser
import sys
from oslo_log import log try:
from oslo_log import log
except:
import logging as log
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
@ -35,7 +39,7 @@ class BroadViewPublisher(BroadViewPublisherBase):
def getKafkaProducer(self): def getKafkaProducer(self):
try: try:
self._producer = KafkaProducer(bootstrap_servers=['{}:{}'.format(self._ip_address, self._port)]) self._producer = kafka.KafkaProducer(bootstrap_servers=['{}:{}'.format(self._ip_address, self._port)])
except kafka.errors.NoBrokersAvailable as e: except kafka.errors.NoBrokersAvailable as e:
LOG.error("BroadViewPublisher: NoBrokersAvailable {}".format(e)) LOG.error("BroadViewPublisher: NoBrokersAvailable {}".format(e))
except: except:
@ -49,7 +53,6 @@ class BroadViewPublisher(BroadViewPublisherBase):
self._producer = None self._producer = None
def publish(self, host, data): def publish(self, host, data):
LOG.info('kafka publish enter')
code = 500 code = 500
# get a producer if needed # get a producer if needed
if not self._producer: if not self._producer:
@ -66,7 +69,6 @@ class BroadViewPublisher(BroadViewPublisherBase):
LOG.info('unable to send to kafka topic {}: {}'.format(self._topic, sys.exc_info()[0])) LOG.info('unable to send to kafka topic {}: {}'.format(self._topic, sys.exc_info()[0]))
else: else:
code = 500 code = 500
LOG.info('kafka publish code {}'.format(code))
return code return code
def __repr__(self): def __repr__(self):

View File

@ -19,7 +19,11 @@ from broadviewpublisherbase import BroadViewPublisherBase
from broadview_collector.serializers.bst_to_monasca import BSTToMonasca from broadview_collector.serializers.bst_to_monasca import BSTToMonasca
import json import json
from oslo_log import log try:
from oslo_log import log
except:
import logging as log
import ConfigParser import ConfigParser
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)

View File

@ -19,7 +19,10 @@ from broadview_collector.serializers.bst_to_monasca import BSTToMonasca
import json import json
import ConfigParser import ConfigParser
from oslo_log import log try:
from oslo_log import log
except:
import logging as log
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)

View File

@ -18,7 +18,10 @@ import json
import ConfigParser import ConfigParser
import requests import requests
from oslo_log import log try:
from oslo_log import log
except:
import logging as log
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)

View File

@ -19,7 +19,7 @@ import time
# Change these to the host and port the collector is listening on # Change these to the host and port the collector is listening on
host = "172.16.170.184" host = "10.14.244.106"
port = 8082 port = 8082
''' '''

View File

@ -27,7 +27,7 @@ and topic and will override the default settings of the plugin:
# ip address, port, and topic for kafka # ip address, port, and topic for kafka
ip_address: 192.168.0.120 ip_address: 192.168.0.120
port: 8088 port: 9092
topic: broadview-bst topic: broadview-bst
You'll also need to enable the kafka plugin in /etc/broadviewcollector.conf. You'll also need to enable the kafka plugin in /etc/broadviewcollector.conf.
@ -45,6 +45,8 @@ To test out, or experiment with, the kafka publisher plugin, consider doing
the following: the following:
* Install broadview-collector. See the instructions in the main README.md * Install broadview-collector. See the instructions in the main README.md
* Install the Python kafka module:
$ sudo easy_install kafka
* Configure the collector for kafka as described above. * Configure the collector for kafka as described above.
* Install kafka. There are tutorials on the web for this. One that is known * Install kafka. There are tutorials on the web for this. One that is known
to work for Ubuntu 14.04 can be found at DigitalOcean's website: to work for Ubuntu 14.04 can be found at DigitalOcean's website:
@ -59,9 +61,9 @@ are using the DigitalOcean kafka tutorial:
* In a separate terminal window, run the following to view the data that is * In a separate terminal window, run the following to view the data that is
being written to the kafka queue by BroadView Collector: being written to the kafka queue by BroadView Collector:
$ ~/kafka/bin/kafka-console-consumer --zookeeper 127.0.0.1:2181 --topic broadview.bst $ ~/kafka/bin/kafka-console-consumer --zookeeper 127.0.0.1:2181 --topic broadview-bst
Note in the above, the path to kafka-console-consumber may be different based Note in the above, the path to kafka-console-consumer may be different based
on how you installed kafka. The IP address and port should work if you on how you installed kafka. The IP address and port should work if you
installed everything on a single host, and zookeeper is configured to use the installed everything on a single host, and zookeeper is configured to use the
default listen port of 2181. On Ubuntu 14.04, the settings can be found in default listen port of 2181. On Ubuntu 14.04, the settings can be found in