2 from urlparse import urlsplit
4 from influxdb import InfluxDBClient
9 logger = logging.getLogger(__name__)
12 def get_data_db_client():
13 parser = ConfigParser.ConfigParser()
15 parser.read(conf.OUTPUT_CONFIG_FILE_PATH)
16 dispatcher = parser.get('DEFAULT', 'dispatcher')
18 if 'influxdb' != dispatcher:
21 ip = _get_ip(parser.get('dispatcher_influxdb', 'target'))
22 username = parser.get('dispatcher_influxdb', 'username')
23 password = parser.get('dispatcher_influxdb', 'password')
24 db_name = parser.get('dispatcher_influxdb', 'db_name')
25 return InfluxDBClient(ip, conf.PORT, username, password, db_name)
26 except ConfigParser.NoOptionError:
27 logger.error('can not find the key')
32 return urlsplit(url).netloc.split(':')[0]
35 def _write_data(measurement, field, timestamp, tags):
37 'measurement': measurement,
44 client = get_data_db_client()
46 logger.debug('Start to write data: %s', point)
47 client.write_points([point])
49 logger.debug('dispatcher is not influxdb')
52 def write_data_tasklist(task_id, timestamp, status, error=''):
53 field = {'status': status, 'error': error}
54 tags = {'task_id': task_id}
55 _write_data('tasklist', field, timestamp, tags)