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  }