diff --git a/cmd/gost/config.go b/cmd/gost/config.go index 0229c11..ab6381c 100644 --- a/cmd/gost/config.go +++ b/cmd/gost/config.go @@ -14,6 +14,7 @@ import ( ingress_parser "github.com/go-gost/x/config/parsing/ingress" limiter_parser "github.com/go-gost/x/config/parsing/limiter" logger_parser "github.com/go-gost/x/config/parsing/logger" + observer_parser "github.com/go-gost/x/config/parsing/observer" recorder_parser "github.com/go-gost/x/config/parsing/recorder" resolver_parser "github.com/go-gost/x/config/parsing/resolver" router_parser "github.com/go-gost/x/config/parsing/router" @@ -106,6 +107,13 @@ func buildService(cfg *config.Config) (services []service.Service) { } } + for _, observerCfg := range cfg.Observers { + if h := observer_parser.ParseObserver(observerCfg); h != nil { + if err := registry.ObserverRegistry().Register(observerCfg.Name, h); err != nil { + log.Fatal(err) + } + } + } for _, recorderCfg := range cfg.Recorders { if h := recorder_parser.ParseRecorder(recorderCfg); h != nil { if err := registry.RecorderRegistry().Register(recorderCfg.Name, h); err != nil { diff --git a/cmd/gost/program.go b/cmd/gost/program.go index ac2a7e9..c215c19 100644 --- a/cmd/gost/program.go +++ b/cmd/gost/program.go @@ -188,6 +188,7 @@ func (p *program) mergeConfig(cfg1, cfg2 *config.Config) *config.Config { RLimiters: append(cfg1.RLimiters, cfg2.RLimiters...), Loggers: append(cfg1.Loggers, cfg2.Loggers...), Routers: append(cfg1.Routers, cfg2.Routers...), + Observers: append(cfg1.Observers, cfg2.Observers...), TLS: cfg1.TLS, Log: cfg1.Log, API: cfg1.API, diff --git a/go.mod b/go.mod index 3a29a42..05bafcf 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.21 replace github.com/templexxx/cpu v0.0.7 => github.com/templexxx/cpu v0.0.10-0.20211111114238-98168dcec14a require ( - github.com/go-gost/core v0.0.0-20231219132306-6b5c04b5e446 - github.com/go-gost/x v0.0.0-20231227112431-e1ae379048a5 + github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99 + github.com/go-gost/x v0.0.0-20240103125506-c959fc2f7376 github.com/judwhite/go-svc v1.2.1 ) @@ -28,7 +28,7 @@ require ( github.com/gin-gonic/gin v1.9.1 // indirect github.com/go-gost/gosocks4 v0.0.1 // indirect github.com/go-gost/gosocks5 v0.4.0 // indirect - github.com/go-gost/plugin v0.0.0-20231119084331-d49a1cb23b3b // indirect + github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a // indirect github.com/go-gost/relay v0.4.1-0.20230916134211-828f314ddfe7 // indirect github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 // indirect github.com/go-playground/locales v0.14.1 // indirect diff --git a/go.sum b/go.sum index 98ba37c..e94baca 100644 --- a/go.sum +++ b/go.sum @@ -49,20 +49,20 @@ 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-20231219132306-6b5c04b5e446 h1:H7VyfQOOAH7smDQ41O/mMClFv8MyflVk5AO9uIp7qXg= -github.com/go-gost/core v0.0.0-20231219132306-6b5c04b5e446/go.mod h1:ndkgWVYRLwupVaFFWv8ML1Nr8tD3xhHK245PLpUDg4E= +github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99 h1:/0hmilnQBEDlOaRcO+TlwaHH8a5ig6nc2aAsU4FGZcw= +github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99/go.mod h1:ndkgWVYRLwupVaFFWv8ML1Nr8tD3xhHK245PLpUDg4E= 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.0 h1:EIrOEkpJez4gwHrMa33frA+hHXJyevjp47thpMQsJzI= github.com/go-gost/gosocks5 v0.4.0/go.mod h1:1G6I7HP7VFVxveGkoK8mnprnJqSqJjdcASKsdUn4Pp4= -github.com/go-gost/plugin v0.0.0-20231119084331-d49a1cb23b3b h1:ZmnYutflq+KOZK+Px5RDckorDSxTYlkT4aQbjTC8/C4= -github.com/go-gost/plugin v0.0.0-20231119084331-d49a1cb23b3b/go.mod h1:qXr2Zm9Ex2ATqnWuNUzVZqySPMnuIihvblYZt4MlZLw= +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.4.1-0.20230916134211-828f314ddfe7 h1:qAG1OyjvdA5h221CfFSS3J359V3d2E7dJWyP29QoDSI= github.com/go-gost/relay v0.4.1-0.20230916134211-828f314ddfe7/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 h1:xj8gUZGYO3nb5+6Bjw9+tsFkA9sYynrOvDvvC4uDV2I= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451/go.mod h1:/9QfdewqmHdaE362Hv5nDaSWLx3pCmtD870d6GaquXs= -github.com/go-gost/x v0.0.0-20231227112431-e1ae379048a5 h1:wd0kauz1Su3UP7Z3zlf/zR4RZVnVW3Lcsg0mUSyj/tc= -github.com/go-gost/x v0.0.0-20231227112431-e1ae379048a5/go.mod h1:DomeGDRedoAv33nq3R/pB9wSNQBYDcCAq7OZbOuOwMw= +github.com/go-gost/x v0.0.0-20240103125506-c959fc2f7376 h1:ZLaIjEbo/pGxK9Mw4RUTqsi0be9n22YnC7tsb6cHtnE= +github.com/go-gost/x v0.0.0-20240103125506-c959fc2f7376/go.mod h1:aZsf9kureYawzhBhxsl/IOTYgO7Tt3TETQ5xxXmRw5E= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=