AVD Session Host Health Status Test

Healthy session hosts, which operate in an error-free manner, should be available in host pools at all times, so that AVD users are always assured of on-demand access to desktops/RemotetApps. The presence of many improperly configured, unhealthy session hosts can cause users to be denied access to VMs at business-critical junctures. To avoid this, administrators should periodically check the health of the session hosts in each host pool, swoop down on those hosts that are in a degraded health state, investigate the reasons for the poor host health, and eliminate them. This is where the AVD Session Host Health Status test helps!

At configured intervals, this test runs standard health checks on the session hosts in each host pool. Alerts are sent out if these checks fail on any session host. From the checks that failed, administrators can instantly determine what is ailing the session hosts. Detailed diagnostics point you to the precise session hosts where these checks failed, so administrators can rapidly initiate corrective action.

Note:

Typically, to consolidate log entries, correlate log data, and perform complex analysis, a host pool's logs are often sent to one/more Log Analytics Workspaces. This test reports valid metrics by reading data from these Log Analytics Workspaces only. If the host pool's logs are not sent to any Log Analytics Workspace, then this test will only report the value 0 for most of its measures. To avoid this, before configuring this test, make sure that the host pool's logs are configured to be sent to at least one Log Analytics Workspace. Follow the steps discussed in Configuring the Host Pool Logs to be Sent to a Log Analytics Workspace to achieve this.

Target of the test : A Microsoft AVD Broker

Agent deploying the test: A remote agent

Output of the test: One set of results for each AVD host pool managed by the target AVD broker

Configurable parameters for the test
Parameters Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Subscription ID

Specify the GUID which uniquely identifies the Microsoft Azure Subscription to be monitored. To know the ID that maps to the target subscription, do the following:

  1. Login to the Microsoft Azure Portal.

  2. When the portal opens, click on the Subscriptions option (as indicated by Figure 1).

    Figure 1 : Clicking on the Subscriptions option

  3. Figure 2 that appears next will list all the subscriptions that have been configured for the target Azure AD tenant. Locate the subscription that is being monitored in the list, and check the value displayed for that subscription in the Subscription ID column.

    Figure 2 : Determining the Subscription ID

  4. Copy the Subscription ID in Figure 2 to the text box corresponding to the SUBSCRIPTION ID parameter in the test configuration page.

Tenant ID

Specify the Directory ID of the Azure AD tenant to which the target subscription belongs. To know how to determine the Directory ID, refer to Configuring the eG Agent to Monitor the Microsoft Azure App Service

Client ID and Client Password

The eG agent communicates with the target Microsoft Azure Subscription using Java API calls. To collect the required metrics, the eG agent requires an Access token in the form of an Application ID and the client secret value. To know how to determine the Application ID and the key, refer to Configuring the eG Agent to Monitor the Microsoft Azure App Service. Specify the Application ID of the created Application in the Client ID text box and the client secret value in the Client Password text box.

Proxy Host

In some environments, all communication with the Azure cloud be routed through a proxy server. In such environments, you should make sure that the eG agent connects to the cloud via the proxy server and collects metrics. To enable metrics collection via a proxy, specify the IP address of the proxy server and the port at which the server listens against the Proxy Host and Proxy Port parameters. By default, these parameters are set to none, indicating that the eG agent is not configured to communicate via a proxy, by default.

Proxy Username, Proxy Password and Confirm Password

If the proxy server requires authentication, then, specify a valid proxy user name and password in the Proxy Username and Proxy Password parameters, respectively. Then, confirm the password by retyping it in the Confirm Password text box.

Log Analytics Workspace Name

Typically, to consolidate log entries, correlate log data, and perform complex analysis, a host pool's logs are often sent to one/more Log Analytics Workspaces.

By default, the Log Analytics Workspace Name parameter is set to All. This indicates that the test reads log data from all Log Analytics Workspaces configured for the target subscription, by default. However, if you want the test to use only those Log Analytics Workspaces to which a host pool's logs are sent, then provide the names of these workspaces here as a comma-separated list. To determine the names of the workspaces, do the following:

  1. Login to the Microsoft Azure Portal, and click on Host Pools to view the configured host pools.

  2. Select any of the host pools displayed therein by clicking on it.

  3. Next, keep scrolling down the left panel of the page that then appears, until the Diagnostic Settings option (under Monitoring) become visible.  Click on Diagnostic Settings to proceed.

  1. The diagnostic settings that pre-exist (if any) for the chosen host pool will then appear. If any of the existing diagnostic settings have already been configured with Log Analytics Workspaces, then the Log Analytics workspace column of that list will display these workspace names. You can configure the LOG ANALYTICS WORKSPACE NAME parameter of this test with any of these workspace names. If required, you can even configure this parameter with two/more workspaces displayed here, as a comma-separated list

  1. However, If the Log Analytics workspace column is blank for all the existing diagnostic settings, it is a clear indication that the host pool's logs are yet to be configured to be sent to any Log Analytics Workspace. In this case therefore, you should create a new diagnostic setting for the target host pool where a Log Analytics Workspace is configured as the destination for the logs. To achieve this, follow the procedure detailed in Configuring the Host Pool Logs to be Sent to a Log Analytics Workspace.

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measures made by the test:
Measurement Description Measurement Unit Interpretation

Success domain join

Indicates the number of session hosts in this pool that are joined to the domain.

Number

Ideally, the value of this measure should be high.

Failure domain join

Indicate the number of session hosts in this pool that are not joined to the domain.

Number

Ideally, the value of this measure should be 0. A non-zero value is a cause for concern. In this case, use the detailed diagnosis of this measure to know which session hosts that are not joined to the domain and why. To resolve the 'domain join' issue on the session hosts, do the following:

  • Join the VM manually to the domain

  • Then, try pinging the domain name from a command line on the VM

  • Review the list of domain join error messages and take appropriate action.

Success domain trust

Indicates the number of session hosts in this pool that are in a trusted domain.

Number

 

Failure domain trust

Indicates the number of session hosts in this pool that are not in a trusted domain.

Number

If this measure reports a non-zero value, then use the detailed diagnosis of that measure to know which session hosts failed the DomainTrust check, when, and why (the exact error message that was thrown).

Success FS logix

Indicates the number of session hosts in this pool on which FSLogix profile redirection was successful.

Number

The Azure Virtual Desktop service recommends FSLogix profile containers as a user profile solution. FSLogix is designed to roam profiles in remote computing environments, such as Azure Virtual Desktop. It stores a complete user profile in a single container. At sign in, this container is dynamically attached to the computing environment using natively supported Virtual Hard Disk (VHD) and Hyper-V Virtual Hard disk (VHDX). The user profile is immediately available and appears in the system exactly like a native user profile.

Ideally, the value of the Success FS logix measure should be high, and the value of the Failed FS logix measure should be 0. If the latter reports a non-zero value, then use the detailed diagnosis of that measure to know on which session hosts the FS logix redirection failed, when, and why (the exact error message that was thrown).

Failure FS logix

Indicates the number of session hosts in this pool on which FSLogix profile redirection failed.

 

Success SxS stack

Indicates the number of session hosts in this pool on which the AVD side-by-side stack has been successfully installed/enabled.

Number

Ideally, the value of this measure should be high.

Failure SxS stack

Indicates the number of session hosts in this pool on which the AVD side-by-side stack is not installed/enabled.

Number

Ideally, the value of this measure should be 0. If this measure reports a non-zero value, then use the detailed diagnosis of that measure to know which session hosts did not have the side-by-side stack.

Success URL check

Indicates the number of session hosts in this pool for which the URLCheck succeeded.

Number

Ideally, the value of this measure should be high.

Failure URL check

Indicates the number of session hosts in this pool for which the URLCheck failed.

Number

Ideally, the value of this measure should be 0. If this measure reports a non-zero value, then use the detailed diagnosis of that measure to know which session hosts failed the URLCheck, when, and why (the exact error message that was thrown).

Success geneva agent

Indicates the number of session hosts in this pool, where the Geneva Monitoring Agent is present.

Number

The Geneva Monitoring agent monitors the health of the Azure Virtual Desktop agent. It is one of the components that is essential for end-to-end user connectivity to function properly in the AVD infrastructure.

Ideally therefore, the value of the Success geneva agent measure should be high, and the same for the Failure geneva agent measure should be 0. If the latter reports a non-zero value, then use the detailed diagnosis of that measure to identify the session hosts where the geneva agent is not installed.

Failure geneva agent

Indicates the number of session hosts in this pool, where the Geneva Monitoring Agent is not present.

Number

Success domain reachable

Indicates the number of session hosts in this pool that are able to successfully reach the domain.

Number

Ideally, the value of this measure should be high.

Failure domain reachable

Indicates the number of session hosts in this pool that are unable to reach the domain.

Number

Ideally, the value of this measure should be 0. If this measure reports a non-zero value, then use the detailed diagnosis of this measure to know which session hosts could not reach the domain, when, and why (the exact error message that was thrown).

Success web RTC redirector

Indicates the number of session hosts in this pool on which the Remote Desktop WebRTC Redirector Service is successfully installed/enabled.

Number

The Remote Desktop WebRTC Redirector Service, when installed, enables Teams Media Optimization on a session host. With media optimization for Microsoft Teams, the Remote Desktop client handles audio and video locally for Teams calls and meetings. This way, the session host can offload overhead-intensive multi-media jobs to the Remote Desktop Client, thereby improving VM performance and the Teams experience.

If the Failure web RTC redirector measure reports a non-zero value, then use the detailed diagnosis of that measure to know which session hosts did not have the Remote Desktop WebRTC Redirector Service installed.

Failure web RTC redirector

Indicates the number of session hosts in this pool on which the Remote Desktop WebRTC Redirector Service is not installed/enabled.

Numb

Success SxS stack encryption

Indicates the number of session hosts in this pool on which the side-by-side stack is encrypted.

Number

 

Failure SxS stack encryption

Indicates the number of session hosts in this pool on which the side-by-side stack is not encrypted.

Number

If a non-zero value is reported for this measure, use the detailed diagnosis of the measure to identify the session hosts where the side-by-side stack is not encrypted.

Success metadata service reachable

Indicates the number of session hosts in this pool from which the Azure Instance Metadata Service is reachable.

Number

The Azure Instance Metadata Service (IMDS) provides information about currently running virtual machine instances. You can use it to manage and configure your virtual machines. This information includes the SKU, storage, network configurations, and upcoming maintenance events.

A non-zero value for the Success metadata service reachable measure implies that one/more session hosts are able to reach the IMDS and retrieve information about themselves from it. Ideally therefore, the value of this measure should be high.

On the other hand, if a non-zero value is reported for the Failure metadata service reachable measure, it is a cause for concern. In this case therefore, use the detailed diagnosis of this measure to know which session hosts were unable to reach the IMDS, when, and why.

Failure metadata service reachable

Indicates the number of session hosts in this pool from which the Azure Instance Metadata Service is not reachable.

Number

Success MSIX package staging

Indicates the number of session hosts in this pool that have been able to successfully attach apps from an MSIX package to a user session.

Number

MSIX app attach is an application layering solution that allows you to dynamically attach apps from an MSIX package to a user session. The MSIX package system separates apps from the operating system, making it easier to build images for virtual machines. MSIX packages also give you greater control over which apps your users can access in their virtual machines. You can even separate apps from the master image and give them to users later.

If the Failure MSIX package staging measure reports the value 0, then use the detailed diagnosis of that measure to know which session hosts could not attach apps, when, and why.

Failure MSIX package staging

Indicates the number of session hosts in this pool that failed to attach apps from an MSIX package to a user session.

Number