Advertisement
Guest User

Untitled

a guest
May 12th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # coding: utf-8
  3.  
  4. from influxdb import InfluxDBClient
  5. import time
  6.  
  7. DBNAME = 'test_db'
  8. SERIES_NAME = 'test_series'
  9. POINTS_NUMBER = 5000000
  10. THRESHOLD = 500000
  11. BASE_TS = 1462060800000
  12. INFLUXDB_CLIENT = InfluxDBClient(
  13. host='127.0.0.1',
  14. port=8086,
  15. username=None,
  16. password=None,
  17. )
  18.  
  19.  
  20. def insert_points(limit=POINTS_NUMBER):
  21.  
  22. print '==INSERTING SERIES=='
  23. print '* inserting {} points: from {}ms - to {}ms'.format(
  24. limit, BASE_TS, BASE_TS+limit)
  25.  
  26. headers = INFLUXDB_CLIENT._headers
  27. headers['Content-type'] = 'application/octet-stream'
  28.  
  29. points = ""
  30. for i in xrange(0, limit):
  31. points += '{},tag=tag{} value={} {}\n'.format(
  32. SERIES_NAME, i % 3, i % 10 + 1, BASE_TS+i)
  33.  
  34. if (i % THRESHOLD == 0) or (i == limit-1):
  35. INFLUXDB_CLIENT.request('write',
  36. method='POST',
  37. data=points,
  38. headers=headers,
  39. params=dict(db=DBNAME, precision='ms'),
  40. expected_response_code=204,
  41. )
  42. points = ""
  43.  
  44.  
  45. def do_query():
  46. print('==QUERY==')
  47. start = time.time()
  48. q = "select * from {} LIMIT 1".format(SERIES_NAME)
  49. res = INFLUXDB_CLIENT.query(q, epoch='ms')
  50. duration = time.time() - start
  51. print("* query: {}".format(q))
  52. print("* result: {}".format(list(res.get_points())[0]))
  53. print("* duration: {:.4f}s".format(duration))
  54.  
  55.  
  56. def main():
  57.  
  58. print('==CREATING DATABASE==')
  59. INFLUXDB_CLIENT.create_database(DBNAME)
  60. INFLUXDB_CLIENT.switch_database(DBNAME)
  61.  
  62. insert_points()
  63. do_query()
  64.  
  65. insert_points(limit=POINTS_NUMBER)
  66. do_query()
  67.  
  68. print('==SLEEP 10s==')
  69. time.sleep(10)
  70. do_query()
  71.  
  72. print('==REMOVING DATABASE==')
  73. INFLUXDB_CLIENT.drop_database(DBNAME)
  74.  
  75.  
  76. if __name__ == "__main__":
  77. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement