metrics.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. /*
  54. s := metrics.NewExpDecaySample(1028, 0.015)
  55. // s := metrics.NewUniformSample(1028)
  56. h := metrics.NewHistogram(s)
  57. r.RegisterHistogram("baz", h)
  58. for i := 0; i < 1000; i++ {
  59. go func() {
  60. for {
  61. h.Update(19)
  62. time.Sleep(300e6)
  63. }
  64. }()
  65. go func() {
  66. for {
  67. h.Update(47)
  68. time.Sleep(400e6)
  69. }
  70. }()
  71. }
  72. for {
  73. fmt.Printf(
  74. "h: %v %v %v %v %v %v %v %v %v\n",
  75. h.Count(), h.Sum(), h.Min(), h.Max(),
  76. h.Percentile(95.0), h.Percentile(99.0), h.Percentile(99.9),
  77. h.StdDev(), h.Variance(),
  78. )
  79. time.Sleep(500e6)
  80. }
  81. */
  82. m := metrics.NewMeter()
  83. r.RegisterMeter("bang", m)
  84. for i := 0; i < 1000; i++ {
  85. go func() {
  86. for {
  87. m.Mark(19)
  88. time.Sleep(300e6)
  89. }
  90. }()
  91. go func() {
  92. for {
  93. m.Mark(47)
  94. time.Sleep(400e6)
  95. }
  96. }()
  97. }
  98. for {
  99. fmt.Printf(
  100. "m: %v %v %v %v %v\n",
  101. m.Count(), m.Rate1(), m.Rate5(), m.Rate15(), m.RateMean(),
  102. )
  103. time.Sleep(500e6)
  104. }
  105. }