On Fri, Nov 5, 2021 at 7:50 AM Jürgen Kuri <juergen.k...@ionos.com> 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

Reply via email to