Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from influxdb import InfluxDBClusterClient
  4.  
  5. influx_host = "127.0.0.1"
  6. influx_port = 8086
  7. influx_user = "user"
  8. influx_pass = "pass"
  9. database = "example"
  10.  
  11. influx_timeout = 10
  12. c.influx_max_metrics = 40
  13. c.influx = InfluxDBClusterClient(
  14. [(influx_host,influx_port)],
  15. influx_user, influx_pass,
  16. database, timeout = influx_timeout)
  17.  
  18.  
  19. query = c.influx.query("SHOW FIELD KEYS")
  20. values = []
  21.  
  22. for key,items in query.items():
  23. for i in list(items):
  24. values.append(i["fieldKey"])
  25.  
  26. # String of all mean(values)
  27. # Set makes a uniq list
  28. cq_values = ",".join(map(lambda v: 'mean("%s") AS "%s"' % (v,v), set(values)))
  29.  
  30. cq_query = 'CREATE CONTINUOUS QUERY {cq_name} ON {database} BEGIN SELECT {cq_values} INTO {database}."rp_{rp}".:MEASUREMENT FROM {database}."{query}"./.*/ GROUP BY time({rp}), * END'
  31.  
  32. schema = [
  33. {"rp": "10s", "duration":"2h","query":"default"},
  34. {"rp": "30s", "duration":"6h","query":"default"},
  35. {"rp": "1m", "duration":"24h","query":"10s"},
  36. {"rp": "5m", "duration":"48h","query":"30s"},
  37. {"rp": "30m", "duration":"7d","query":"5m"},
  38. {"rp": "1h", "duration":"31d","query":"5m"},
  39. {"rp": "3h", "duration":"93d","query":"5m"},
  40. {"rp": "12h", "duration":"370d","query":"1h"},
  41. {"rp": "24h", "duration":"inf","query":"1h"}
  42. ]
  43.  
  44. for s in schema:
  45. # Create retention policies
  46. c.influx.create_retention_policy("rp_%s" % s["rp"], s["duration"], "1")
  47.  
  48. # Create CQs
  49. query = cq_query.format(cq_name="%s_cq_%s" % (database,s["rp"]), database=database, cq_values=cq_values, rp=s["rp"], query=s["query"])
  50. c.influx.query(query)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement