Separate config structs
parent
9c6ff78e74
commit
fe42dec972
|
@ -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",
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -19,8 +19,3 @@ package collector
|
||||||
type NodeCollectorConfig struct {
|
type NodeCollectorConfig struct {
|
||||||
Arp ArpConfig
|
Arp ArpConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type ArpConfig struct {
|
|
||||||
DeviceInclude *string
|
|
||||||
DeviceExclude *string
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue