MCPcopy
hub / github.com/prometheus/node_exporter / getAddrsInfo

Function getAddrsInfo

collector/netdev_common.go:181–207  ·  view source on GitHub ↗

getAddrsInfo returns interface name, address, scope and netmask for all interfaces.

(interfaces []net.Interface, filter *deviceFilter, logger *slog.Logger)

Source from the content-addressed store, hash-verified

179
180// getAddrsInfo returns interface name, address, scope and netmask for all interfaces.
181func getAddrsInfo(interfaces []net.Interface, filter *deviceFilter, logger *slog.Logger) []addrInfo {
182 var res []addrInfo
183
184 for _, ifs := range interfaces {
185 if filter.ignored(ifs.Name) {
186 logger.Debug("Ignoring device", "device", ifs.Name)
187 continue
188 }
189 addrs, _ := ifs.Addrs()
190 for _, addr := range addrs {
191 ip, ipNet, err := net.ParseCIDR(addr.String())
192 if err != nil {
193 continue
194 }
195 size, _ := ipNet.Mask.Size()
196
197 res = append(res, addrInfo{
198 device: ifs.Name,
199 addr: ip.String(),
200 scope: scope(ip),
201 netmask: strconv.Itoa(size),
202 })
203 }
204 }
205
206 return res
207}
208
209// https://github.com/torvalds/linux/blob/master/net/core/net-procfs.c#L75-L97
210func legacy(metrics map[string]uint64) {

Callers 1

UpdateMethod · 0.85

Calls 3

scopeFunction · 0.85
ignoredMethod · 0.80
StringMethod · 0.80

Tested by

no test coverage detected