gauge_test.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package metric
  2. import (
  3. "testing"
  4. "github.com/prometheus/client_golang/prometheus/testutil"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/zeromicro/go-zero/core/proc"
  7. )
  8. func TestNewGaugeVec(t *testing.T) {
  9. gaugeVec := NewGaugeVec(&GaugeVecOpts{
  10. Namespace: "rpc_server",
  11. Subsystem: "requests",
  12. Name: "duration",
  13. Help: "rpc server requests duration(ms).",
  14. })
  15. defer gaugeVec.close()
  16. gaugeVecNil := NewGaugeVec(nil)
  17. assert.NotNil(t, gaugeVec)
  18. assert.Nil(t, gaugeVecNil)
  19. proc.Shutdown()
  20. }
  21. func TestGaugeInc(t *testing.T) {
  22. startAgent()
  23. gaugeVec := NewGaugeVec(&GaugeVecOpts{
  24. Namespace: "rpc_client2",
  25. Subsystem: "requests",
  26. Name: "duration_ms",
  27. Help: "rpc server requests duration(ms).",
  28. Labels: []string{"path"},
  29. })
  30. defer gaugeVec.close()
  31. gv, _ := gaugeVec.(*promGaugeVec)
  32. gv.Inc("/users")
  33. gv.Inc("/users")
  34. r := testutil.ToFloat64(gv.gauge)
  35. assert.Equal(t, float64(2), r)
  36. }
  37. func TestGaugeAdd(t *testing.T) {
  38. startAgent()
  39. gaugeVec := NewGaugeVec(&GaugeVecOpts{
  40. Namespace: "rpc_client",
  41. Subsystem: "request",
  42. Name: "duration_ms",
  43. Help: "rpc server requests duration(ms).",
  44. Labels: []string{"path"},
  45. })
  46. defer gaugeVec.close()
  47. gv, _ := gaugeVec.(*promGaugeVec)
  48. gv.Add(-10, "/classroom")
  49. gv.Add(30, "/classroom")
  50. r := testutil.ToFloat64(gv.gauge)
  51. assert.Equal(t, float64(20), r)
  52. }
  53. func TestGaugeSet(t *testing.T) {
  54. startAgent()
  55. gaugeVec := NewGaugeVec(&GaugeVecOpts{
  56. Namespace: "http_client",
  57. Subsystem: "request",
  58. Name: "duration_ms",
  59. Help: "rpc server requests duration(ms).",
  60. Labels: []string{"path"},
  61. })
  62. gaugeVec.close()
  63. gv, _ := gaugeVec.(*promGaugeVec)
  64. gv.Set(666, "/users")
  65. r := testutil.ToFloat64(gv.gauge)
  66. assert.Equal(t, float64(666), r)
  67. }