update conditional metrics usage

This commit is contained in:
ginuerzh
2022-07-29 21:18:01 +08:00
parent 5a15f53fc6
commit 513eefe034
5 changed files with 22 additions and 15 deletions

View File

@ -29,7 +29,7 @@ var (
global Metrics = Noop()
)
func SetGlobal(m Metrics) {
func Init(m Metrics) {
if m != nil {
global = m
} else {
@ -37,8 +37,8 @@ func SetGlobal(m Metrics) {
}
}
func Global() Metrics {
return global
func IsEnabled() bool {
return global != Noop()
}
type Gauge interface {

View File

@ -20,6 +20,9 @@ type serverConn struct {
}
func WrapConn(service string, c net.Conn) net.Conn {
if !metrics.IsEnabled() {
return c
}
return &serverConn{
service: service,
Conn: c,
@ -65,6 +68,9 @@ type packetConn struct {
}
func WrapPacketConn(service string, pc net.PacketConn) net.PacketConn {
if !metrics.IsEnabled() {
return pc
}
return &packetConn{
PacketConn: pc,
service: service,

View File

@ -12,6 +12,10 @@ type listener struct {
}
func WrapListener(service string, ln net.Listener) net.Listener {
if !metrics.IsEnabled() {
return ln
}
return &listener{
service: service,
Listener: ln,
@ -24,9 +28,5 @@ func (ln *listener) Accept() (net.Conn, error) {
return nil, err
}
// metrics is not enabled
if metrics.Global() == metrics.Noop() {
return c, nil
}
return WrapConn(ln.service, c), nil
}