Feature #11589
openFix iftop experimental traffic fetcher, unify and improve output style
0%
Description
There were several problems with iftop fetcher.
Although it offered IPv6 unlike "rate" tool, its output is limited to approx. 10 lines of traffic source-destination pairs. If there are many slower connections from the same hosts, only a few are visible. The traffic is added up by same IP, but a lot of data could be omitted including showing less traffic the host uses. My change adds support for source and destination grouping for interfaces where you could expect local clients with many connections. It tries to recognize these interfaces by checking if the DHCP server is enabled for them. Other interfaces don't use grouping as it would hide relevant data.
This change needs to make current implementation somewhat more difficult regarding use of temp and pid files. Unfortunately there are no iftop arguments to do grouping without special configuration files.
Current implementation also has problems with response time. Each 3 seconds a new request to refresh data is made. PHP script launches bash script and waits for response. That blocks webserver slots and PHP-fpm slots as each request takes 6+ seconds to complete. Having the Traffic Graph page open makes more and more pending requests in browser, which could cause memory leaks and even crash. This was changed so the data is always taken quickly from file and bash script is launched in background if needed.
There is also a logic for killing old iftop processes on both sides, PHP script and bash script. This was left in bash script only as it is not needed elsewhere.
The output view of the table also needs some care.For better readability the following was changed:
- number columns are aligned to the right
- rounding to two decimals could result in 14 Mbit/s or 14.44 Mbit/s, now it's fixed to two decimals as function states
- letter k as in kilobits was capitalized in iftop's output unlike rate's, now it's lowercase k
- number before Mbits or Gbits is in bold font to be more visible on first sight
Files