import requests def post_data(field, keys, value): db = 'news' influx_host = 'http://localhost:8086/write?db=%s' % db headers = {'Content-Type': 'application/octet-stream'} tmpkeys = ",".join(["%s=%s" % (k, v) for k, v in keys.items()]) if len(keys) > 0: data = "%s,%s" % (field, tmpkeys) else: data = "%s" % field if type(value) == dict: values = ",".join(["%s=%s" % (k, v) for k, v in value.items()]) data = "%s %s" % (data, values) else: data = "%s value=%s" % (data, value) print(data) try: ret = requests.post(influx_host, data=data, headers=headers) if ret.status_code // 100 != 2: print(ret.status_code) print(ret.text) print(data, "failed!!") except Exception as e: pass if __name__ == '__main__': from db import db d = db() errors = d.get_sources_with_error() for e in errors: val = e['_id'].replace(" ", r"\ ") post_data('error', {'source': '%s' % val}, e['count']) for d in d.get_sources_with_count(): val = d['_id'].replace(" ", r"\ ") post_data('totals', {'source': '%s' % val}, {'value': d['count'], 'weight': d['weight']})