Merge branch 'master' into dev
This commit is contained in:
commit
e071385d44
@ -14,6 +14,7 @@ import (
|
|||||||
ingress_parser "github.com/go-gost/x/config/parsing/ingress"
|
ingress_parser "github.com/go-gost/x/config/parsing/ingress"
|
||||||
limiter_parser "github.com/go-gost/x/config/parsing/limiter"
|
limiter_parser "github.com/go-gost/x/config/parsing/limiter"
|
||||||
logger_parser "github.com/go-gost/x/config/parsing/logger"
|
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"
|
recorder_parser "github.com/go-gost/x/config/parsing/recorder"
|
||||||
resolver_parser "github.com/go-gost/x/config/parsing/resolver"
|
resolver_parser "github.com/go-gost/x/config/parsing/resolver"
|
||||||
router_parser "github.com/go-gost/x/config/parsing/router"
|
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 {
|
for _, recorderCfg := range cfg.Recorders {
|
||||||
if h := recorder_parser.ParseRecorder(recorderCfg); h != nil {
|
if h := recorder_parser.ParseRecorder(recorderCfg); h != nil {
|
||||||
if err := registry.RecorderRegistry().Register(recorderCfg.Name, h); err != nil {
|
if err := registry.RecorderRegistry().Register(recorderCfg.Name, h); err != nil {
|
||||||
|
@ -9,9 +9,11 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-gost/core/logger"
|
"github.com/go-gost/core/logger"
|
||||||
|
mdutil "github.com/go-gost/core/metadata/util"
|
||||||
"github.com/go-gost/x/config"
|
"github.com/go-gost/x/config"
|
||||||
"github.com/go-gost/x/config/parsing"
|
"github.com/go-gost/x/config/parsing"
|
||||||
logger_parser "github.com/go-gost/x/config/parsing/logger"
|
logger_parser "github.com/go-gost/x/config/parsing/logger"
|
||||||
|
xmd "github.com/go-gost/x/metadata"
|
||||||
xmetrics "github.com/go-gost/x/metrics"
|
xmetrics "github.com/go-gost/x/metrics"
|
||||||
"github.com/go-gost/x/registry"
|
"github.com/go-gost/x/registry"
|
||||||
"github.com/judwhite/go-svc"
|
"github.com/judwhite/go-svc"
|
||||||
@ -73,6 +75,26 @@ func (p *program) Init(env svc.Environment) error {
|
|||||||
cfg.API = &config.APIConfig{
|
cfg.API = &config.APIConfig{
|
||||||
Addr: apiAddr,
|
Addr: apiAddr,
|
||||||
}
|
}
|
||||||
|
if url, _ := normCmd(apiAddr); url != nil {
|
||||||
|
cfg.API.Addr = url.Host
|
||||||
|
if url.User != nil {
|
||||||
|
username := url.User.Username()
|
||||||
|
password, _ := url.User.Password()
|
||||||
|
cfg.API.Auth = &config.AuthConfig{
|
||||||
|
Username: username,
|
||||||
|
Password: password,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m := map[string]any{}
|
||||||
|
for k, v := range url.Query() {
|
||||||
|
if len(v) > 0 {
|
||||||
|
m[k] = v[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
md := xmd.NewMetadata(m)
|
||||||
|
cfg.API.PathPrefix = mdutil.GetString(md, "pathPrefix")
|
||||||
|
cfg.API.AccessLog = mdutil.GetBool(md, "accesslog")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if debug {
|
if debug {
|
||||||
if cfg.Log == nil {
|
if cfg.Log == nil {
|
||||||
@ -84,6 +106,25 @@ func (p *program) Init(env svc.Environment) error {
|
|||||||
cfg.Metrics = &config.MetricsConfig{
|
cfg.Metrics = &config.MetricsConfig{
|
||||||
Addr: metricsAddr,
|
Addr: metricsAddr,
|
||||||
}
|
}
|
||||||
|
if url, _ := normCmd(metricsAddr); url != nil {
|
||||||
|
cfg.Metrics.Addr = url.Host
|
||||||
|
if url.User != nil {
|
||||||
|
username := url.User.Username()
|
||||||
|
password, _ := url.User.Password()
|
||||||
|
cfg.Metrics.Auth = &config.AuthConfig{
|
||||||
|
Username: username,
|
||||||
|
Password: password,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m := map[string]any{}
|
||||||
|
for k, v := range url.Query() {
|
||||||
|
if len(v) > 0 {
|
||||||
|
m[k] = v[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
md := xmd.NewMetadata(m)
|
||||||
|
cfg.Metrics.Path = mdutil.GetString(md, "path")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logCfg := cfg.Log
|
logCfg := cfg.Log
|
||||||
@ -197,6 +238,7 @@ func (p *program) mergeConfig(cfg1, cfg2 *config.Config) *config.Config {
|
|||||||
RLimiters: append(cfg1.RLimiters, cfg2.RLimiters...),
|
RLimiters: append(cfg1.RLimiters, cfg2.RLimiters...),
|
||||||
Loggers: append(cfg1.Loggers, cfg2.Loggers...),
|
Loggers: append(cfg1.Loggers, cfg2.Loggers...),
|
||||||
Routers: append(cfg1.Routers, cfg2.Routers...),
|
Routers: append(cfg1.Routers, cfg2.Routers...),
|
||||||
|
Observers: append(cfg1.Observers, cfg2.Observers...),
|
||||||
TLS: cfg1.TLS,
|
TLS: cfg1.TLS,
|
||||||
Log: cfg1.Log,
|
Log: cfg1.Log,
|
||||||
API: cfg1.API,
|
API: cfg1.API,
|
||||||
|
6
go.mod
6
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
|
replace github.com/templexxx/cpu v0.0.7 => github.com/templexxx/cpu v0.0.10-0.20211111114238-98168dcec14a
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/go-gost/core v0.0.0-20231219132306-6b5c04b5e446
|
github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99
|
||||||
github.com/go-gost/x v0.0.0-20231227112431-e1ae379048a5
|
github.com/go-gost/x v0.0.0-20240112154622-01168e98467c
|
||||||
github.com/judwhite/go-svc v1.2.1
|
github.com/judwhite/go-svc v1.2.1
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ require (
|
|||||||
github.com/gin-gonic/gin v1.9.1 // indirect
|
github.com/gin-gonic/gin v1.9.1 // indirect
|
||||||
github.com/go-gost/gosocks4 v0.0.1 // indirect
|
github.com/go-gost/gosocks4 v0.0.1 // indirect
|
||||||
github.com/go-gost/gosocks5 v0.4.0 // 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/relay v0.4.1-0.20230916134211-828f314ddfe7 // indirect
|
||||||
github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 // indirect
|
github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 // indirect
|
||||||
github.com/go-playground/locales v0.14.1 // indirect
|
github.com/go-playground/locales v0.14.1 // indirect
|
||||||
|
12
go.sum
12
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-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 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
|
||||||
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
|
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-20240103125300-5a427b4eaf99 h1:/0hmilnQBEDlOaRcO+TlwaHH8a5ig6nc2aAsU4FGZcw=
|
||||||
github.com/go-gost/core v0.0.0-20231219132306-6b5c04b5e446/go.mod h1:ndkgWVYRLwupVaFFWv8ML1Nr8tD3xhHK245PLpUDg4E=
|
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 h1:+k1sec8HlELuQV7rWftIkmy8UijzUt2I6t+iMPlGB2s=
|
||||||
github.com/go-gost/gosocks4 v0.0.1/go.mod h1:3B6L47HbU/qugDg4JnoFPHgJXE43Inz8Bah1QaN9qCc=
|
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 h1:EIrOEkpJez4gwHrMa33frA+hHXJyevjp47thpMQsJzI=
|
||||||
github.com/go-gost/gosocks5 v0.4.0/go.mod h1:1G6I7HP7VFVxveGkoK8mnprnJqSqJjdcASKsdUn4Pp4=
|
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-20240103125338-9c84e29cb81a h1:ME7P1Brcg4C640DSPqlvQr7JuvvQfJ8QpmS3yCFlK3A=
|
||||||
github.com/go-gost/plugin v0.0.0-20231119084331-d49a1cb23b3b/go.mod h1:qXr2Zm9Ex2ATqnWuNUzVZqySPMnuIihvblYZt4MlZLw=
|
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 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/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 h1:xj8gUZGYO3nb5+6Bjw9+tsFkA9sYynrOvDvvC4uDV2I=
|
||||||
github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451/go.mod h1:/9QfdewqmHdaE362Hv5nDaSWLx3pCmtD870d6GaquXs=
|
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-20240112154622-01168e98467c h1:0Qb2OwSvi80VlvlujOLbYsZ29P54HpmF1chSuMsY1K4=
|
||||||
github.com/go-gost/x v0.0.0-20231227112431-e1ae379048a5/go.mod h1:DomeGDRedoAv33nq3R/pB9wSNQBYDcCAq7OZbOuOwMw=
|
github.com/go-gost/x v0.0.0-20240112154622-01168e98467c/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 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
|
||||||
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
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=
|
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
|
||||||
|
Loading…
Reference in New Issue
Block a user