We do this with Splunk. We use a simple batch script to write the volatile environment variables within each desktop to a txt file on a network share. Using Group Policy, this script runs on each Connect, Disconnect and Reconnect. Splunk can then aggregate and search the environment variables allowing us to search for all kinds of trending information. To find external connections, we simply filter on ViewClient_Broker_GatewayLocation=External.
We use the free Splunk license (500MB per day of data) for our 1500 desktops. If your environment is larger you may need to pay for a license.
I hope this gives you some ideas.