Remove caching of collectors.

This commit is contained in:
matt durham 2023-10-03 14:59:48 -04:00
parent d4879a5e87
commit 69c6eb312f
No known key found for this signature in database
GPG key ID: A62E920AE398897B

View file

@ -50,13 +50,11 @@ const (
) )
var ( var (
factories = make(map[string]func(config *NodeCollectorConfig, logger log.Logger) (Collector, error)) factories = make(map[string]func(config *NodeCollectorConfig, logger log.Logger) (Collector, error))
initiatedCollectorsMtx = sync.Mutex{} collectorStateGlobal = make(map[string]bool)
initiatedCollectors = make(map[string]Collector) collectorFlagState = make(map[string]*bool)
collectorStateGlobal = make(map[string]bool) availableCollectors = make([]string, 0)
collectorFlagState = make(map[string]*bool) forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
availableCollectors = make([]string, 0)
forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
) )
func GetDefaults() map[string]bool { func GetDefaults() map[string]bool {
@ -141,22 +139,16 @@ func NewNodeCollector(config *NodeCollectorConfig, enabledCollectors map[string]
f[filter] = true f[filter] = true
} }
collectors := make(map[string]Collector) collectors := make(map[string]Collector)
initiatedCollectorsMtx.Lock()
defer initiatedCollectorsMtx.Unlock()
for key, enabled := range enabledCollectors { for key, enabled := range enabledCollectors {
if !enabled || (len(f) > 0 && !f[key]) { if !enabled || (len(f) > 0 && !f[key]) {
continue continue
} }
if collector, ok := initiatedCollectors[key]; ok { collector, err := factories[key](config, log.With(logger, "collector", key))
collectors[key] = collector if err != nil {
} else { return nil, err
collector, err := factories[key](config, log.With(logger, "collector", key))
if err != nil {
return nil, err
}
collectors[key] = collector
initiatedCollectors[key] = collector
} }
collectors[key] = collector
} }
return &NodeCollector{Collectors: collectors, logger: logger}, nil return &NodeCollector{Collectors: collectors, logger: logger}, nil
} }