From 9ca47869ed54832228e6891751b5b950217d63e2 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Fri, 15 May 2015 14:54:29 +0200 Subject: [PATCH] Provide full SD configs to discovery constructors. Some SD configs may have many options. To be readable and consistent, make all discovery constructors receive the full config rather than the separate arguments. --- retrieval/discovery/dns.go | 6 +++--- retrieval/discovery/file.go | 9 ++++----- retrieval/discovery/file_test.go | 6 +++++- retrieval/targetmanager.go | 11 ++++------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/retrieval/discovery/dns.go b/retrieval/discovery/dns.go index 017ea476a5..5b4206cb53 100644 --- a/retrieval/discovery/dns.go +++ b/retrieval/discovery/dns.go @@ -70,11 +70,11 @@ type DNSDiscovery struct { } // NewDNSDiscovery returns a new DNSDiscovery which periodically refreshes its targets. -func NewDNSDiscovery(names []string, refreshInterval time.Duration) *DNSDiscovery { +func NewDNSDiscovery(conf *config.DNSSDConfig) *DNSDiscovery { return &DNSDiscovery{ - names: names, + names: conf.Names, done: make(chan struct{}), - ticker: time.NewTicker(refreshInterval), + ticker: time.NewTicker(time.Duration(conf.RefreshInterval)), } } diff --git a/retrieval/discovery/file.go b/retrieval/discovery/file.go index cda4cbc1a6..7e16b5f66a 100644 --- a/retrieval/discovery/file.go +++ b/retrieval/discovery/file.go @@ -44,13 +44,12 @@ type FileDiscovery struct { } // NewFileDiscovery returns a new file discovery for the given paths. -func NewFileDiscovery(paths []string, interval time.Duration) *FileDiscovery { - fd := &FileDiscovery{ - paths: paths, - interval: interval, +func NewFileDiscovery(conf *config.FileSDConfig) *FileDiscovery { + return &FileDiscovery{ + paths: conf.Names, + interval: time.Duration(conf.RefreshInterval), done: make(chan struct{}), } - return fd } // Sources implements the TargetProvider interface. diff --git a/retrieval/discovery/file_test.go b/retrieval/discovery/file_test.go index ca020dc983..5b9f90fcc2 100644 --- a/retrieval/discovery/file_test.go +++ b/retrieval/discovery/file_test.go @@ -20,7 +20,11 @@ func TestFileSD(t *testing.T) { func testFileSD(t *testing.T, ext string) { // As interval refreshing is more of a fallback, we only want to test // whether file watches work as expected. - fsd := NewFileDiscovery([]string{"fixtures/_*" + ext}, 1*time.Hour) + var conf config.FileSDConfig + conf.Names = []string{"fixtures/_*" + ext} + conf.RefreshInterval = config.Duration(1 * time.Hour) + + fsd := NewFileDiscovery(&conf) ch := make(chan *config.TargetGroup) go fsd.Run(ch) diff --git a/retrieval/targetmanager.go b/retrieval/targetmanager.go index 8c89e10896..cacc2126eb 100644 --- a/retrieval/targetmanager.go +++ b/retrieval/targetmanager.go @@ -17,7 +17,6 @@ import ( "fmt" "strings" "sync" - "time" "github.com/golang/glog" @@ -356,13 +355,11 @@ func (tm *TargetManager) targetsFromGroup(tg *config.TargetGroup, cfg *config.Sc func ProvidersFromConfig(cfg *config.ScrapeConfig) []TargetProvider { var providers []TargetProvider - for _, dnscfg := range cfg.DNSSDConfigs { - dnsSD := discovery.NewDNSDiscovery(dnscfg.Names, time.Duration(dnscfg.RefreshInterval)) - providers = append(providers, dnsSD) + for _, c := range cfg.DNSSDConfigs { + providers = append(providers, discovery.NewDNSDiscovery(c)) } - for _, filecfg := range cfg.FileSDConfigs { - fileSD := discovery.NewFileDiscovery(filecfg.Names, time.Duration(filecfg.RefreshInterval)) - providers = append(providers, fileSD) + for _, c := range cfg.FileSDConfigs { + providers = append(providers, discovery.NewFileDiscovery(c)) } if len(cfg.TargetGroups) > 0 { providers = append(providers, NewStaticProvider(cfg.TargetGroups))