mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			31 lines
		
	
	
		
			800 B
		
	
	
	
		
			Lua
		
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			800 B
		
	
	
	
		
			Lua
		
	
	
| local netsubstat = {
 | |
|     "IcmpMsg",
 | |
|     "Icmp",
 | |
|     "IpExt",
 | |
|     "Ip",
 | |
|     "TcpExt",
 | |
|     "Tcp",
 | |
|     "UdpLite",
 | |
|     "Udp"
 | |
| }
 | |
| 
 | |
| local function scrape()
 | |
|   -- NOTE: Both of these are missing in OpenWRT kernels.
 | |
|   --       See: https://dev.openwrt.org/ticket/15781
 | |
|   local netstat = get_contents("/proc/net/netstat") .. get_contents("/proc/net/snmp")
 | |
| 
 | |
|   -- all devices
 | |
|   for i, nss in ipairs(netsubstat) do
 | |
|     local substat_s = string.match(netstat, nss .. ": ([A-Z][A-Za-z0-9 ]+)")
 | |
|     if substat_s then
 | |
|       local substat = space_split(substat_s)
 | |
|       local substatv = space_split(string.match(netstat, nss .. ": ([0-9 -]+)"))
 | |
|       for ii, ss in ipairs(substat) do
 | |
|         metric("node_netstat_" .. nss .. "_" .. ss, "gauge", nil, substatv[ii])
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| return { scrape = scrape }
 |