-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
(I intend to implement this, and I have a functioning patch for Linux already, but I'd like to discuss exactly how this should look before filing the PR)
Goal:
Write alerts that detect, for example, that a node's uplink network interface is nearing saturation.
Challenge:
Modern Linux boxes, especially with containers, have lots of network interfaces, and you can't count on the uplink being called eth0 (see systemd.net-naming-scheme).
It would be useful for the node exporter to indicate which network interface has the default route. This is a pretty reasonable proxy for the "uplink" interface.
Proposal:
The simplest solution is to add an additional label (per family) to the node_network_info metric, so it looks something like
node_network_info{address="01:01:01:01:01:01",broadcast="ff:ff:ff:ff:ff:ff",default_route_v4="1",default_route_v6="1",device="eth0",duplex="full",ifalias="",operstate="up"}
Alternatively, we could allow for more flexibility. I could see wanting to expose which interface has a route to a specific IP address. For example, I could see wanting know which interface is the SAN interface. So, I'd configure the node-exporter with the destination 1.2.3.4 as "san" and get the following metrics:
node_network_has_route{device="enp1s0",route="default"} 1
node_network_has_route{device="enp1s0",route="san"} 0
node_network_has_route{device="enp6s1",route="default"} 0
node_network_has_route{device="enp6s1",route="san"} 1