code: func NewDiscovery(l log.Logger, mech string, interval time.Duration, refreshf func(ctx context.Context) ([]*targetgroup.Group, error)) *Discovery {
  	if l == nil {
  		l = log.NewNopLogger()
  	}
  	return &Discovery{
  		logger:   l,
  		interval: interval,
  		refreshf: refreshf,
  		failures: failuresCount.WithLabelValues(mech),
  		duration: duration.WithLabelValues(mech),
  	}
  }
docs: // NewDiscovery returns a Discoverer function that calls a refresh() function at every interval.