aboutsummaryrefslogtreecommitdiff
path: root/utils/prometheus-node-exporter-ucode/files/extra/netstat.uc
blob: 7449305145366ac4ad9ecc5f1edb9dfca288b365 (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
function parse(fn) {
	let f = fs.open(fn);

	if (!f)
		return false;

	let names, values;
	while (names = nextline(f), values = nextline(f)) {
		const name = wsplit(names);
		const value = wsplit(values);

		if (name[0] != value[0])
			continue;

		if (length(name) != length(value))
			continue;

		let prefix = substr(name[0], 0, -1);
		for (let i = 1; i < length(name); i++)
			gauge(`node_netstat_${prefix}_${name[i]}`)(null, value[i]);
	}

	return true;
}

let n = parse("/proc/net/netstat");
let s = parse("/proc/net/snmp");

if (!n && !s)
	return false;