remove unnecessary metric wrapper

This commit is contained in:
ginuerzh 2022-04-05 22:54:17 +08:00
parent c2f49e9444
commit b88025ea6d
3 changed files with 21 additions and 8 deletions

View File

@ -17,17 +17,21 @@ const (
type Labels map[string]string
var (
metrics Metrics = Noop()
global Metrics = Noop()
)
func SetGlobal(m Metrics) {
if m != nil {
metrics = m
global = m
} else {
metrics = Noop()
global = Noop()
}
}
func Global() Metrics {
return global
}
type Gauge interface {
Inc()
Dec()
@ -51,13 +55,13 @@ type Metrics interface {
}
func GetCounter(name MetricName, labels Labels) Counter {
return metrics.Counter(name, labels)
return global.Counter(name, labels)
}
func GetGauge(name MetricName, labels Labels) Gauge {
return metrics.Gauge(name, labels)
return global.Gauge(name, labels)
}
func GetObserver(name MetricName, labels Labels) Observer {
return metrics.Observer(name, labels)
return global.Observer(name, labels)
}

View File

@ -13,7 +13,7 @@ var (
errUnsupport = errors.New("unsupported operation")
)
// ServerConn is a server side Conn with metrics supported.
// serverConn is a server side Conn with metrics supported.
type serverConn struct {
net.Conn
service string

View File

@ -1,6 +1,10 @@
package wrapper
import "net"
import (
"net"
"github.com/go-gost/core/metrics"
)
type listener struct {
service string
@ -19,5 +23,10 @@ func (ln *listener) Accept() (net.Conn, error) {
if err != nil {
return nil, err
}
// metrics is not enabled
if metrics.Global() == metrics.Noop() {
return c, nil
}
return WrapConn(ln.service, c), nil
}