In this post, we will be exploring Horizon Performance Tracker feature and I will be using term HPT here onwards in this post to refer Horizon Performance tracker. We will discuss monitoring data provided by HPT, Requirements of HPT, Installing HPT, how to use HTP, and lastly but important one, differences of policies when managed in domain GPO and when managed with Local GPO.
VMware Horizon Performance Tracker or HPT feature is available with Horizon 7.5 and later releases. HPT runs in a virtual desktop and displays the collected performance data of display protocol (PCoIP or Blast) along with system resource usage such as cpu usage.
Just imagine that one of the end user is complaining about VDI desktop performance being slow. So to investigate this problem, where do you start? and how do you collect the data?
As mentioned earlier, HPT collects the performance data and displays it. This can be very useful while troubleshooting virtual desktop performance related issues. HPT provides you with quick insights into performance data such as:
Protocol specific data – Encoder and CPU:
- The name of encoder used in display protocol
- Bandwidth used by Encoder
- Whether the Audio is on
- Whether the Audio is started
- Number of imaging frames encoded over a one-second sampling period (FPS)
- Overall bandwidth for incoming and outgoing traffic, averaged over the sampling period for display protocol being used i.e. PCoIP or Blast
- Round Trip Time
- CPU usage of the encoder in current user session
- Total CPU usage of system
- Client to Remote Session, protocol used: UDP or TCP
- Remote Session to Client, protocol used: UDP or TCP
- UDP or TCP protocol, which one is used to connect to a Connection Server instance
- Check above image for reference.
System Health Status:
- Overall estimated bandwidth available between Horizon Client and Horizon Agent
- RTT latency in milliseconds between the Horizon Agent and the Horizon Client
- Check above image for reference.
- Server details such as DNS name, domain name, tunnelled or not, URL, remote IP address
- Client machine details such as IP address, Client display number, keyboard and mouse layout, language, time zone
All this information can really be of help to understand ongoing performance related issues in a virtual desktop. So let us look at now how to setup HPT in virtual desktop.
Requirements for HPT:
- All operating systems that support Horizon Agent, except Linux agents.
- All Horizon Client versions are supported, except Horizon Client for Linux and Horizon Client for Windows 10 UWP as published applications are not supported.
- VMware Blast and PCoIP
- HPT requires .NET Framework version 4.0 or later.
We can install HPT on a virtual desktop or on RDS host. If installed on RDS host, It can be published as application pool and run the published application from Horizon Client.
- HPT is a custom setup option while installing Horizon Agent. You must select the option manually as shown below, as it is not selected by default.
- Horizon Performance Tracker can be used in environments with IPv4 addressing as well as IPv6 addressing.
- Once HPT is installed, Desktop icon gets added which can be used to launch the HPT for monitoring.
HPT collects and displays data only when Horizon Agent is running in a virtual desktop session.
That simply means, HPT does not monitor data if VDI session is not connected, it’s a realtime monitoring tool. So, once you are connected to VDI, just launch the HPT from desktop icon and you can see the collected performance data.
Below are the screenshots of HPT, when VDI session is not connected. I took VM console of a virtual desktop from vSphere client. And then launched the HPT.
- Once I launched HPT, At a Glance tab with chart view,
- On At a Glance tab, with Grid View
- On Session properties tab,
As you can see in above screenshots, no information is available in HPT when launched directly outside VDI session.
Just out of curiosity, I closed the HPT and checked the task manager to see if any process related to HPT is running. Even though I was not running HPT or any other app, we can see the background process for HPT as in image below.
So this background process is listed even if the VDI session is not connected. This helps HPT to trigger data collection and start monitoring the moment VDI session is connected.
In case, HPT does not start data collection automatically when the virtual desktop is launched, you can double-click the VMware Horizon Performance Tracker desktop icon to start it.
Running HPT in VDI session
Since we have to run HPT in ongoing VDI session, let’s connect to a VDI desktop and test this. I will use Mozilla Firefox browser as client for quick check. You can use Horizon Client as well if you wish.
Let’s look at the captured data in screenshots below.
- Connect to connection server using browser and launch HPT from desktop Icon
- On At a glance Tab, Chart View,
- On At a glance tab, grid view,
- On Session properties page,
Horizon Performance Tracker Group Policy Settings
For managing HPT through GPO, we require the ADMX template file perf_tracker.admx and language file perf_tracker.adml. It is available in VMware Extras bundle for Horizon which can be downloaded from VMware portal. This link is for latest horizon version i.e. 7.12, so check your Horizon version for compatibility
Once downloaded the extras bundle,
- Extract ADMX template file perf_tracker.admx and language file perf_tracker.adml.
You can use local group policy editor for managing HPT policies. We can also use Domain GPO for this, however, there is interesting difference in between these two policy management scenarios.
Lets look at Domain GPO first
- Paste perf_tracker.admx in policy definitions on Domain controller as shown below
- Paste perf_tracker.adml under en-US directory in Policy definitions as shown below.
- Now open the GPO Editor and navigate to Computer Configuration -> Administrative Templates -> VMware Horizon Performance Tracker
- Interestingly enough, there is only one policy option here as shown below.
- If you edit this policy, we have option to set refresh interval
Lets Look at Local GPO now
- Paste perf_tracker.admx file to the %systemroot%\PolicyDefinitions folder as shown below
- Paste perf_tracker.adml to the %systemroot%\PolicyDefinitions\en_us subfolder as shown below
- Now open local policy editor using gpedit.msc and navigate to same path as we did in domain policy. And here is the difference, we have 3 policies now.
- Below are the details of available policies.
|Horizon Performance Tracker basic setting||When enabled, you can set the frequency in seconds at which Horizon Performance Tracker collects data.|
|Enable Horizon Performance Tracker auto start in remote desktop connection.||When enabled, Horizon Performance Tracker starts automatically when a user logs in to a remote desktop connection. To clear this preference GPO setting, select Disable.|
|Enable Horizon Performance Tracker auto start in remote application connection||When enabled, Horizon Performance Tracker starts automatically when a user logs in to a remote application connection. To clear this preference GPO setting, select Disable.|
This difference in policy does make sense considering HPT helps you to monitor performance data of local system and hence can be better managed with local polices depending upon local OS as we can use HPT on client operating systems like Win 10 and on RDSH as well. Local policy management reduces required policy updates from centralized GPO. We can configure these policies and store in templates to avoid repetitive configurations.