Separate config structs

pull/2813/head
Marc Tuduri 2023-08-30 12:48:27 +02:00
parent 9c6ff78e74
commit fe42dec972
No known key found for this signature in database
GPG Key ID: 761973D5AE312AF4
3 changed files with 13 additions and 10 deletions

View File

@ -32,11 +32,19 @@ type arpCollector struct {
} }
func init() { func init() {
registerCollector("arp", defaultEnabled, NewARPCollector) registerCollector("arp", defaultEnabled, func(config any, logger log.Logger) (Collector, error) {
arpConfig := config.(ArpConfig)
return NewARPCollector(arpConfig, logger)
})
}
type ArpConfig struct {
DeviceInclude *string
DeviceExclude *string
} }
// NewARPCollector returns a new Collector exposing ARP stats. // NewARPCollector returns a new Collector exposing ARP stats.
func NewARPCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) { func NewARPCollector(config ArpConfig, logger log.Logger) (Collector, error) {
fs, err := procfs.NewFS(*procPath) fs, err := procfs.NewFS(*procPath)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to open procfs: %w", err) return nil, fmt.Errorf("failed to open procfs: %w", err)
@ -44,7 +52,7 @@ func NewARPCollector(config NodeCollectorConfig, logger log.Logger) (Collector,
return &arpCollector{ return &arpCollector{
fs: fs, fs: fs,
deviceFilter: newDeviceFilter(*config.Arp.DeviceExclude, *config.Arp.DeviceInclude), deviceFilter: newDeviceFilter(*config.DeviceExclude, *config.DeviceInclude),
entries: prometheus.NewDesc( entries: prometheus.NewDesc(
prometheus.BuildFQName(namespace, "arp", "entries"), prometheus.BuildFQName(namespace, "arp", "entries"),
"ARP entries by device", "ARP entries by device",

View File

@ -50,14 +50,14 @@ const (
) )
var ( var (
factories = make(map[string]func(config NodeCollectorConfig, logger log.Logger) (Collector, error)) factories = make(map[string]func(config any, logger log.Logger) (Collector, error))
initiatedCollectorsMtx = sync.Mutex{} initiatedCollectorsMtx = sync.Mutex{}
initiatedCollectors = make(map[string]Collector) initiatedCollectors = make(map[string]Collector)
collectorState = make(map[string]*bool) collectorState = make(map[string]*bool)
forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
) )
func registerCollector(collector string, isDefaultEnabled bool, factory func(config NodeCollectorConfig, logger log.Logger) (Collector, error)) { func registerCollector(collector string, isDefaultEnabled bool, factory func(config any, logger log.Logger) (Collector, error)) {
var helpDefaultState string var helpDefaultState string
if isDefaultEnabled { if isDefaultEnabled {
helpDefaultState = "enabled" helpDefaultState = "enabled"

View File

@ -19,8 +19,3 @@ package collector
type NodeCollectorConfig struct { type NodeCollectorConfig struct {
Arp ArpConfig Arp ArpConfig
} }
type ArpConfig struct {
DeviceInclude *string
DeviceExclude *string
}