gauge_test.go 1.7 KB

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