code: func NewNodeCollector(filters ...string) (*NodeCollector, error) {
  	f := make(map[string]bool)
  	for _, filter := range filters {
  		enabled, exist := collectorState[filter]
  		if !exist {
  			return nil, fmt.Errorf("missing collector: %s", filter)
  		}
  		if !*enabled {
  			return nil, fmt.Errorf("disabled collector: %s", filter)
  		}
  		f[filter] = true
  	}
  	collectors := make(map[string]Collector)
  	for key, enabled := range collectorState {
  		if *enabled {
  			collector, err := factories[key]()
  			if err != nil {
  				return nil, err
  			}
  			if len(f) == 0 || f[key] {
  				collectors[key] = collector
  			}
  		}
  	}
  	return &NodeCollector{Collectors: collectors}, nil
  }
docs: // NewNodeCollector creates a new NodeCollector.