aboutsummaryrefslogtreecommitdiff
path: root/utils/prometheus-node-exporter-ucode/files/base/netdev.uc
blob: f8fc68de44f4354970bdf3969d0a5d300ccddc76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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]);
}