49 lines
1.5 KiB
Plaintext
49 lines
1.5 KiB
Plaintext
const root = "/sys/class/net/";
|
|
const devices = fs.lsdir(root);
|
|
|
|
if (length(devices) < 1)
|
|
return false;
|
|
|
|
const m_info = gauge("node_network_info");
|
|
const m_speed = gauge("node_network_speed_bytes");
|
|
const metrics = {
|
|
addr_assign_type: gauge("node_network_address_assign_type"),
|
|
carrier: gauge("node_network_carrier"),
|
|
carrier_changes: counter("node_network_carrier_changes_total"),
|
|
carrier_down_count: counter("node_network_carrier_down_changes_total"),
|
|
carrier_up_count: counter("node_network_carrier_up_changes_total"),
|
|
dev_id: gauge("node_network_device_id"),
|
|
dormant: gauge("node_network_dormant"),
|
|
flags: gauge("node_network_flags"),
|
|
ifindex: gauge("node_network_iface_id"),
|
|
iflink: gauge("node_network_iface_link"),
|
|
link_mode: gauge("node_network_iface_link_mode"),
|
|
mtu: gauge("node_network_mtu_bytes"),
|
|
name_assign_type: gauge("node_network_name_assign_type"),
|
|
netdev_group: gauge("node_network_net_dev_group"),
|
|
type: gauge("node_network_protocol_type"),
|
|
tx_queue_len: gauge("node_network_transmit_queue_length"),
|
|
};
|
|
|
|
for (let device in devices) {
|
|
const devroot = root + device + "/";
|
|
|
|
m_info({
|
|
device,
|
|
address: oneline(devroot + "address"),
|
|
broadcast: oneline(devroot + "broadcast"),
|
|
duplex: oneline(devroot + "duplex"),
|
|
operstate: oneline(devroot + "operstate"),
|
|
ifalias: oneline(devroot + "ifalias"),
|
|
}, 1);
|
|
|
|
for (let m in metrics) {
|
|
let line = oneline(devroot + m);
|
|
metrics[m]({ device }, line);
|
|
}
|
|
|
|
const speed = int(oneline(devroot + "speed"));
|
|
if (speed > 0)
|
|
m_speed({ device }, speed * 1000 * 1000 / 8);
|
|
}
|