From 6df1f49c13aca37afca44f914c4b8f75e1b51790 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Mon, 22 Feb 2016 13:06:30 +0100 Subject: [PATCH] Remove fullLabels method and fix target updating With recent changes to a Target's internal data representation updating by fullLabels() assigns the additional default instance label. This breaks target identity comparison and causes identical targets from service discovery to be constantly swapped. --- retrieval/target.go | 12 ------------ retrieval/targetmanager.go | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/retrieval/target.go b/retrieval/target.go index c0d815704..0ef92bfdb 100644 --- a/retrieval/target.go +++ b/retrieval/target.go @@ -405,18 +405,6 @@ func (t *Target) InstanceIdentifier() string { return t.host() } -func (t *Target) fullLabels() model.LabelSet { - t.RLock() - defer t.RUnlock() - - lset := t.labels.Clone() - - if _, ok := lset[model.InstanceLabel]; !ok { - lset[model.InstanceLabel] = t.labels[model.AddressLabel] - } - return lset -} - // RunScraper implements Target. func (t *Target) RunScraper(sampleAppender storage.SampleAppender) { defer close(t.scraperStopped) diff --git a/retrieval/targetmanager.go b/retrieval/targetmanager.go index 55e022741..6f06438b4 100644 --- a/retrieval/targetmanager.go +++ b/retrieval/targetmanager.go @@ -278,7 +278,7 @@ func (tm *TargetManager) updateTargetGroup(tgroup *config.TargetGroup, cfg *conf // to build up. wg.Add(1) go func(t *Target) { - if err := match.Update(cfg, t.fullLabels(), t.metaLabels); err != nil { + if err := match.Update(cfg, t.labels, t.metaLabels); err != nil { log.Errorf("Error updating target %v: %v", t, err) } wg.Done()