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 }