add observer

This commit is contained in:
ginuerzh
2024-01-03 20:56:24 +08:00
parent 9e4bca84f1
commit f68bfdb149
4 changed files with 18 additions and 9 deletions

View File

@ -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 {

View File

@ -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,