code: func NewManager(ctx context.Context, logger log.Logger, options ...func(*Manager)) *Manager {
  	if logger == nil {
  		logger = log.NewNopLogger()
  	}
  	mgr := &Manager{
  		logger:         logger,
  		syncCh:         make(chan map[string][]*targetgroup.Group),
  		targets:        make(map[poolKey]map[string]*targetgroup.Group),
  		discoverCancel: []context.CancelFunc{},
  		ctx:            ctx,
  		updatert:       5 * time.Second,
  		triggerSend:    make(chan struct{}, 1),
  	}
  	for _, option := range options {
  		option(mgr)
  	}
  	return mgr
  }
docs: // NewManager is the Discovery Manager constructor.