Displaying bandwidth usage with Go
Programming Snapshot – Go Bandwidth Display

© Lead Image © xyzproject, 123RF.com
A Go program running on a Raspberry Pi grabs metrics from a pfSense firewall and displays them on a miniature display to help Mike Schilli keep an eye on his Internet connection's bandwidth usage.
Measuring the active throughput of an Internet connection is not entirely trivial, because nobody wants the measuring probe to slow down the data traffic. However, the router at the Internet access point has to view and forward all of the packets anyway, so why not let it also count them and provide the results via an API?
At home, I use a pfSense firewall on a fanless mini PC as my main router, which also runs some apps with access to the packet throughput (Figure 1). One of these apps is ntopng, which shows you in a browser which LAN client is currently communicating with which server on the Internet – among other things. Ntopng also offers an API with token authentication, which returns counters for the bits transferred in both directions.

[...]
Buy this article as PDF
(incl. VAT)