mirror of
				https://github.com/prometheus/node_exporter.git
				synced 2025-08-20 18:33:52 -07:00 
			
		
		
		
	fix(netdev): respect deviceFilter for node_network_address_info metric
Signed-off-by: RockWolf <git@rockwolf.eu>
This commit is contained in:
		
							parent
							
								
									7e801c90c3
								
							
						
					
					
						commit
						456f4e039f
					
				| 
						 | 
					@ -148,7 +148,7 @@ func (c *netDevCollector) Update(ch chan<- prometheus.Metric) error {
 | 
				
			||||||
			"info"), "node network address by device",
 | 
								"info"), "node network address by device",
 | 
				
			||||||
			[]string{"device", "address", "netmask", "scope"}, nil)
 | 
								[]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,
 | 
								ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, 1,
 | 
				
			||||||
				addr.device, addr.addr, addr.netmask, addr.scope)
 | 
									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.
 | 
					// 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
 | 
						var res []addrInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, ifs := range interfaces {
 | 
						for _, ifs := range interfaces {
 | 
				
			||||||
 | 
							if filter.ignored(ifs.Name) {
 | 
				
			||||||
 | 
								logger.Debug("Ignoring device", "device", ifs.Name)
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		addrs, _ := ifs.Addrs()
 | 
							addrs, _ := ifs.Addrs()
 | 
				
			||||||
		for _, addr := range addrs {
 | 
							for _, addr := range addrs {
 | 
				
			||||||
			ip, ipNet, err := net.ParseCIDR(addr.String())
 | 
								ip, ipNet, err := net.ParseCIDR(addr.String())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue