From 3b66d94e0f3e52d8eb24150f7ca4de367ec07d2a Mon Sep 17 00:00:00 2001 From: Roger Steneteg <36709673+rsteneteg@users.noreply.github.com> Date: Wed, 3 Nov 2021 13:26:35 -0500 Subject: [PATCH] resolve issue with promtail not scraping target if only path changed in a simpler way that dont need mutex to sync threads (#4599) Signed-off-by: Roger Steneteg --- clients/pkg/promtail/targets/file/filetarget.go | 8 -------- .../pkg/promtail/targets/file/filetargetmanager.go | 14 +++++--------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/clients/pkg/promtail/targets/file/filetarget.go b/clients/pkg/promtail/targets/file/filetarget.go index 0dff7f5c91..86254852cc 100644 --- a/clients/pkg/promtail/targets/file/filetarget.go +++ b/clients/pkg/promtail/targets/file/filetarget.go @@ -118,14 +118,6 @@ func (t *FileTarget) Stop() { t.handler.Stop() } -// UpdatePath updates the filetarget path -// returns true if the path was changed -func (t *FileTarget) UpdatePath(path string) bool { - curPath := t.path - t.path = path - return curPath != path -} - // Type implements a Target func (t *FileTarget) Type() target.TargetType { return target.FileTargetType diff --git a/clients/pkg/promtail/targets/file/filetargetmanager.go b/clients/pkg/promtail/targets/file/filetargetmanager.go index d9b0a676e4..2618933cb8 100644 --- a/clients/pkg/promtail/targets/file/filetargetmanager.go +++ b/clients/pkg/promtail/targets/file/filetargetmanager.go @@ -243,16 +243,12 @@ func (s *targetSyncer) sync(groups []*targetgroup.Group) { } } - key := labels.String() + key := fmt.Sprintf("%s:%s", path, labels.String()) targets[key] = struct{}{} - if tgt, ok := s.targets[key]; ok { - if tgt.UpdatePath(string(path)) { - level.Debug(s.log).Log("msg", "updating target, path changed", "labels", labels.String()) - } else { - dropped = append(dropped, target.NewDroppedTarget("ignoring target, already exists", discoveredLabels)) - level.Debug(s.log).Log("msg", "ignoring target, already exists", "labels", labels.String()) - s.metrics.failedTargets.WithLabelValues("exists").Inc() - } + if _, ok := s.targets[key]; ok { + dropped = append(dropped, target.NewDroppedTarget("ignoring target, already exists", discoveredLabels)) + level.Debug(s.log).Log("msg", "ignoring target, already exists", "labels", labels.String()) + s.metrics.failedTargets.WithLabelValues("exists").Inc() continue }