From 2060a0a15b93fd2cb7e44d03edb4f0e0a6a0529f Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Sun, 28 Feb 2016 20:03:44 +0100 Subject: [PATCH] Turn target group members into plain lists. As the scrape pool deduplicates targets now, it is no longer necessary to store a hash map for members of each group. --- retrieval/targetmanager.go | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/retrieval/targetmanager.go b/retrieval/targetmanager.go index 5e590e44a..6daa708fc 100644 --- a/retrieval/targetmanager.go +++ b/retrieval/targetmanager.go @@ -176,7 +176,7 @@ type targetSet struct { mtx sync.RWMutex // Sets of targets by a source string that is unique across target providers. - tgroups map[string]map[uint64]*Target + tgroups map[string][]*Target providers map[string]TargetProvider scrapePool *scrapePool @@ -189,7 +189,7 @@ type targetSet struct { func newTargetSet(cfg *config.ScrapeConfig, app storage.SampleAppender) *targetSet { ts := &targetSet{ - tgroups: map[string]map[uint64]*Target{}, + tgroups: map[string][]*Target{}, scrapePool: newScrapePool(cfg, app), syncCh: make(chan struct{}, 1), config: cfg, @@ -247,13 +247,11 @@ Loop: } func (ts *targetSet) sync() { - targets := []*Target{} - for _, tgroup := range ts.tgroups { - for _, t := range tgroup { - targets = append(targets, t) - } + var all []*Target + for _, targets := range ts.tgroups { + all = append(all, targets...) } - ts.scrapePool.sync(targets) + ts.scrapePool.sync(all) } func (ts *targetSet) runProviders(ctx context.Context, providers map[string]TargetProvider) { @@ -394,8 +392,8 @@ func providersFromConfig(cfg *config.ScrapeConfig) map[string]TargetProvider { } // targetsFromGroup builds targets based on the given TargetGroup and config. -func targetsFromGroup(tg *config.TargetGroup, cfg *config.ScrapeConfig) (map[uint64]*Target, error) { - targets := make(map[uint64]*Target, len(tg.Targets)) +func targetsFromGroup(tg *config.TargetGroup, cfg *config.ScrapeConfig) ([]*Target, error) { + targets := make([]*Target, 0, len(tg.Targets)) for i, labels := range tg.Targets { for k, v := range cfg.Params { @@ -464,8 +462,7 @@ func targetsFromGroup(tg *config.TargetGroup, cfg *config.ScrapeConfig) (map[uin labels[model.InstanceLabel] = labels[model.AddressLabel] } - tr := NewTarget(labels, preRelabelLabels, cfg.Params) - targets[tr.hash()] = tr + targets = append(targets, NewTarget(labels, preRelabelLabels, cfg.Params)) } return targets, nil