metrics.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package main
  2. import (
  3. "fmt"
  4. "metrics"
  5. "time"
  6. )
  7. func main() {
  8. r := metrics.NewRegistry()
  9. /*
  10. c := metrics.NewCounter()
  11. r.RegisterCounter("foo", c)
  12. for i := 0; i < 1000; i++ {
  13. go func() {
  14. for {
  15. c.Dec(19)
  16. time.Sleep(300e6)
  17. }
  18. }()
  19. go func() {
  20. for {
  21. c.Inc(47)
  22. time.Sleep(400e6)
  23. }
  24. }()
  25. }
  26. for {
  27. fmt.Printf("c.Count(): %v\n", c.Count())
  28. time.Sleep(500e6)
  29. }
  30. */
  31. /*
  32. g := metrics.NewGauge()
  33. r.RegisterGauge("bar", g)
  34. for i := 0; i < 1000; i++ {
  35. go func() {
  36. for {
  37. g.Update(19)
  38. time.Sleep(300e6)
  39. }
  40. }()
  41. go func() {
  42. for {
  43. g.Update(47)
  44. time.Sleep(400e6)
  45. }
  46. }()
  47. }
  48. for {
  49. fmt.Printf("g.Value(): %v\n", g.Value())
  50. time.Sleep(500e6)
  51. }
  52. */
  53. h := metrics.NewHistogram()
  54. r.RegisterHistogram("baz", h)
  55. for i := 0; i < 1000; i++ {
  56. go func() {
  57. for {
  58. h.Update(19)
  59. time.Sleep(300e6)
  60. }
  61. }()
  62. go func() {
  63. for {
  64. h.Update(47)
  65. time.Sleep(400e6)
  66. }
  67. }()
  68. }
  69. for {
  70. fmt.Printf("h: %v %v %v %v %v %v\n", h.Count(), h.Sum(), h.Min(), h.Max(), h.StdDev(), h.Variance())
  71. time.Sleep(500e6)
  72. }
  73. }