On Fri, Nov 5, 2021 at 7:50 AM Jürgen Kuri <[email protected]> wrote:
> Hello, > > it would be nice for admin users to have a possibility in the web frontend > to quickly identify current connections which consume a lot of network > bandwidth (kind of ranking of network packet count or so). This is useful > and more convenient if you have several simultaneous connections and > several Guacamole instances balanced and concentrated with a BGP network > router setup. For admins which are not so familiar with tools like netstat, > iptraf and friends it is extremely helpful. > > If you'd like to request a feature, Jira is the place to do it: https://issues.apache.org/jira/browse/GUACAMOLE > Because of several Guacamole instances concentrated via BGP network > routers (from outside there is only visible one Guacamole access URL), the > network bandwidth utilisation values must be somewhere CENTRALLY stored and > updated in the Guacamole SQL database. These single and concentrated > Guacamole instances (frontend and backend) share all the same database here > in our setup. So, "logically" or from application "high level" view it is > just one instance with one access URL from the internet. This is for > example, why we see in the web frontend below "Active Sessions" not all > active sessions, just the ones to that internet frontend where the admin's > web session is routed to but not the ones from the neighbor internet > frontends. > This would likely need to be thought out a little bit more thoroughly. I see a couple of issues with this: * Depending on what type of information and how much you plan to store in the database, this could cause a rapid growth in the size of the database. It might be possible to add a couple of fields - total packet count, and total byte count, or total in packets, total out packets, total in bytes, and total out bytes - that could be tracked and updated periodically for active and historical connection information. But, if you're wanting to store a bunch of historic information about when connections hogged the bandwidth, you're talking about a lot of additional data (RRD-style). * Depending on how often you'd want it updated, this could result in quite a heavy load just tracking this information. If you had 100 active connections, and you wanted the data updated every second, or even every 10 seconds, this would add quite a bit of load to what is otherwise a relatively light-weight and low-utilization database. * As you mentioned, there is currently no synchronization of active connections between multiple web front-ends (Tomcat instances), so tracking this information in a central place would likely require some far-reaching changes to that, as well, so that active connections are synchronized across those front-ends. I'm not saying this shouldn't be done - I actually think it should be done, eventually, just saying that this makes what you're requesting, for your environment, quite a bit more complex. * What you're requesting would likely only take care of one of the two possible legs of bandwidth utilization - you'd be able to see traffic between the clients (web browsers) and Tomcat (and ultimately guacd), but there's also traffic between guacd and the remote servers that is worth consideration, and which this would not be able to capture. -Nick
