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() {
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.
func NewARPCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewARPCollector(config ArpConfig, logger log.Logger) (Collector, error) {
fs, err := procfs.NewFS(*procPath)
if err != nil {
return nil, fmt.Errorf("failed to open procfs: %w", err)
@ -44,7 +52,7 @@ func NewARPCollector(config NodeCollectorConfig, logger log.Logger) (Collector,
return &arpCollector{
fs: fs,
deviceFilter: newDeviceFilter(*config.Arp.DeviceExclude, *config.Arp.DeviceInclude),
deviceFilter: newDeviceFilter(*config.DeviceExclude, *config.DeviceInclude),
entries: prometheus.NewDesc(
prometheus.BuildFQName(namespace, "arp", "entries"),
"ARP entries by device",

View File

@ -50,14 +50,14 @@ const (
)
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{}
initiatedCollectors = make(map[string]Collector)
collectorState = make(map[string]*bool)
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
if isDefaultEnabled {
helpDefaultState = "enabled"

View File

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