In this final post of the series ‘Monitor your Azure RemoteApp environment with OpInsight’ I want to take a look in how we can monitor the User Profile Disks. The User Profile disk mechanism is used to save ‘personal’ data of users in Azure RemoteApp. Each user will get a 50 GB User Profile Disk (VHD) which will be mounted during the logon process of the user. In this blogpost I want to focus on how we can monitor the usage of the User Profile Disk by using the Near-Realtime-Performance monitoring functionality of OpInsight.
As already explained the User Profile Disk is used to save the personal settings of users in Azure RemoteApp. When the User Profile Disk of 50GB is short on disk space the user could get errors during the logon process or during the usage of their Azure RemoteApp session. So it’s important to know when a User Profile Disk is short on disk space. With 50Gb of available space this should not happen soon, but better to be Save than Sorry!
The steps below will add the needed performance counter to OpInsight and show the query which we need:
- Login to the OpInsight console
- Go to Settings -> Logs
- Add the following counters to the Performance Counters section:
After 1 hour the performance information should be visible in Operational Insight. You can query the information by going to Log Search:
This query will give you all Logical disks with their ‘% Free Space‘:
In the above view we have some Logical disks which we probably want to exclude because those are not ‘User Profile’ disks. By adding the following filter: ‘AND (InstanceName=”C:\\Users\\<<username>>” OR InstanceName=”C:\\Users\\<<username>>”)’ we can filter the User Profile disks. After adding the filter, the query will give the following results:
But still the above results will not show us the ‘latest’ information. It’s showing the all-time MIN values for the User Profile Disks Free Space, but the situation could be that the all-time MIN value does not represent the actual MIN value. So we need to solve this, I solved it by adding a timeframe filter to the query. The only disadvantage of filtering by timeframe is that only the User Profile disks show up which are reported performance data in that time frame. But for now it’s the best option we have so I will add the following timeframe to my query: TimeGenerated>NOW-1HOURS. See below the results:
With adding the timeframe, I lost 1 User Profile disk, this User Profile disk had not generated performance data in the above Timeframe. So with showing the actual data you will lose the view on all User Profile disks. So you will need to find a balance between in the right TimeGenerated filter. Probably the best timeframe would be: TimeGenerated>NOW-1DAY
So our final query will look like:
- Now we have the final query we can save this one for using it on a dashboard. Save the query by clicking on Save.
When saved we can create a tile in the My Dashboard view. The end result will look like:
When you add a ‘WHERE’ filter to your query it’s possible to create tile with a threshold value. So when you add the following at the end of the above query: ‘WHERE UPDProcentFreeSpace<80’ and save that Query you can get the following tiles:
After some cleaning the above tiles should be like this (based on the filter timeframe this could take a day):