github.com/ava-labs/subnet-evm@v0.6.4/metrics/prometheus/prometheus_test.go (about) 1 // (c) 2021, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package prometheus 5 6 import ( 7 "testing" 8 "time" 9 10 "github.com/stretchr/testify/assert" 11 12 "github.com/ava-labs/subnet-evm/metrics" 13 ) 14 15 func TestGatherer(t *testing.T) { 16 registry := metrics.NewRegistry() 17 18 counter := metrics.NewCounter() 19 counter.Inc(12345) 20 21 err := registry.Register("test/counter", counter) 22 assert.NoError(t, err) 23 24 gauge := metrics.NewGauge() 25 gauge.Update(23456) 26 27 err = registry.Register("test/gauge", gauge) 28 assert.NoError(t, err) 29 30 gaugeFloat64 := metrics.NewGaugeFloat64() 31 gaugeFloat64.Update(34567.89) 32 33 err = registry.Register("test/gauge_float64", gaugeFloat64) 34 assert.NoError(t, err) 35 36 sample := metrics.NewUniformSample(1028) 37 histogram := metrics.NewHistogram(sample) 38 39 err = registry.Register("test/histogram", histogram) 40 assert.NoError(t, err) 41 42 meter := metrics.NewMeter() 43 defer meter.Stop() 44 meter.Mark(9999999) 45 46 err = registry.Register("test/meter", meter) 47 assert.NoError(t, err) 48 49 timer := metrics.NewTimer() 50 defer timer.Stop() 51 timer.Update(20 * time.Millisecond) 52 timer.Update(21 * time.Millisecond) 53 timer.Update(22 * time.Millisecond) 54 timer.Update(120 * time.Millisecond) 55 timer.Update(23 * time.Millisecond) 56 timer.Update(24 * time.Millisecond) 57 58 err = registry.Register("test/timer", timer) 59 assert.NoError(t, err) 60 61 resettingTimer := metrics.NewResettingTimer() 62 resettingTimer.Update(10 * time.Millisecond) 63 resettingTimer.Update(11 * time.Millisecond) 64 resettingTimer.Update(12 * time.Millisecond) 65 resettingTimer.Update(120 * time.Millisecond) 66 resettingTimer.Update(13 * time.Millisecond) 67 resettingTimer.Update(14 * time.Millisecond) 68 69 err = registry.Register("test/resetting_timer", resettingTimer) 70 assert.NoError(t, err) 71 72 err = registry.Register("test/resetting_timer_snapshot", resettingTimer.Snapshot()) 73 assert.NoError(t, err) 74 75 emptyResettingTimer := metrics.NewResettingTimer() 76 77 err = registry.Register("test/empty_resetting_timer", emptyResettingTimer) 78 assert.NoError(t, err) 79 80 err = registry.Register("test/empty_resetting_timer_snapshot", emptyResettingTimer.Snapshot()) 81 assert.NoError(t, err) 82 83 g := Gatherer(registry) 84 85 _, err = g.Gather() 86 assert.NoError(t, err) 87 }