update conditional metrics usage
This commit is contained in:
parent
5a15f53fc6
commit
513eefe034
@ -1,6 +1,8 @@
|
|||||||
package bufpool
|
package bufpool
|
||||||
|
|
||||||
import "sync"
|
import (
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
pools = []struct {
|
pools = []struct {
|
||||||
|
@ -2,7 +2,6 @@ package udp
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-gost/core/common/bufpool"
|
"github.com/go-gost/core/common/bufpool"
|
||||||
@ -22,10 +21,10 @@ type listener struct {
|
|||||||
conn net.PacketConn
|
conn net.PacketConn
|
||||||
cqueue chan net.Conn
|
cqueue chan net.Conn
|
||||||
connPool *connPool
|
connPool *connPool
|
||||||
mux sync.Mutex
|
// mux sync.Mutex
|
||||||
closed chan struct{}
|
closed chan struct{}
|
||||||
errChan chan error
|
errChan chan error
|
||||||
config *ListenConfig
|
config *ListenConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewListener(conn net.PacketConn, cfg *ListenConfig) net.Listener {
|
func NewListener(conn net.PacketConn, cfg *ListenConfig) net.Listener {
|
||||||
@ -109,8 +108,8 @@ func (ln *listener) Close() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ln *listener) getConn(raddr net.Addr) *conn {
|
func (ln *listener) getConn(raddr net.Addr) *conn {
|
||||||
ln.mux.Lock()
|
// ln.mux.Lock()
|
||||||
defer ln.mux.Unlock()
|
// defer ln.mux.Unlock()
|
||||||
|
|
||||||
c, ok := ln.connPool.Get(raddr.String())
|
c, ok := ln.connPool.Get(raddr.String())
|
||||||
if ok {
|
if ok {
|
||||||
|
@ -29,7 +29,7 @@ var (
|
|||||||
global Metrics = Noop()
|
global Metrics = Noop()
|
||||||
)
|
)
|
||||||
|
|
||||||
func SetGlobal(m Metrics) {
|
func Init(m Metrics) {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
global = m
|
global = m
|
||||||
} else {
|
} else {
|
||||||
@ -37,8 +37,8 @@ func SetGlobal(m Metrics) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Global() Metrics {
|
func IsEnabled() bool {
|
||||||
return global
|
return global != Noop()
|
||||||
}
|
}
|
||||||
|
|
||||||
type Gauge interface {
|
type Gauge interface {
|
||||||
|
@ -20,6 +20,9 @@ type serverConn struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WrapConn(service string, c net.Conn) net.Conn {
|
func WrapConn(service string, c net.Conn) net.Conn {
|
||||||
|
if !metrics.IsEnabled() {
|
||||||
|
return c
|
||||||
|
}
|
||||||
return &serverConn{
|
return &serverConn{
|
||||||
service: service,
|
service: service,
|
||||||
Conn: c,
|
Conn: c,
|
||||||
@ -65,6 +68,9 @@ type packetConn struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WrapPacketConn(service string, pc net.PacketConn) net.PacketConn {
|
func WrapPacketConn(service string, pc net.PacketConn) net.PacketConn {
|
||||||
|
if !metrics.IsEnabled() {
|
||||||
|
return pc
|
||||||
|
}
|
||||||
return &packetConn{
|
return &packetConn{
|
||||||
PacketConn: pc,
|
PacketConn: pc,
|
||||||
service: service,
|
service: service,
|
||||||
|
@ -12,6 +12,10 @@ type listener struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WrapListener(service string, ln net.Listener) net.Listener {
|
func WrapListener(service string, ln net.Listener) net.Listener {
|
||||||
|
if !metrics.IsEnabled() {
|
||||||
|
return ln
|
||||||
|
}
|
||||||
|
|
||||||
return &listener{
|
return &listener{
|
||||||
service: service,
|
service: service,
|
||||||
Listener: ln,
|
Listener: ln,
|
||||||
@ -24,9 +28,5 @@ func (ln *listener) Accept() (net.Conn, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// metrics is not enabled
|
|
||||||
if metrics.Global() == metrics.Noop() {
|
|
||||||
return c, nil
|
|
||||||
}
|
|
||||||
return WrapConn(ln.service, c), nil
|
return WrapConn(ln.service, c), nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user