123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package metric
- import (
- "testing"
- "github.com/prometheus/client_golang/prometheus/testutil"
- "github.com/stretchr/testify/assert"
- "github.com/wuntsong-org/go-zero-plus/core/proc"
- )
- func TestNewGaugeVec(t *testing.T) {
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "rpc_server",
- Subsystem: "requests",
- Name: "duration",
- Help: "rpc server requests duration(ms).",
- })
- defer gaugeVec.close()
- gaugeVecNil := NewGaugeVec(nil)
- assert.NotNil(t, gaugeVec)
- assert.Nil(t, gaugeVecNil)
- proc.Shutdown()
- }
- func TestGaugeInc(t *testing.T) {
- startAgent()
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "rpc_client2",
- Subsystem: "requests",
- Name: "duration_ms",
- Help: "rpc server requests duration(ms).",
- Labels: []string{"path"},
- })
- defer gaugeVec.close()
- gv, _ := gaugeVec.(*promGaugeVec)
- gv.Inc("/users")
- gv.Inc("/users")
- r := testutil.ToFloat64(gv.gauge)
- assert.Equal(t, float64(2), r)
- }
- func TestGaugeDec(t *testing.T) {
- startAgent()
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "rpc_client",
- Subsystem: "requests",
- Name: "duration_ms",
- Help: "rpc server requests duration(ms).",
- Labels: []string{"path"},
- })
- defer gaugeVec.close()
- gv, _ := gaugeVec.(*promGaugeVec)
- gv.Dec("/users")
- gv.Dec("/users")
- r := testutil.ToFloat64(gv.gauge)
- assert.Equal(t, float64(-2), r)
- }
- func TestGaugeAdd(t *testing.T) {
- startAgent()
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "rpc_client",
- Subsystem: "request",
- Name: "duration_ms",
- Help: "rpc server requests duration(ms).",
- Labels: []string{"path"},
- })
- defer gaugeVec.close()
- gv, _ := gaugeVec.(*promGaugeVec)
- gv.Add(-10, "/classroom")
- gv.Add(30, "/classroom")
- r := testutil.ToFloat64(gv.gauge)
- assert.Equal(t, float64(20), r)
- }
- func TestGaugeSub(t *testing.T) {
- startAgent()
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "rpc_client",
- Subsystem: "request",
- Name: "duration_ms",
- Help: "rpc server requests duration(ms).",
- Labels: []string{"path"},
- })
- defer gaugeVec.close()
- gv, _ := gaugeVec.(*promGaugeVec)
- gv.Sub(-100, "/classroom")
- gv.Sub(30, "/classroom")
- r := testutil.ToFloat64(gv.gauge)
- assert.Equal(t, float64(70), r)
- }
- func TestGaugeSet(t *testing.T) {
- startAgent()
- gaugeVec := NewGaugeVec(&GaugeVecOpts{
- Namespace: "http_client",
- Subsystem: "request",
- Name: "duration_ms",
- Help: "rpc server requests duration(ms).",
- Labels: []string{"path"},
- })
- gaugeVec.close()
- gv, _ := gaugeVec.(*promGaugeVec)
- gv.Set(666, "/users")
- r := testutil.ToFloat64(gv.gauge)
- assert.Equal(t, float64(666), r)
- }
|