The Management Pack for Horizon 2.7 is available!

The latest release of the Management Pack for Horizon 2.7 is now available for download on the VMware Marketplace, as well for SaaS hosted customers in the Aria Operations Integration Repository. This post will cover the latest feature enhancements to the Management Pack and how best to leverage them.

Top Feature Enhancements

  • Added support for Horizon 2309
  • Updated Horizon Session Data Collection model
  • New Cost and Pricing Dashboards
  • Improved Deployment and Scale considerations documentation

Latest Documentation Link: click here

Horizon 2309 Support

As new editions of Horizon are released with updates to the APIs, there is usually a slight lag for supporting the new version until we are able to test and certify compatibility. That is why I highly recommend checking the interop guide to ensure that your specific version of Horizon matches the version(s) of the MP that has been tested and validated.

>>> Latest Interop Link <<<

For Horizon 2309, only MP4H version 2.7 is supported due to the API changes mentioned above. As we move forward and continue our migration from the VLSI APIs to the REST APIs, our hope is that supporting future versions of Horizon will be much simpler and allow for near zero day support.

Updated Horizon Session Data Collection Model

When the MP4H was originally created there were certain Horizon Metrics that were inadvertently created as Properties. Because their values are numerical in nature and were prone to updating frequently, this triggered platform level alarms in terms of performance and scalability, as Aria Operations does not expect Property values to change frequently.

As of MP4H 2.7, Last Session Duration, Session Start Time, and Session Status will now appear as Metrics instead of Properties.

Additionally, we have added the ability to support Kiosk or multiple sessions from the same User ID in the same VDI Pool. Previously, if the same User ID logged into the same pool, only one User Session object was visible and it was not feasible to troubleshoot a single instance of that User ID in the pool. Moving forward, a new session “instance” will be created for each additional session with an incremental appended numerical value at the end. This new model will allow each session to have its own unique performance metrics and session properties, so that each session can be evaluated for performance issues.

New Horizon Costing and Pricing Dashboards

In MP4H 2.6, we added the ability to calculate Cost and Pricing metrics for Horizon Users, VDI Pools, and RDS Farms. With the new Cost and Pricing Dashboards we are able to provide additional Insight into Cost vs Pricing analysis for the entire Horizon Service.

From the Horizon Cost vs Price dashboard, simply select the Horizon World object for the entire service, or select an individual VDI Pool or RDS Farm, to see the Cost vs Price analysis.

The Horizon Showback dashboard shows the actual Cost for the Horizon Service. As before, simply select the Horizon World, VDI Pool, or RDS Farm to see cost analysis for the selected object.

Finally, the Horizon Chargeback dashboard shows the Price (cost + service charges) for the entire Horizon Service (Horizon World object), or the selected VDI Pool/RDS Farm.

Improved Deployment and Scale considerations documentation

While the topics of deployment and scale considerations have discussed in previous blog posts, it was imperative that we included these topics in the product documentation, so that all customers can easily access them. The documentation can now be accessed in the link below.

>>>>> Documentation Link <<<<<

Previous post on this topic: https://cameronfore.com/2022/07/08/getting-started-with-mp4h-2-1-deployment-considerations/

Conclusion

With the latest release of the Management Pack for Horizon the priorities were to maintain compatibility with the latest release of Horizon, improve the Horizon VDI session data model to support kiosk use cases and ensure better platform performance, provide better insight into Horizon Cost and Pricing use cases, and provide easier access for all customers into critical documentation topics.

Stay tuned for more feature and content updates on the next release…

MP4H 2.0 What’s New and Use Cases

As of 1.27.2022, the Management Pack for Horizon 2.0 is now released and available for on-prem or cloud customer deployments! This is an exciting release as it brings a number of groundbreaking features to further enhance our customer’s ability to successfully monitor, maintain, and optimize their Horizon deployments.

This list of enhancements include:

Primary use cases for Unified Access Gateway (UAG) monitoring include:

Primary use cases for Horizon Connection Server monitoring include:

Introducing Horizon User Capacity and Right-sizing metrics:

Introducing Horizon VDI Pool Capacity and Configuration optimization metrics:

Horizon User Experience/Performance KPI:

Ready to get started?

https://marketplace.cloud.vmware.com/services/details/vrealize-operations-management-pack-for-horizon-1-1-11111-11?slug=true

Location analysis using vROPs for Horizon

As the number of user sites or locations increases, having good visibility into the overall quality of connectivity of those sites to your Horizon View data center(s) becomes increasingly important. Having worked with many customers on troubleshooting connectivity between such locations, it has become clear that monitoring only at the physical network layer is not sufficient to properly diagnose user connectivity issues impacting the display protocol. In fact, in most cases, it’s the configuration of the physical layer that causes the issue(s), and the device(s) in question do not have the ability to diagnose or detect their impact to the display protocol.

Alas, all hope is not lost! With vROPs for Horizon, we have the ability to monitor the key metrics related to protocol performance and can alert when those metrics have reached critical thresholds. We can also leverage a handy custom grouping feature to organize the remotely connected sessions into defined sites or locations, based on information available in the user’s session data. We can then leverage Super Metrics to calculate the overall health of the group of connected sessions from that site, and then display and alert when the health has dropped below our SLA thresholds.

Sound like something you want to take on? Then read on!

First things first… 1️⃣

We need a strategy to capture and organize how we determine which connections are from which site. The most common approach is to leverage the known internal subnet IP range for that site, and set that as the primary filter for the custom group. However, additional metrics supplied by the user’s session data can be leveraged as well.

In this example, I will create a new Site labeled “External Users”, under the “Location” group, and filter on all users who have an internal subnet IP containing “192.”.

Navigate to Environment tab -> Location -> +
Notice that both session types Desktop and Application are added separately. While not required it will impact which sessions are captured, so make sure to add the required session types.

Note: It may take some time before the group starts to populate the sessions, and as noted in the image above, population updates are every 20 minutes.

You will also want to create at least one more additional site for comparison purposes. In the example below, I have created an “Internal Users” site that filters on 10.x networks to separate the session traffic.

Second is just after first… as long as we’re counting up! 👆

Once your group has started to populate with sessions, it’s time to create meaningful Super Metrics on the group that will give us insight into how well that site is connected.

By default, vROPs 7.5+ will create population TotalCount and Health Criticality Total Count metrics. These will be useful in leveraging out-of-box KPI based alerts that track how well users are connected to the Horizon Environment and let us know the distribution of good to bad connected sessions from that site.

Out of box Health Criticality counts on the custom group.

Leveraging Super Metrics, it’s time to create additional site tracking metrics that include, but are not limited to, average site Latency, Packet Loss, Jitter, Frame Rate, and Transmitted Bytes.

Super Metric name is “Total Site VDI Avg Packet Loss”.
Use the Avg function on the VDI Session Blast Packet Loss Uplink metric.
Assign the Super Metric to the “Location” object.
Select the active policy that will allow the Super Metric to collect.
Verify that the “Location” Object Type has been assigned to the Super Metric.
Verify that the active policy is associated with the Super Metric.

Thirdly Rinse and Repeat… ♻️

Continue to create the Super Metrics for the additional session metrics that you want to collect. As in our example below, you will need to do this for both the VDI and Application Sessions individually to capture the metrics from both types of sessions.

Completed Super Metrics list.

Now… what to do with all this stuff? 🤔

Now that we have meaningful Super Metrics on our custom group, it’s time to display that data in a way that it makes it easier to diagnose specific site connectivity issues, and compare that site against other sites that are connecting to our Horizon environment.

To do so, I’ve created a custom example Dashboard that allows you to select from the list of defined sites, and then display the relevant Alerts and Super Metrics that we defined on those sites. While you can choose to display the data in any manner you see fit, I’ve chosen to use a combination of Scoreboard, Distribution, and Heatmap widgets.

I’ve also chosen to label the widgets using an ordered numbering system with directions so that other users leveraging the dashboard will know how it’s meant to be consumed.

1) Select the site. 2a) Review the site alerts. 2b) Review the break down of criticality of alerts. 3a) Review Super Metrics that were created to analyze the site connectivity.
3b) and 3c) Notice that clicking on a Distribution View will show you which session(s) fall under the defined performance “buckets”.
4a) Select a problem session. 4b) Review scoreboard of relevant KPIs impacting that session. KPI’s are colored to show level of impact to the user’s session. 4c) Review session related objects looking for other impacted objects with alerts.

Continue your analysis of the Application Sessions if relevant for your site. The workflow will be the same as the above VDI Session analysis.

5a) Review the App Session Super Metrics for anomalies.
5b) and 5c) Clicking the Distributions will show you the session(s) the fall into each performance “bucket”.
6a) Select the session you want to review. 6b) Review the Scoreboard metrics for offending KPIs. 6c) Review the session relationship chart and look for additional objects with Alerts that may be impacting the user session.

Next steps… Download and enjoy! 🏁

Now that we’ve discussed how to create the content and the high-level strategy for performing the site connectivity analysis, it’s time to download and import the content . The zip file provided in this blog contains all of the content that is required to create the custom dashboard, except for the step on creating the custom group locations. That step will still be required for you to define what “Sites” you want to monitor for connectivity performance.

Contents of the zip include a Dashboard_Horizon Site Location Analysis.zip, Views_Horizon Site Location Analysis.zip, and Supermetric_Horizon Site Analysis.json. All of which need to be imported and at least one Location group defined before the Dashboard will function properly.

Enjoy! Please provide thoughts or feedback on how to make the dashboard and content better.

How to add Historic User Session Latency to vROPs for Horizon.

VROPs for Horizon provides end-to-end visibility into key User session statistics that make it easy for Horizon admins to visualize and alert on performance problems impacting the user’s of their environment. One of the key metrics used in determining how well user’s are connected to their virtual app or desktop session is Session Latency (ms), as it most visually impacts the user’s perspective of their session performance.  The lower the session latency, the quicker video, keyboard, and mouse inputs are redirected to and from a user’s endpoint client, giving the user a more native-like PC experience.

As the latency trends higher (>180ms), the experience begins to degrade, and the user can begin to notice “sluggishness“ – slow keyboard, mouse, and video responsiveness.

VROPs for Horizon gives us direct visibility into when these issues are occurring across all of the Active User Sessions of the Horizon View environment.  However, once the session becomes inactive, it will go into a stale object state and be removed from vROPs during a clean-up window.

To be able to view this information historically on Pools and User objects, you can create Super Metrics that simply maps the session latency to the objects you want to report on.

Creating the Super Metric

To create the Super Metric, Navigate to Administration -> Configuration -> Super Metrics.  Click the green + sign to create a new Super Metric.

Provide the Super Metric a unique name, in this case we are using “Avg App Session Latency”.  Search for the  “Application Session” Object Type, and click “Round Trip Latency (ms)” to add it to the Super Metric.  Since, we are looking for the average latency, select “avg” from the available functions list, making sure that the average function applies to the metric by encapsulating it parenthesis as demonstrated in the image below.  Click Save to finish the Super Metric.

Next, you will need to add the Super Metric to the “User” object type.  Click the green + sign under the “Object Types” section.  Search and select the “User” object type.

Before the Super Metric will begin collecting data, you will need to navigate to Administration-> Policies, and edit the active monitoring policy to enable the metric for collection.

Once the metric has started to collect data, you can view the data on a individual “User” object by selecting “All Metrics” -> Super Metric -> select metric.

You can also create custom Views that display the historical latency for all users of the environment, as well as perform simple roll-up statistics.

How to deliver a persistent desktop experience with mandatory profiles and UEM

Disclaimer:

This document is not intended to show the complete process of how to setup and install UEM, or highlight all of the possible AD policies that can be leveraged for customer deployments.  It is intended to show a simplified process of turning a Default Windows profile into a Mandatory profile, recommend GPO polices to simplify management and clean up of profiles, and redirect key folders to keep user data after logoff.  UEM will be used to deliver as well as capture user application settings.

App Volumes Notice:  If leveraging this methodology for an App Volumes deployment, make sure that the agents are installed in the correct order.  The order of installation is View Agent, UEM agent, and App Volumes respectively.

** As new versions of UEM are released, some steps maybe simplified over time.

Creating the Mandatory Profile:

Step 1: From a Windows 7 Desktop, navigate to C:\users\.

If the Default profile folder is not visible, change your default folder view options. Choose Show hidden files, folders, and drives, and uncheck Hide protected operating system files (Recommended).

Step 2:  Copy the Windows 7 Default folder to your Mandatory profile network share. 

Make sure the share is set for Everyone to have a minimum of Read access.

Step 3:  Open the Default folder copied to your network share.  Rename ntuser.dat to ntuser.man.  It is also recommended to delete the following files:

  • DAT Text Document
  • DAT.LOG1 LOG1 File
  • DAT.LOG2 LOG2 File

Step 4:  Rename the Default folder to Default.V2 for Windows 7+ OS users.

Optionally you can create a copy of the folder and leave the Default name without the .V2 for XP users.

Create Mandatory Profile Summary:

At this point you should have clean mandatory profile that was generated from the Default profile available in Windows 7.  That profile was copied to a network share, and we verified that the Everyone group has the Read permissions on that share.  The ntuser.dat file was renamed to ntuser.man, and the extra files were deleted.  The folder was renamed to Default.V2 for Windows 7 + OS users.

By leveraging the Default profile, we have removed a lot of steps typically involved in the creation of a mandatory profile.  This will also help to speed up user logins, as well remove additional variability from the desktop environment.

Enabling Active Directory group policies to leverage the Mandatory profile and folder redirection.

Step 1: Set the OU Computer Configuration policy to “Always wait for the network at computer startup and logon” to Enabled.

 In the group policy editor, navigate to Computer Configuration-> Policies -> Administrative Templates-> System-> Logon, and change the policy setting to Enabled.

Step 2:  Edit the Computer User Profiles policy, “Set roaming profile path for all users logging onto this computer” to Enabled, and specify the network share path. 

In our example the share path is\\adserver\ManProfile$\Default.  **Do not include the .V2 in the folder path.

Step 3:  Edit the Computer User Profiles policy to configure the user’s home directory path. 

In our example the path is \\adserver\HOME$\%username%.  You will need to make sure to set the proper sharing and security settings, so that the users can properly access their home folder.  This process is not covered in this document, but can be found through various resources.  Domain Users should have Full Control access to the share as shown in the pictures below.

Step 4:  Optionally you can set the Computer policy “Delete cached copies of roaming profiles” to Enabled

This feature will make sure the users profile folder is automatically deleted on logoff.  If you are implementing a non-persistent virtual desktop environment and the refresh on logoff feature is enabled, this feature may be considered redundant, as the refresh process will automatically get rid of the user’s profile folder.

 

Step 5: Now we must set the User Configuration policy to redirect the users Desktop and Documents.

In the GPO Management Editor, navigate to User Configuration->Policies-> Windows Settings-> Folder Redirection-> Desktop.  Right-click and select properties.  Under Setting: select Basic – Redirect everyone’s folder to the same location.  Under Target folder location, make sure that Create a folder for each user under the root path is selected.  Set the Root Path to the users Home$ directory share.  In our case the share is \\adserver\HOME$

Step 6:  Perform the exact same procedure as above for the Documents setting.

Enabling AD GPO policies Summary: 

At this point we have enabled multiple Computer policies for Network Logon, as well as User Profiles.  The policies tell our computer to wait for the network at logon, and when a user logs in, force them to use the mandatory profile we created in part one.

We also specified that we want to redirect the user Desktop and My Documents to a user network HOME$ share.  This will allow changes made to the Desktop, and files added to My Documents to follow them between desktops, whether they are physical or virtual.

Now we are ready to leverage UEM to deliver and maintain personalized app settings for the users.

Working with UEM to deliver a persistent experience:

This portion of the document assumes you already have UEM deployed in your environment.  For guidance on installing UEM, see the UEM Install Guide in the Reference section.

Why Horizon UEM:

VMware UEM is able to deliver default or customized application settings directly to the user’s desktop session without leveraging a local or roaming profile.  It also has the ability of capturing the user’s application settings changes, storing them directly to a file share without the need of a complicated database infrastructure, which allows it to have unlimited scalability. This capability dramatically simplifies the overall management of physical of virtual desktop environments, by removing the need to store and maintain user profiles to deliver application settings, as well as eliminating user profile corruption issues.

By storing the application settings outside of the user’s profile, this allows for seamless transitions between OS versions, as the profile compatibility variable is removed.

Application Personalization:

UEM leverages a whitelist approach to delivering and capturing user application settings.  There is a built-in application list, that can easily be added to using the Application Profiler.  Simply run the Application Profiler on a system that has the application installed, launch the application, and it will generate the necessary config files to import directly into UEM.

The config files will include registry entries and AppData folders where UEM will capture and push data to.  If a user determines that his application settings are not being stored between sessions, you can run the Application Profiler, create the necessary configs, add them to the UEMConfig\general\Application folder, and their settings will then be captured.

Mandatory Profile Demonstration:

In our example, we will demonstrate leveraging a mandatory profile created from a Windows Default profile, for a user who has never used MS Office 2013.

User logon:

Once the user has logged in, even though they are forced to use a Default Mandatory profile, UEM has dynamically provided them shortcuts to desktop.

Even though the user has never used Word, nor is there a profile to capture or store settings, launching word from the Start Menu reveals that the user name and AD account information is automatically populated into the application, even on first launch.

Unchecking the default options under General and logging off the machine, results in those options being stored into the User’s application settings share folder.  On next logon, the unchecked General options remain for the user.

References:

User Environment Manager Administrator’s Guide:  https://www.vmware.com/pdf/uem-870-admin-guide.pdf

Application Profiler Administrator’s Guide:

https://www.vmware.com/pdf/uem-870-app-profiler-admin-guide.pdf