analytics.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import requests
  2. def post_data(field, keys, value):
  3. db = 'news'
  4. influx_host = 'http://localhost:8086/write?db=%s' % db
  5. headers = {'Content-Type': 'application/octet-stream'}
  6. tmpkeys = ",".join(["%s=%s" % (k, v) for k, v in keys.items()])
  7. if len(keys) > 0:
  8. data = "%s,%s value=%s" % (field, tmpkeys, value)
  9. else:
  10. data = "%s value=%s" % (field, value)
  11. print(data)
  12. try:
  13. ret = requests.post(influx_host, data=data, headers=headers)
  14. if ret.status_code // 100 != 2:
  15. print(ret.status_code)
  16. print(ret.text)
  17. print(data, "failed!!")
  18. except Exception as e:
  19. pass
  20. if __name__ == '__main__':
  21. from db import db
  22. d = db()
  23. errors = d.get_sources_with_error()
  24. for e in errors:
  25. val = e['_id'].replace(" ", r"\ ")
  26. post_data('error', {'source': '%s' % val}, e['count'])
  27. for d in d.get_sources_with_count():
  28. val = d['_id'].replace(" ", r"\ ")
  29. post_data('totals', {'source': '%s' % val},
  30. '%d,weight=%f' % (d['count'], d['weight']))