Its not really practical to do transparently do this kind of monitoring except on a router (ignoring enterprise grade switches)
That said a cheap router may not exclude you from doing bandwidth monitoring depending on the type of router. If your router is compatible with DD-WRT you can flash that onto it and take advantage of its monitoring features. Plenty of cheap ethernet routers work with DD-WRT (but not ADSL or VDSL routers). If your budget > $0, and you do have an ADSL/VDSL router, it would be possible to put a cheap DD-WRT ethernet router between that router and your devices and use it for monitoring.
Also, depending on your router, you can sometimes get a very crude indication of utilization of each port on it by looking at LED activity. This won't help you if most of the activity is coming through WIFI.
It is also possible (but not trivial) to configure another computer on the network to act as a gateway (you will need to set it up as a gateway and to handle DHCP), which would cause traffic to be routed via that computer - and you could then find / roll some software to monitor the usage of each link. You would want this device to be always-on and connected via ethernet - so its generally better to just use a router to do this - you will save the cost of the router in decreased power bills.
Note that on Wi-Fi, you want to measure the airtime used, not bits or bytes per second, because a fast Wi-Fi client can be over 1000x more airtime-efficient than the oldest slowest clients. So a fast client could be moving hundreds of times more bits per second, and still be causing less Wi-Fi congestion than an older slower client. Also note that lag (latency) spikes on a congested link are a sign of a bug called bufferbloat. My best advice is to fix your bufferbloat first before bothering to look for or deal with bandwidth hogs. – Spiff – 2017-07-27T05:41:57.717