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))