diff --git a/api/config.go b/api/config.go index 0bfab47..996bd31 100644 --- a/api/config.go +++ b/api/config.go @@ -7,10 +7,10 @@ import ( "os" "github.com/gin-gonic/gin" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/x/config" "github.com/go-gost/x/registry" "github.com/go-gost/x/service" - "github.com/go-gost/x/stats" ) type serviceStatus interface { diff --git a/config/parsing/service/parse.go b/config/parsing/service/parse.go index 3dfa74f..f454a87 100644 --- a/config/parsing/service/parse.go +++ b/config/parsing/service/parse.go @@ -15,6 +15,7 @@ import ( "github.com/go-gost/core/listener" "github.com/go-gost/core/logger" mdutil "github.com/go-gost/core/metadata/util" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/core/recorder" "github.com/go-gost/core/selector" "github.com/go-gost/core/service" @@ -32,7 +33,6 @@ import ( "github.com/go-gost/x/metadata" "github.com/go-gost/x/registry" xservice "github.com/go-gost/x/service" - "github.com/go-gost/x/stats" "github.com/vishvananda/netns" ) diff --git a/go.mod b/go.mod index 4a76d8a..356544b 100644 --- a/go.mod +++ b/go.mod @@ -9,9 +9,9 @@ require ( github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d github.com/gin-contrib/cors v1.5.0 github.com/gin-gonic/gin v1.9.1 - github.com/go-gost/core v0.0.0-20240625123708-4e831b95e8cc + github.com/go-gost/core v0.0.0-20240704150322-30cc92870515 github.com/go-gost/gosocks4 v0.0.1 - github.com/go-gost/gosocks5 v0.4.1 + github.com/go-gost/gosocks5 v0.4.2 github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a github.com/go-gost/relay v0.5.0 github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 diff --git a/go.sum b/go.sum index 66de8d5..0191175 100644 --- a/go.sum +++ b/go.sum @@ -53,12 +53,12 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-gost/core v0.0.0-20240625123708-4e831b95e8cc h1:aj0FZ3RYZPqlDko/pKPPAAve1/73g+uIq/sVEGtarss= -github.com/go-gost/core v0.0.0-20240625123708-4e831b95e8cc/go.mod h1:aTPFucvJyqc/o5h5/ZtyHJ0xgFIq5Ip+cMlhazm+TaI= +github.com/go-gost/core v0.0.0-20240704150322-30cc92870515 h1:i/zcDZtz00hcmRosvJgXmgJsdc4bC32PAvt2+8MUOEg= +github.com/go-gost/core v0.0.0-20240704150322-30cc92870515/go.mod h1:QmVAZIXIYBsX44Vehwug5RFnG2K3/Hz/uu/Y4QVhAY0= github.com/go-gost/gosocks4 v0.0.1 h1:+k1sec8HlELuQV7rWftIkmy8UijzUt2I6t+iMPlGB2s= github.com/go-gost/gosocks4 v0.0.1/go.mod h1:3B6L47HbU/qugDg4JnoFPHgJXE43Inz8Bah1QaN9qCc= -github.com/go-gost/gosocks5 v0.4.1 h1:n79qlj525xVqGvUR/Uou5ewIbjs0QiDICzJbrK6z3PI= -github.com/go-gost/gosocks5 v0.4.1/go.mod h1:1G6I7HP7VFVxveGkoK8mnprnJqSqJjdcASKsdUn4Pp4= +github.com/go-gost/gosocks5 v0.4.2 h1:IianxHTkACPqCwiOAT3MHoMdSUl+SEPSRu1ikawC1Pc= +github.com/go-gost/gosocks5 v0.4.2/go.mod h1:1G6I7HP7VFVxveGkoK8mnprnJqSqJjdcASKsdUn4Pp4= github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a h1:ME7P1Brcg4C640DSPqlvQr7JuvvQfJ8QpmS3yCFlK3A= github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a/go.mod h1:qXr2Zm9Ex2ATqnWuNUzVZqySPMnuIihvblYZt4MlZLw= github.com/go-gost/relay v0.5.0 h1:JG1tgy/KWiVXS0ukuVXvbM0kbYuJTWxYpJ5JwzsCf/c= diff --git a/handler/http/handler.go b/handler/http/handler.go index 08b9316..30efe32 100644 --- a/handler/http/handler.go +++ b/handler/http/handler.go @@ -23,13 +23,13 @@ import ( traffic "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" md "github.com/go-gost/core/metadata" + "github.com/go-gost/core/observer/stats" ctxvalue "github.com/go-gost/x/ctx" netpkg "github.com/go-gost/x/internal/net" stats_util "github.com/go-gost/x/internal/util/stats" traffic_wrapper "github.com/go-gost/x/limiter/traffic/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/handler/http2/handler.go b/handler/http2/handler.go index b7f94c9..d95b029 100644 --- a/handler/http2/handler.go +++ b/handler/http2/handler.go @@ -23,14 +23,14 @@ import ( "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" md "github.com/go-gost/core/metadata" + "github.com/go-gost/core/observer/stats" ctxvalue "github.com/go-gost/x/ctx" xio "github.com/go-gost/x/internal/io" netpkg "github.com/go-gost/x/internal/net" stats_util "github.com/go-gost/x/internal/util/stats" "github.com/go-gost/x/limiter/traffic/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/handler/relay/connect.go b/handler/relay/connect.go index 7b08bca..2fae3be 100644 --- a/handler/relay/connect.go +++ b/handler/relay/connect.go @@ -10,13 +10,13 @@ import ( "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/relay" ctxvalue "github.com/go-gost/x/ctx" xnet "github.com/go-gost/x/internal/net" serial "github.com/go-gost/x/internal/util/serial" "github.com/go-gost/x/limiter/traffic/wrapper" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" ) func (h *relayHandler) handleConnect(ctx context.Context, conn net.Conn, network, address string, log logger.Logger) (err error) { diff --git a/handler/relay/forward.go b/handler/relay/forward.go index 6d309c7..8074c55 100644 --- a/handler/relay/forward.go +++ b/handler/relay/forward.go @@ -9,12 +9,12 @@ import ( "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/relay" ctxvalue "github.com/go-gost/x/ctx" netpkg "github.com/go-gost/x/internal/net" "github.com/go-gost/x/limiter/traffic/wrapper" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" ) func (h *relayHandler) handleForward(ctx context.Context, conn net.Conn, network string, log logger.Logger) error { diff --git a/handler/socks/v4/handler.go b/handler/socks/v4/handler.go index 53d274c..ee67332 100644 --- a/handler/socks/v4/handler.go +++ b/handler/socks/v4/handler.go @@ -11,14 +11,14 @@ import ( "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" md "github.com/go-gost/core/metadata" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/gosocks4" ctxvalue "github.com/go-gost/x/ctx" netpkg "github.com/go-gost/x/internal/net" stats_util "github.com/go-gost/x/internal/util/stats" "github.com/go-gost/x/limiter/traffic/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" ) var ( diff --git a/handler/socks/v5/connect.go b/handler/socks/v5/connect.go index 4384b54..1ba0d03 100644 --- a/handler/socks/v5/connect.go +++ b/handler/socks/v5/connect.go @@ -8,12 +8,12 @@ import ( "github.com/go-gost/core/limiter/traffic" "github.com/go-gost/core/logger" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/gosocks5" ctxvalue "github.com/go-gost/x/ctx" netpkg "github.com/go-gost/x/internal/net" "github.com/go-gost/x/limiter/traffic/wrapper" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" ) func (h *socks5Handler) handleConnect(ctx context.Context, conn net.Conn, network, address string, log logger.Logger) error { diff --git a/handler/socks/v5/udp.go b/handler/socks/v5/udp.go index 091a77b..d4405f9 100644 --- a/handler/socks/v5/udp.go +++ b/handler/socks/v5/udp.go @@ -9,13 +9,13 @@ import ( "time" "github.com/go-gost/core/logger" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/gosocks5" ctxvalue "github.com/go-gost/x/ctx" xnet "github.com/go-gost/x/internal/net" "github.com/go-gost/x/internal/net/udp" "github.com/go-gost/x/internal/util/socks" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" ) func (h *socks5Handler) handleUDP(ctx context.Context, conn net.Conn, log logger.Logger) error { diff --git a/handler/socks/v5/udp_tun.go b/handler/socks/v5/udp_tun.go index 1f924c2..7b99c6b 100644 --- a/handler/socks/v5/udp_tun.go +++ b/handler/socks/v5/udp_tun.go @@ -7,13 +7,13 @@ import ( "time" "github.com/go-gost/core/logger" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/gosocks5" ctxvalue "github.com/go-gost/x/ctx" xnet "github.com/go-gost/x/internal/net" "github.com/go-gost/x/internal/net/udp" "github.com/go-gost/x/internal/util/socks" - "github.com/go-gost/x/stats" - stats_wrapper "github.com/go-gost/x/stats/wrapper" + stats_wrapper "github.com/go-gost/x/observer/stats/wrapper" ) func (h *socks5Handler) handleUDPTun(ctx context.Context, conn net.Conn, network, address string, log logger.Logger) error { diff --git a/internal/util/stats/stats.go b/internal/util/stats/stats.go index 81d33c1..2219c1b 100644 --- a/internal/util/stats/stats.go +++ b/internal/util/stats/stats.go @@ -4,7 +4,7 @@ import ( "sync" "github.com/go-gost/core/observer" - "github.com/go-gost/x/stats" + "github.com/go-gost/core/observer/stats" ) type HandlerStats struct { diff --git a/listener/dns/listener.go b/listener/dns/listener.go index 42717b2..8f8ef17 100644 --- a/listener/dns/listener.go +++ b/listener/dns/listener.go @@ -16,8 +16,8 @@ import ( "github.com/go-gost/core/logger" md "github.com/go-gost/core/metadata" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/miekg/dns" ) diff --git a/listener/dtls/listener.go b/listener/dtls/listener.go index 4675c21..228cf4d 100644 --- a/listener/dtls/listener.go +++ b/listener/dtls/listener.go @@ -16,8 +16,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/pion/dtls/v2" ) diff --git a/listener/ftcp/listener.go b/listener/ftcp/listener.go index eb25d2f..957d793 100644 --- a/listener/ftcp/listener.go +++ b/listener/ftcp/listener.go @@ -11,8 +11,8 @@ import ( xnet "github.com/go-gost/x/internal/net" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/xtaci/tcpraw" ) diff --git a/listener/grpc/listener.go b/listener/grpc/listener.go index fd5f7ae..1bf16d6 100644 --- a/listener/grpc/listener.go +++ b/listener/grpc/listener.go @@ -15,8 +15,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/keepalive" diff --git a/listener/http2/h2/listener.go b/listener/http2/h2/listener.go index e01987f..aa2ad57 100644 --- a/listener/http2/h2/listener.go +++ b/listener/http2/h2/listener.go @@ -18,8 +18,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" ) diff --git a/listener/http2/listener.go b/listener/http2/listener.go index ea115ab..682a367 100644 --- a/listener/http2/listener.go +++ b/listener/http2/listener.go @@ -17,8 +17,8 @@ import ( limiter "github.com/go-gost/x/limiter/traffic/wrapper" mdx "github.com/go-gost/x/metadata" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "golang.org/x/net/http2" ) diff --git a/listener/http3/h3/listener.go b/listener/http3/h3/listener.go index fd0aaaa..0ebef93 100644 --- a/listener/http3/h3/listener.go +++ b/listener/http3/h3/listener.go @@ -11,8 +11,8 @@ import ( pht_util "github.com/go-gost/x/internal/util/pht" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/quic-go/quic-go" ) diff --git a/listener/http3/wt/listener.go b/listener/http3/wt/listener.go index cba4cf9..118b10c 100644 --- a/listener/http3/wt/listener.go +++ b/listener/http3/wt/listener.go @@ -13,8 +13,8 @@ import ( wt_util "github.com/go-gost/x/internal/util/wt" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/quic-go/quic-go" "github.com/quic-go/quic-go/http3" wt "github.com/quic-go/webtransport-go" diff --git a/listener/icmp/listener.go b/listener/icmp/listener.go index ec7341b..86529f6 100644 --- a/listener/icmp/listener.go +++ b/listener/icmp/listener.go @@ -11,8 +11,8 @@ import ( icmp_pkg "github.com/go-gost/x/internal/util/icmp" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/quic-go/quic-go" "golang.org/x/net/icmp" ) diff --git a/listener/kcp/listener.go b/listener/kcp/listener.go index 93ea34d..be2901a 100644 --- a/listener/kcp/listener.go +++ b/listener/kcp/listener.go @@ -12,8 +12,8 @@ import ( kcp_util "github.com/go-gost/x/internal/util/kcp" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/xtaci/kcp-go/v5" "github.com/xtaci/smux" "github.com/xtaci/tcpraw" diff --git a/listener/mtcp/listener.go b/listener/mtcp/listener.go index 22654e4..3d8d7df 100644 --- a/listener/mtcp/listener.go +++ b/listener/mtcp/listener.go @@ -15,8 +15,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/mtls/listener.go b/listener/mtls/listener.go index 924fff9..5d67a4b 100644 --- a/listener/mtls/listener.go +++ b/listener/mtls/listener.go @@ -16,8 +16,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/mws/listener.go b/listener/mws/listener.go index 6888030..c50d80c 100644 --- a/listener/mws/listener.go +++ b/listener/mws/listener.go @@ -19,8 +19,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/gorilla/websocket" ) diff --git a/listener/obfs/http/listener.go b/listener/obfs/http/listener.go index a1e0671..ccedafc 100644 --- a/listener/obfs/http/listener.go +++ b/listener/obfs/http/listener.go @@ -14,8 +14,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/obfs/tls/listener.go b/listener/obfs/tls/listener.go index 3aa29f6..a7a6ccd 100644 --- a/listener/obfs/tls/listener.go +++ b/listener/obfs/tls/listener.go @@ -14,8 +14,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/pht/listener.go b/listener/pht/listener.go index 50a7999..1a8ba6f 100644 --- a/listener/pht/listener.go +++ b/listener/pht/listener.go @@ -13,8 +13,8 @@ import ( pht_util "github.com/go-gost/x/internal/util/pht" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/quic/listener.go b/listener/quic/listener.go index 842df4b..3604fef 100644 --- a/listener/quic/listener.go +++ b/listener/quic/listener.go @@ -12,8 +12,8 @@ import ( quic_util "github.com/go-gost/x/internal/util/quic" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/quic-go/quic-go" ) diff --git a/listener/redirect/tcp/listener.go b/listener/redirect/tcp/listener.go index bcbfb17..4907698 100644 --- a/listener/redirect/tcp/listener.go +++ b/listener/redirect/tcp/listener.go @@ -14,8 +14,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/redirect/udp/listener.go b/listener/redirect/udp/listener.go index d2b22e3..ff0698a 100644 --- a/listener/redirect/udp/listener.go +++ b/listener/redirect/udp/listener.go @@ -9,8 +9,8 @@ import ( admission "github.com/go-gost/x/admission/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/rtcp/listener.go b/listener/rtcp/listener.go index 0ca8538..d553089 100644 --- a/listener/rtcp/listener.go +++ b/listener/rtcp/listener.go @@ -14,8 +14,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/rudp/listener.go b/listener/rudp/listener.go index c65dc42..8d9e310 100644 --- a/listener/rudp/listener.go +++ b/listener/rudp/listener.go @@ -13,8 +13,8 @@ import ( xnet "github.com/go-gost/x/internal/net" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/serial/listener.go b/listener/serial/listener.go index 7db6f2e..862dd3c 100644 --- a/listener/serial/listener.go +++ b/listener/serial/listener.go @@ -11,8 +11,8 @@ import ( serial "github.com/go-gost/x/internal/util/serial" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/ssh/listener.go b/listener/ssh/listener.go index 18383a2..2701b09 100644 --- a/listener/ssh/listener.go +++ b/listener/ssh/listener.go @@ -16,8 +16,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "golang.org/x/crypto/ssh" ) diff --git a/listener/sshd/listener.go b/listener/sshd/listener.go index 5f891ec..6c49d5a 100644 --- a/listener/sshd/listener.go +++ b/listener/sshd/listener.go @@ -18,9 +18,9 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" "golang.org/x/crypto/ssh" - stats "github.com/go-gost/x/stats/wrapper" ) // Applicable SSH Request types for Port Forwarding - RFC 4254 7.X diff --git a/listener/tap/listener.go b/listener/tap/listener.go index 02b5803..c01cfbb 100644 --- a/listener/tap/listener.go +++ b/listener/tap/listener.go @@ -12,8 +12,8 @@ import ( limiter "github.com/go-gost/x/limiter/traffic/wrapper" mdx "github.com/go-gost/x/metadata" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/tcp/listener.go b/listener/tcp/listener.go index 2ca37b1..9e42ef4 100644 --- a/listener/tcp/listener.go +++ b/listener/tcp/listener.go @@ -14,8 +14,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/tls/listener.go b/listener/tls/listener.go index 0f46624..2e36fb7 100644 --- a/listener/tls/listener.go +++ b/listener/tls/listener.go @@ -15,8 +15,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/tun/listener.go b/listener/tun/listener.go index a6a5058..bf4f96d 100644 --- a/listener/tun/listener.go +++ b/listener/tun/listener.go @@ -13,8 +13,8 @@ import ( limiter "github.com/go-gost/x/limiter/traffic/wrapper" mdx "github.com/go-gost/x/metadata" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/udp/listener.go b/listener/udp/listener.go index a33073b..d437a3c 100644 --- a/listener/udp/listener.go +++ b/listener/udp/listener.go @@ -11,8 +11,8 @@ import ( xnet "github.com/go-gost/x/internal/net" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/unix/listener.go b/listener/unix/listener.go index 2c0d94b..11f718a 100644 --- a/listener/unix/listener.go +++ b/listener/unix/listener.go @@ -10,8 +10,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" ) func init() { diff --git a/listener/ws/listener.go b/listener/ws/listener.go index b32146a..2a42a25 100644 --- a/listener/ws/listener.go +++ b/listener/ws/listener.go @@ -18,8 +18,8 @@ import ( climiter "github.com/go-gost/x/limiter/conn/wrapper" limiter "github.com/go-gost/x/limiter/traffic/wrapper" metrics "github.com/go-gost/x/metrics/wrapper" + stats "github.com/go-gost/x/observer/stats/wrapper" "github.com/go-gost/x/registry" - stats "github.com/go-gost/x/stats/wrapper" "github.com/gorilla/websocket" ) diff --git a/observer/plugin/grpc.go b/observer/plugin/grpc.go index 4bdaabf..ea34f53 100644 --- a/observer/plugin/grpc.go +++ b/observer/plugin/grpc.go @@ -6,10 +6,10 @@ import ( "github.com/go-gost/core/logger" "github.com/go-gost/core/observer" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/plugin/observer/proto" "github.com/go-gost/x/internal/plugin" "github.com/go-gost/x/service" - "github.com/go-gost/x/stats" "google.golang.org/grpc" ) diff --git a/observer/plugin/http.go b/observer/plugin/http.go index 01e9a38..1ca082e 100644 --- a/observer/plugin/http.go +++ b/observer/plugin/http.go @@ -10,9 +10,9 @@ import ( "github.com/go-gost/core/logger" "github.com/go-gost/core/observer" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/x/internal/plugin" "github.com/go-gost/x/service" - "github.com/go-gost/x/stats" ) type observeRequest struct { diff --git a/stats/wrapper/conn.go b/observer/stats/wrapper/conn.go similarity index 99% rename from stats/wrapper/conn.go rename to observer/stats/wrapper/conn.go index 5e00f05..55e072a 100644 --- a/stats/wrapper/conn.go +++ b/observer/stats/wrapper/conn.go @@ -7,9 +7,9 @@ import ( "syscall" "github.com/go-gost/core/metadata" + "github.com/go-gost/core/observer/stats" xnet "github.com/go-gost/x/internal/net" "github.com/go-gost/x/internal/net/udp" - "github.com/go-gost/x/stats" ) var ( diff --git a/stats/wrapper/io.go b/observer/stats/wrapper/io.go similarity index 93% rename from stats/wrapper/io.go rename to observer/stats/wrapper/io.go index 365606f..7c165f3 100644 --- a/stats/wrapper/io.go +++ b/observer/stats/wrapper/io.go @@ -3,7 +3,7 @@ package wrapper import ( "io" - "github.com/go-gost/x/stats" + "github.com/go-gost/core/observer/stats" ) // readWriter is an io.ReadWriter with Stats. diff --git a/stats/wrapper/listener.go b/observer/stats/wrapper/listener.go similarity index 90% rename from stats/wrapper/listener.go rename to observer/stats/wrapper/listener.go index 88c272e..595da2d 100644 --- a/stats/wrapper/listener.go +++ b/observer/stats/wrapper/listener.go @@ -3,7 +3,7 @@ package wrapper import ( "net" - "github.com/go-gost/x/stats" + "github.com/go-gost/core/observer/stats" ) type listener struct { diff --git a/service/service.go b/service/service.go index d7ccd44..d3c6491 100644 --- a/service/service.go +++ b/service/service.go @@ -15,11 +15,11 @@ import ( "github.com/go-gost/core/logger" "github.com/go-gost/core/metrics" "github.com/go-gost/core/observer" + "github.com/go-gost/core/observer/stats" "github.com/go-gost/core/recorder" "github.com/go-gost/core/service" ctxvalue "github.com/go-gost/x/ctx" xmetrics "github.com/go-gost/x/metrics" - "github.com/go-gost/x/stats" "github.com/rs/xid" ) diff --git a/service/status.go b/service/status.go index 424a77a..457ef3e 100644 --- a/service/status.go +++ b/service/status.go @@ -4,7 +4,7 @@ import ( "sync" "time" - "github.com/go-gost/x/stats" + "github.com/go-gost/core/observer/stats" ) const ( diff --git a/stats/stats.go b/stats/stats.go deleted file mode 100644 index d00bf75..0000000 --- a/stats/stats.go +++ /dev/null @@ -1,93 +0,0 @@ -package stats - -import ( - "sync/atomic" - - "github.com/go-gost/core/observer" -) - -type Kind int - -const ( - KindTotalConns Kind = 1 - KindCurrentConns Kind = 2 - KindInputBytes Kind = 3 - KindOutputBytes Kind = 4 - KindTotalErrs Kind = 5 -) - -type Stats struct { - updated atomic.Bool - totalConns atomic.Uint64 - currentConns atomic.Int64 - inputBytes atomic.Uint64 - outputBytes atomic.Uint64 - totalErrs atomic.Uint64 -} - -func (s *Stats) Add(kind Kind, n int64) { - if s == nil { - return - } - switch kind { - case KindTotalConns: - if n > 0 { - s.totalConns.Add(uint64(n)) - } - case KindCurrentConns: - s.currentConns.Add(n) - case KindInputBytes: - if n > 0 { - s.inputBytes.Add(uint64(n)) - } - case KindOutputBytes: - if n > 0 { - s.outputBytes.Add(uint64(n)) - } - case KindTotalErrs: - if n > 0 { - s.totalErrs.Add(uint64(n)) - } - } - s.updated.Store(true) -} - -func (s *Stats) Get(kind Kind) uint64 { - if s == nil { - return 0 - } - - switch kind { - case KindTotalConns: - return s.totalConns.Load() - case KindCurrentConns: - return uint64(s.currentConns.Load()) - case KindInputBytes: - return s.inputBytes.Load() - case KindOutputBytes: - return s.outputBytes.Load() - case KindTotalErrs: - return s.totalErrs.Load() - } - return 0 -} - -func (s *Stats) IsUpdated() bool { - return s.updated.Swap(false) -} - -type StatsEvent struct { - Kind string - Service string - Client string - - TotalConns uint64 - CurrentConns uint64 - InputBytes uint64 - OutputBytes uint64 - TotalErrs uint64 -} - -func (StatsEvent) Type() observer.EventType { - return observer.EventStats -}