diff --git a/CHANGELOG.md b/CHANGELOG.md index bd48775e19275..2ff7b66890f46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,6 +77,7 @@ * [10677](https://github.com/grafana/loki/pull/10677) **chaudum** Remove deprecated `stream_lag_labels` setting from both the `options` and `client` configuration sections. * [10689](https://github.com/grafana/loki/pull/10689) **dylanguedes**: Ingester: Make jitter to be 20% of flush check period instead of 1%. +* [11420](https://github.com/grafana/loki/pull/11420) **zry98**: Show a clearer reason in "disable watchConfig" log message when server is disabled. ##### Fixes diff --git a/clients/pkg/promtail/promtail.go b/clients/pkg/promtail/promtail.go index 1586e2d971153..1ef3368a697e5 100644 --- a/clients/pkg/promtail/promtail.go +++ b/clients/pkg/promtail/promtail.go @@ -255,25 +255,29 @@ func (p *Promtail) watchConfig() { level.Warn(p.logger).Log("msg", "disable watchConfig", "reason", "Promtail newConfig func is Empty") return } - promtailServer, ok := p.server.(*server.PromtailServer) - if !ok { - level.Warn(p.logger).Log("msg", "disable watchConfig", "reason", "promtailServer cast fail") + switch srv := p.server.(type) { + case *server.NoopServer: + level.Warn(p.logger).Log("msg", "disable watchConfig", "reason", "Promtail server is disabled") return - } - level.Warn(p.logger).Log("msg", "enable watchConfig") - hup := make(chan os.Signal, 1) - signal.Notify(hup, syscall.SIGHUP) - for { - select { - case <-hup: - _ = p.reload() - case rc := <-promtailServer.Reload(): - if err := p.reload(); err != nil { - rc <- err - } else { - rc <- nil + case *server.PromtailServer: + level.Warn(p.logger).Log("msg", "enable watchConfig") + hup := make(chan os.Signal, 1) + signal.Notify(hup, syscall.SIGHUP) + for { + select { + case <-hup: + _ = p.reload() + case rc := <-srv.Reload(): + if err := p.reload(); err != nil { + rc <- err + } else { + rc <- nil + } } } + default: + level.Warn(p.logger).Log("msg", "disable watchConfig", "reason", "Unknown Promtail server type") + return } } diff --git a/clients/pkg/promtail/server/server.go b/clients/pkg/promtail/server/server.go index 4eb61361d10a0..1b47247630e05 100644 --- a/clients/pkg/promtail/server/server.go +++ b/clients/pkg/promtail/server/server.go @@ -321,25 +321,25 @@ func computeExternalURL(u string, port int) (*url.URL, error) { return eu, nil } -type noopServer struct { +type NoopServer struct { log log.Logger sigs chan os.Signal } -func newNoopServer(log log.Logger) *noopServer { - return &noopServer{ +func newNoopServer(log log.Logger) *NoopServer { + return &NoopServer{ log: log, sigs: make(chan os.Signal, 1), } } -func (s *noopServer) Run() error { +func (s *NoopServer) Run() error { signal.Notify(s.sigs, syscall.SIGINT, syscall.SIGTERM) sig := <-s.sigs level.Info(s.log).Log("msg", "received shutdown signal", "sig", sig) return nil } -func (s *noopServer) Shutdown() { +func (s *NoopServer) Shutdown() { s.sigs <- syscall.SIGTERM }