func TestCounterBatchFunc(t *testing.T) { metrics.Reset() var a, b uint64 metrics.Counter("whee").SetBatchFunc( "yay", func() { a, b = 1, 2 }, func() uint64 { return a }, ) metrics.Counter("woo").SetBatchFunc( "yay", func() { a, b = 1, 2 }, func() uint64 { return b }, ) counters, _ := metrics.Snapshot() if v, want := counters["whee"], uint64(1); v != want { t.Errorf("Counter was %v, but expected %v", v, want) } if v, want := counters["woo"], uint64(2); v != want { t.Errorf("Counter was %v, but expected %v", v, want) } }
func TestMemStats(t *testing.T) { counters, gauges := metrics.Snapshot() expectedCounters := []string{ "Mem.NumGC", "Mem.PauseTotalNs", } expectedGauges := []string{ "Mem.LastGC", "Mem.Alloc", "Mem.HeapObjects", } for _, name := range expectedCounters { if _, ok := counters[name]; !ok { t.Errorf("Missing counters %q", name) } } for _, name := range expectedGauges { if _, ok := gauges[name]; !ok { t.Errorf("Missing gauge %q", name) } } }
func TestGaugeValue(t *testing.T) { metrics.Reset() metrics.Gauge("whee").Set(-100) _, gauges := metrics.Snapshot() if v, want := gauges["whee"], int64(-100); v != want { t.Errorf("Gauge was %v, but expected %v", v, want) } }
func TestCounter(t *testing.T) { metrics.Reset() metrics.Counter("whee").Add() metrics.Counter("whee").AddN(10) counters, _ := metrics.Snapshot() if v, want := counters["whee"], uint64(11); v != want { t.Errorf("Counter was %v, but expected %v", v, want) } }
func TestCounterRemove(t *testing.T) { metrics.Reset() metrics.Counter("whee").Add() metrics.Counter("whee").Remove() counters, _ := metrics.Snapshot() if v, ok := counters["whee"]; ok { t.Errorf("Counter was %v, but expected nothing", v) } }
func TestHistogramRemove(t *testing.T) { metrics.Reset() h := metrics.NewHistogram("heyo", 1, 1000, 3) h.Remove() _, gauges := metrics.Snapshot() if v, ok := gauges["heyo.P50"]; ok { t.Errorf("Gauge was %v, but expected nothing", v) } }
func TestGaugeRemove(t *testing.T) { metrics.Reset() metrics.Gauge("whee").Set(1) metrics.Gauge("whee").Remove() _, gauges := metrics.Snapshot() if v, ok := gauges["whee"]; ok { t.Errorf("Gauge was %v, but expected nothing", v) } }
func TestCounterFunc(t *testing.T) { metrics.Reset() metrics.Counter("whee").SetFunc(func() uint64 { return 100 }) counters, _ := metrics.Snapshot() if v, want := counters["whee"], uint64(100); v != want { t.Errorf("Counter was %v, but expected %v", v, want) } }
func TestGoroutinesStats(t *testing.T) { _, gauges := metrics.Snapshot() expected := []string{ "Goroutines.Num", } for _, name := range expected { if _, ok := gauges[name]; !ok { t.Errorf("Missing gauge %q", name) } } }
func TestFdStats(t *testing.T) { _, gauges := metrics.Snapshot() expected := []string{ "FileDescriptors.Max", "FileDescriptors.Used", } for _, name := range expected { if _, ok := gauges[name]; !ok { t.Errorf("Missing gauge %q", name) } } }
func TestHistogram(t *testing.T) { metrics.Reset() h := metrics.NewHistogram("heyo", 1, 1000, 3) for i := 100; i > 0; i-- { for j := 0; j < i; j++ { h.RecordValue(int64(i)) } } _, gauges := metrics.Snapshot() if v, want := gauges["heyo.P50"], int64(71); v != want { t.Errorf("P50 was %v, but expected %v", v, want) } if v, want := gauges["heyo.P75"], int64(87); v != want { t.Errorf("P75 was %v, but expected %v", v, want) } if v, want := gauges["heyo.P90"], int64(95); v != want { t.Errorf("P90 was %v, but expected %v", v, want) } if v, want := gauges["heyo.P95"], int64(98); v != want { t.Errorf("P95 was %v, but expected %v", v, want) } if v, want := gauges["heyo.P99"], int64(100); v != want { t.Errorf("P99 was %v, but expected %v", v, want) } if v, want := gauges["heyo.P999"], int64(100); v != want { t.Errorf("P999 was %v, but expected %v", v, want) } }