VDI Experience NQL capabilities

New NQL capabilities

VDI Experience uses the following tables that are specific to VDI:

These tables provide insights into virtual desktop sessions and their associated events, enabling users to monitor performance and user interactions more effectively. The vdi_sessions table captures key information related to individual sessions, while the vdi_events table records significant events during those sessions.

Additionally, the vdi_sessions and vdi_events tables are associated with the Devices and Users tables, allowing access to all related data. These additions promote improved analysis and troubleshooting within virtual desktop environments.

See the NQL data model for more details about the tables.

Increasing data resolution

When querying VDI event data with NQL, you can enhance the resolution of your results for the past 48 hours to 30-second intervals, allowing you to gain deeper insight into system behavior. This enables more accurate tracking of anomalies and system performance trends.

See the Retrieving high-resolution data for Desktop Virtualization page to understand how to increase the data resolution to 30-second intervals.

NQL examples

This list of query examples is designed to help you perform successful investigations in the Nexthink web interface. Go through the investigations listed below and pick the one most similar to the investigation you’re trying to complete. Copy the query and adjust it to your use case.

See the start and end of VDI sessions
session.lifecycle_events
| where device.virtualization.vdi_reporting == active
| where type in [ login, connect, disconnect, logout ]
Identify endpoints using VDI
devices
| where virtualization.vdi_reporting in [ inactive, active ]
Sessions where experience was bad for at least 5 minutes during the last 4 hours
vdi_sessions 
| with session.vdi_events during past 4h 
| compute time_while_bad = health.duration_with_bad_session.sum()
| where time_while_bad > 5min
| list user.name, device.name, vdi_session.name, last_interaction_time

Collected metrics

Prerequisites

VDI Experience requires installing specific agents on both VMs and client devices. The choice of which agents to deploy depends on your organization’s infrastructure and internal policies, as described below.

Required agent for VMs

You must install Collector on all VMs to enable the collection of any data. It is essential for monitoring activity and gathering performance metrics within the virtual environment.

Optional agents for Client Devices

Depending on the type of client device and your desired level of insight, you can install one of the following agents:

  • CollectorProvides the full range of VDI metrics. This agent is intended for company-managed client devices and enables comprehensive visibility into the user experience.

  • VDI Client Extension — A lightweight agent that offers a limited set of metrics. It is designed for personal or self-managed employee devices where full Collector installation is not feasible.

Levels of Insight

VDI Experience offers three distinct levels of monitoring insight based on the agent configuration on client devices:

  • Remote-only insights

  • Limited visibility setup

  • Full visibility setup

The following sections explain each of thesee scenarios.

Remote-only insights

In this scenario, metrics are captured only from the Collector on the VM, providing session-level visibility. Neither the VDI Client Extension nor Collector is installed on the client device.

The following expandable sections show the list of collected metrics in the vdi_sessions and vd_events tables.

Metrics in vdi_sessions
  • agent_version

  • desktop_pool

  • disk_image

  • first_seen

  • id

  • initial_program

  • last_client.app_version — Only available for Citrix, when neither the Collector or the Client Extension is installed.

  • last_client.device.name — Only available when using a client application and not a web client.

  • last_client.device.operating_system.platform

  • last_interaction_time

  • last_seen

  • logon_server

  • name

  • region

  • remote_protocol

  • session_type

  • state

  • transport_protocol

  • uid

  • virtualization_type

Metrics in vdi_events
  • bucket_duration

  • client.app_version — Only available for Citrix when neither the Collector nor the Client Extension is installed.

  • client.device.name — Only available when using a client application and not a web client.

  • client.device.operating_system.platform

  • context.location.country

  • context.location.site

  • context.location.state

  • context.location.type

  • context.organization.entity

  • end_time

  • framerate

  • health.duration_with_average_network

  • health.duration_with_average_responsiveness

  • health.duration_with_average_session

  • health.duration_with_average_vm_memory

  • health.duration_with_average_vm_processor

  • health.duration_with_average_vm_storage

  • health.duration_with_bad_client_processor

  • health.duration_with_bad_network

  • health.duration_with_bad_responsiveness

  • health.duration_with_bad_session

  • health.duration_with_bad_vm_memory

  • health.duration_with_bad_vm_processor

  • health.duration_with_bad_vm_storage

  • health.duration_with_good_client_processor

  • health.duration_with_good_network

  • health.duration_with_good_responsiveness

  • health.duration_with_good_session

  • health.duration_with_good_vm_memory

  • health.duration_with_good_vm_processor

  • health.duration_with_good_vm_storage

  • ica.input_bandwidth_available

  • ica.input_bandwidth_used

  • ica.input_session_bandwidth

  • ica.input_session_linespeed

  • ica.latency

  • ica.output_bandwidth_available

  • ica.output_bandwidth_used

  • ica.output_session_bandwidth

  • ica.output_session_linespeed

  • idle_duration

  • network_rtt

  • rdp.frame_quality

  • rdp.frames_skipped_client

  • rdp.frames_skipped_network

  • rdp.frames_skipped_server

  • rdp.tcp_bandwidth

  • rdp.tcp_receive_rate

  • rdp.tcp_send_rate

  • rdp.udp_bandwidth

  • rdp.udp_receive_rate

  • rdp.udp_send_rate

  • resolution

  • start_time

  • state

  • transport_protocol

  • user_input_delay — Not collected on Windows 10 and Server OS before 2022

  • vm.agent_version

  • vm.cpu.context_switches

  • vm.cpu.interrupt_usage

  • vm.cpu.normalized_queue_length

  • vm.cpu.normalized_usage

  • vm.cpu.usage

  • vm.memory.available

  • vm.memory.cached

  • vm.memory.installed

  • vm.memory.non_paged_pool

  • vm.memory.paged_pool

  • vm.memory.pages_output_throughput

  • vm.memory.paging_file_size

  • vm.memory.usage

  • vm.memory.used

  • vm.network.incoming_throughput

  • vm.network.outgoing_throughput

  • vm.system_disk.duration_with_average_queue_length

  • vm.system_disk.duration_with_average_read_latency

  • vm.system_disk.duration_with_average_write_latency

  • vm.system_disk.duration_with_bad_queue_length

  • vm.system_disk.duration_with_bad_read_latency

  • vm.system_disk.duration_with_bad_write_latency

  • vm.system_disk.duration_with_good_queue_length

  • vm.system_disk.duration_with_good_read_latency

  • vm.system_disk.duration_with_good_write_latency

  • vm.system_disk.name

  • vm.system_disk.queue_length

  • vm.system_disk.read_iops

  • vm.system_disk.read_latency

  • vm.system_disk.read_throughput

  • vm.system_disk.write_iops

  • vm.system_disk.write_latency

  • vm.system_disk.write_throughput

  • vm.system_volume.capacity

  • vm.system_volume.free

  • vm.system_volume.usage

Limited visibility setup

In this scenario, the client device has the VDI Client Extension installed on it, complementing the data captured from the Collector on the VM. For more information, refer to the Installing the Nexthink VDI Client Extension documentation.

The following expandable sections show the list of additional metrics you get in this scenario on top of the ones listed in Remote-only insights.

Additional metric in vdi_session

last_client.plugin_version

Additional metrics in vdi_events
  • client.cpu.normalized_usage

  • client.network.active_network_adapter

  • client.network.incoming_errors

  • client.network.incoming_packets

  • client.network.incoming_throughput

  • client.network.ip_address

  • client.network.outgoing_errors

  • client.network.outgoing_packets

  • client.network.outgoing_throughput

  • client.network.wan_latency

  • client.network.wifi_signal_strength

  • client.network.wifi_transmission_rate

  • client.network.wired_link_speed

  • client.plugin_version

  • health.duration_with_average_client_processor

Full visibility setup

In this scenario, the client device has Collector installed on it along with the Collector running on the VM. This approach provides the full range of data. For more information, refer to the Installing Collector documentation.

The following expandable sections show the list of additional metrics you get in this scenario on top of the ones listed in Remote-only insights and Limited visibility setup.

Additional metric in vdi_session
  • last_client.device.collector.uid

  • last_client.device.uid

Additional metrics in vdi_events
  • context.vdi_client.location.country

  • context.vdi_client.location.site

  • context.vdi_client.location.state

  • context.vdi_client.location.type

  • context.vdi_client.organization.entity

Metrics from Connectors

You can further complement the session data if you have on-prem or cloud integrations by using the appropriate inbound connectors. Each connector type provides a separate set of additional metrics, as described below in the expandable sections.

Additional metrics provided by Citrix CVAD and DaaS connectors
  • virtualization.desktop_pool

  • virtualization.type

  • virtualization.hostname

  • virtualization.hypervisor_name

  • virtualization.environment_name

  • virtualization.desktop_broker

  • virtualization.disk_image

Additional metrics provided by Microsoft Azure Virtual Desktop connector
  • virtualization.desktop_pool

  • virtualization.type

  • virtualization.hypervisor_name

  • virtualization.instance_size

  • virtualization.region

  • virtualization.environment_name

  • virtualization.desktop_broker

Last updated

Was this helpful?