github.com/shuguocloud/go-zero@v1.3.0/core/metric/counter_test.go (about)

     1  package metric
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/prometheus/client_golang/prometheus/testutil"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestNewCounterVec(t *testing.T) {
    11  	counterVec := NewCounterVec(&CounterVecOpts{
    12  		Namespace: "http_server",
    13  		Subsystem: "requests",
    14  		Name:      "total",
    15  		Help:      "rpc client requests error count.",
    16  	})
    17  	defer counterVec.close()
    18  	counterVecNil := NewCounterVec(nil)
    19  	assert.NotNil(t, counterVec)
    20  	assert.Nil(t, counterVecNil)
    21  }
    22  
    23  func TestCounterIncr(t *testing.T) {
    24  	counterVec := NewCounterVec(&CounterVecOpts{
    25  		Namespace: "http_client",
    26  		Subsystem: "call",
    27  		Name:      "code_total",
    28  		Help:      "http client requests error count.",
    29  		Labels:    []string{"path", "code"},
    30  	})
    31  	defer counterVec.close()
    32  	cv, _ := counterVec.(*promCounterVec)
    33  	cv.Inc("/Users", "500")
    34  	cv.Inc("/Users", "500")
    35  	r := testutil.ToFloat64(cv.counter)
    36  	assert.Equal(t, float64(2), r)
    37  }
    38  
    39  func TestCounterAdd(t *testing.T) {
    40  	counterVec := NewCounterVec(&CounterVecOpts{
    41  		Namespace: "rpc_server",
    42  		Subsystem: "requests",
    43  		Name:      "err_total",
    44  		Help:      "rpc client requests error count.",
    45  		Labels:    []string{"method", "code"},
    46  	})
    47  	defer counterVec.close()
    48  	cv, _ := counterVec.(*promCounterVec)
    49  	cv.Add(11, "/Users", "500")
    50  	cv.Add(22, "/Users", "500")
    51  	r := testutil.ToFloat64(cv.counter)
    52  	assert.Equal(t, float64(33), r)
    53  }