packages/utils/prometheus-node-exporter-ucode/files/base/netdev.uc

41 lines
1.1 KiB
Plaintext

let f = fs.open("/proc/net/dev");
if (!f)
return false;
const m = [
null,
counter("node_network_receive_bytes_total"),
counter("node_network_receive_packets_total"),
counter("node_network_receive_errs_total"),
counter("node_network_receive_drop_total"),
counter("node_network_receive_fifo_total"),
counter("node_network_receive_frame_total"),
counter("node_network_receive_compressed_total"),
counter("node_network_receive_multicast_total"),
counter("node_network_transmit_bytes_total"),
counter("node_network_transmit_packets_total"),
counter("node_network_transmit_errs_total"),
counter("node_network_transmit_drop_total"),
counter("node_network_transmit_fifo_total"),
counter("node_network_transmit_colls_total"),
counter("node_network_transmit_carrier_total"),
counter("node_network_transmit_compressed_total"),
];
let line;
while (line = nextline(f)) {
const x = wsplit(ltrim(line), " ");
if (length(x) < 2)
continue;
if (substr(x[0], -1) != ":")
continue;
const count = min(length(x), length(m));
const labels = { device: substr(x[0], 0, -1) };
for (let i = 1; i < count; i++)
m[i](labels, x[i]);
}