From b628475871656fc75c946f8de0530acf446b2773 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Sun, 21 Jun 2026 20:35:19 +0800 Subject: [PATCH] fix: enable metrics before loading services Move xmetrics.Enable(true) from run() to Start(), before loader.Load(), so that listener wrappers can observe the enabled state at Init time rather than after wrapper decisions have already been made. --- cmd/gost/program.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/gost/program.go b/cmd/gost/program.go index f404b9e..a6a9fb4 100644 --- a/cmd/gost/program.go +++ b/cmd/gost/program.go @@ -62,6 +62,12 @@ func (p *program) Start() error { config.Set(cfg) + // Enable metrics before loading services so that listener wrappers + // can observe the enabled state at Init time. + if cfg.Metrics != nil && cfg.Metrics.Addr != "" { + xmetrics.Enable(true) + } + if err := loader.Load(cfg); err != nil { return err } @@ -121,8 +127,6 @@ func (p *program) run(cfg *config.Config) error { p.srvMetrics = s - xmetrics.Enable(true) - go func() { defer s.Close()