generators.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package test
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "time"
  6. "github.com/influxdata/influxdb-client-go/v2/api/write"
  7. )
  8. // GenPoints generates num points
  9. func GenPoints(num int) []*write.Point {
  10. points := make([]*write.Point, num)
  11. rand.Seed(321)
  12. t := time.Now()
  13. for i := 0; i < len(points); i++ {
  14. points[i] = write.NewPoint(
  15. "test",
  16. map[string]string{
  17. "id": fmt.Sprintf("rack_%v", i%10),
  18. "vendor": "AWS",
  19. "hostname": fmt.Sprintf("host_%v", i%100),
  20. },
  21. map[string]interface{}{
  22. "temperature": rand.Float64() * 80.0,
  23. "disk_free": rand.Float64() * 1000.0,
  24. "disk_total": (i/10 + 1) * 1000000,
  25. "mem_total": (i/100 + 1) * 10000000,
  26. "mem_free": rand.Uint64(),
  27. },
  28. t)
  29. if i%10 == 0 {
  30. t = t.Add(time.Second)
  31. }
  32. }
  33. return points
  34. }
  35. // GenRecords generates num points
  36. func GenRecords(num int) []string {
  37. lines := make([]string, num)
  38. rand.Seed(321)
  39. t := time.Now()
  40. for i := 0; i < len(lines); i++ {
  41. lines[i] = fmt.Sprintf("test,id=rack_%v,vendor=AWS,hostname=host_%v temperature=%v,disk_free=%v,disk_total=%vi,mem_total=%vi,mem_free=%vu %v",
  42. i%10, i%100, rand.Float64()*80.0, rand.Float64()*1000.0, (i/10+1)*1000000, (i/100+1)*10000000, rand.Uint64(), t.UnixNano())
  43. if i%10 == 0 {
  44. t = t.Add(time.Nanosecond)
  45. }
  46. }
  47. return lines
  48. }