X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=api%2Futils%2Finflux.py;h=9bc6e9abebcffc8691a5c9152561879b0c6ba93e;hb=6bc4d2c813460cba201c390cc2380fb99bdc2c9d;hp=9366ed3e99e71f8081acb59098c0bb753fe2d4a3;hpb=b96aaa76f29044ce64b8a194436f430a86334b78;p=yardstick.git diff --git a/api/utils/influx.py b/api/utils/influx.py index 9366ed3e9..9bc6e9abe 100644 --- a/api/utils/influx.py +++ b/api/utils/influx.py @@ -6,13 +6,15 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from __future__ import absolute_import + import logging -from urlparse import urlsplit +import six.moves.configparser as ConfigParser +from six.moves.urllib.parse import urlsplit from influxdb import InfluxDBClient -import ConfigParser -from api import conf +from yardstick.common import constants as consts logger = logging.getLogger(__name__) @@ -20,47 +22,27 @@ logger = logging.getLogger(__name__) def get_data_db_client(): parser = ConfigParser.ConfigParser() try: - parser.read(conf.OUTPUT_CONFIG_FILE_PATH) - dispatcher = parser.get('DEFAULT', 'dispatcher') + parser.read(consts.CONF_FILE) - if 'influxdb' != dispatcher: + if parser.get('DEFAULT', 'dispatcher') != 'influxdb': raise RuntimeError - ip = _get_ip(parser.get('dispatcher_influxdb', 'target')) - username = parser.get('dispatcher_influxdb', 'username') - password = parser.get('dispatcher_influxdb', 'password') - db_name = parser.get('dispatcher_influxdb', 'db_name') - return InfluxDBClient(ip, conf.PORT, username, password, db_name) + return _get_client(parser) except ConfigParser.NoOptionError: logger.error('can not find the key') raise -def _get_ip(url): - return urlsplit(url).hostname - - -def _write_data(measurement, field, timestamp, tags): - point = { - 'measurement': measurement, - 'fields': field, - 'time': timestamp, - 'tags': tags - } - - try: - client = get_data_db_client() - - logger.debug('Start to write data: %s', point) - client.write_points([point]) - except RuntimeError: - logger.debug('dispatcher is not influxdb') +def _get_client(parser): + ip = _get_ip(parser.get('dispatcher_influxdb', 'target')) + user = parser.get('dispatcher_influxdb', 'username') + password = parser.get('dispatcher_influxdb', 'password') + db_name = parser.get('dispatcher_influxdb', 'db_name') + return InfluxDBClient(ip, consts.INFLUXDB_PORT, user, password, db_name) -def write_data_tasklist(task_id, timestamp, status, error=''): - field = {'status': status, 'error': error} - tags = {'task_id': task_id} - _write_data('tasklist', field, timestamp, tags) +def _get_ip(url): + return urlsplit(url).hostname def query(query_sql):