fix(netdev): respect deviceFilter for node_network_address_info metric

Signed-off-by: RockWolf <git@rockwolf.eu>
This commit is contained in:
RockWolf 2025-05-29 13:35:47 +02:00
parent 7e801c90c3
commit 456f4e039f
No known key found for this signature in database

View file

@ -148,7 +148,7 @@ func (c *netDevCollector) Update(ch chan<- prometheus.Metric) error {
"info"), "node network address by device",
[]string{"device", "address", "netmask", "scope"}, nil)
for _, addr := range getAddrsInfo(interfaces) {
for _, addr := range getAddrsInfo(interfaces, &c.deviceFilter, c.logger) {
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, 1,
addr.device, addr.addr, addr.netmask, addr.scope)
}
@ -180,10 +180,14 @@ func scope(ip net.IP) string {
}
// getAddrsInfo returns interface name, address, scope and netmask for all interfaces.
func getAddrsInfo(interfaces []net.Interface) []addrInfo {
func getAddrsInfo(interfaces []net.Interface, filter *deviceFilter, logger *slog.Logger) []addrInfo {
var res []addrInfo
for _, ifs := range interfaces {
if filter.ignored(ifs.Name) {
logger.Debug("Ignoring device", "device", ifs.Name)
continue
}
addrs, _ := ifs.Addrs()
for _, addr := range addrs {
ip, ipNet, err := net.ParseCIDR(addr.String())