Try it free

Citrix DaaS & Virtual Apps and Desktops extension

  • Latest Dynatrace
  • Extension
  • Published Oct 27, 2025

Monitor Citrix DaaS & Virtual Apps and Desktops with VDA metrics, session performance, and site health via OneAgent or ActiveGate REST API.

Get started

Overview

Monitor Citrix DaaS and CVAD with this Python-powered extension for virtual apps and desktops visibility.

The all-in-one Citrix DaaS & Citrix Virtual Apps and Desktops extension allows you to monitor your Citrix environments. You can choose to have a holistic view of your Citrix site, monitor individual Virtual Delivery Agent (Citrix VDA) machines, or both.

You can deploy the extension in four different modes: either locally via OneAgent, or remotely via ActiveGate.

ModeDeploymentDescription

Virtual Delivery Agent (VDA)

OneAgent

This mode captures Real User Monitoring data from the individual Virtual Delivery Agents (VDAs). Relevant Windows Performance Counters are also collected. You can monitor the individual user sessions by activating the extension on each Virtual Delivery Agent (VDA). Note that this mode will not collect environment-wide metrics, only real user monitoring (RUM) data for the individual sessions and perform counters.

Powershell SDK

OneAgent

This mode captures metrics about your entire Citrix Environment, including the Citrix Site, using the Citrix Powershell SDK. In this mode the extension runs from a single machine where Citrix Studio (or the Powershell SDK) is installed, usually where Citrix Studio is installed or directly on the Delivery Controller. We recommend using the newer Activegate remote options instead of Powershell SDK.

REST API (DaaS)

ActiveGate

You can connect to Citrix via the REST API and capture metrics about your entire Citrix Environment using the Citrix Rest API. The metrics collected in this mode are the same as in the Powershell SDK configuration, with the exception of licensing and Delivery Controller metrics which don't apply to Citrix DaaS sites.

Managed (On-premise)

ActiveGate

Connect to a local Delivery Controller of a Citrix Virtual Apps and Desktops Citrix Site via the REST API.

Use cases

The use cases of the Citrix DaaS & Virtual Apps and Desktops extension depend on the deployment configuration you choose.

  • Monitor individual user sessions by monitoring Citrix VDAs.
  • Monitor your entire Citrix environment using the Citrix Powershell SDK.
  • Monitor your Citrix Environment using the Citrix Rest API.

Requirements

  • You must have an OneAgent deployed on each VDA.

  • Your Citrix VDA has the Citrix End User Experience Monitoring service enabled and running.

  • Your Citrix VDA can be monitored by the extension.

    To check if a certain VDA can be monitored by the extension:

    1. Start a ICA Session on the VDA via the Citrix Receiver (desktop or individual APplication works).

    2. Run these PowerShell commands on the VDA:

      • Get-WmiObject -Class Citrix_Euem_RoundTrip -Namespace root\citrix\euem
      • Get-WmiObject -Class Citrix_Sessions -Namespace root\citrix\hdx

    The VDA can be monitored by the extension if the commands return data about the user session.

The machine where the extension is running must have the Citrix Powershell SDK installed. This can be accomplished by installing Citrix Studio.

To test that a machine can run this mode, execute the commands below with PowerShell (as a user that can run Citrix Studio):

# replace localhost with the address of your delivery controller if necessary
Add-PSSnapin Citrix.*.Admin.V*
Get-BrokerSite -AdminAddress localhost
  • Your Linux or Windows Activegate can reach the following Citrix DaaS endpoints
    • For US, EU or APAC: https://api.cloud.com
    • For Japan: https://api.citrixcloud.jp
  • An API Client ID and Secret with Read Only Administrator scope.
  • You have the Citrix Customer ID. It can be obtained from the API Client creation or from the cloud console.

Compatibility information

Citrix DaaS (any version) or Citrix Virtual Apps and Desktops (formerly Citrix XenApp/XenDesktop) version 7.5+

Citrix Virtual Apps and Desktops 7 2209+

Activation and setup

  1. Install OneAgent on the golden (or master) image.

  2. Make sure to set the host ID source, for example you can set it to fqdn.

  3. Activate the Citrix Extension on that machine.

    This will distribute the extension binary to that machine, making the deployment much faster later since the extension binary will be available on all VDAs created by this machine.

    1. Create a new custom application.

      1. Navigate to Deploy Dynatrace > Monitor a custom application.
      2. Define your application.
        • Give your application a descriptive name
        • Choose an icon.
      3. Select Monitor custom application.
      4. Select Instrumentation wizard.
      5. Keep a note of the Application ID that is generated for your custom application.
    2. Create a monitoring configuration

      1. Go to Infrastructure > Extensions > Citrix Virtual Apps and Desktops and select Create monitoring configuration.
      2. Define your monitoring configuration.
        • Select which hosts you want to monitor. These are your Citrix VDAs.

          We recommend you make use of host groups, management zones, or tags to make this easier to manage. For example, all VDAs of a farm could have their own host group.

        • Monitoring Mode: Citrix VDA

        • Custom Application ID The ID of the custom application you created in the previous step

        • Capture User Data: whether to capture Usernames and IP Addresses or not

After a couple of minutes, if ICA sessions are running on these VDAs, you should see data being captured in the custom application you created.

  1. Go to Infrastructure > Extensions > Citrix Virtual Apps and Desktops and select Create monitoring configuration.
  2. Select the host you want the extension to run from. It's the one where the Powershell SDK is available.
  3. Define your monitoring configuration.
    • Monitoring Mode: Citrix Powershell SDK
    • Username: A user that can run the Citrix powershell SDK commands; it can include a domain, for example: my.company\my.user
    • Password: The password for the user
    • Metric collection frequency: How often metrics should collect data

After a couple of minutes, metrics are ingested for your Citrix environment. You can use the built-in dashboard to access these metrics.

  1. Go to Infrastructure > Extensions > Citrix Virtual Apps and Desktops and select Create monitoring configuration.
  2. Select Monitor remotely and choose an ActiveGate group that is capable of reaching the DaaS endpoints. Note that you can also configure a proxy later.

You can store the credentials either directly in the extension settings or via Dynatrace Credential Vault.

Metrics will arrive to your environment and can be seen in the overview dashboard. Note that:

  • With Citrix DaaS you don't manage Delivery Controllers; these entities will not be created in Dynatrace.
  • The site entity will not report the licensing metrics that don't apply to Citrix DaaS.

Details

Licensing and cost

The extension ingests Real User Monitoring data. Each Citrix ICA session corresponds roughly to one Dynatrace user session, although ICA sessions longer than two hours will be split by Dynatrace into multiple user sessions.

The formula for the DDUs consumed is the sum of:

  • 4 * <sites>
  • 5 * <controllers>
  • 11 * <groups>
  • 5 * <catalogs>
  • 9 * <desktops>

multiplied by 525.6 DDUs per year.

Example:

  • 1 Site
  • 1 Controller
  • 20 Groups
  • 12 Catalogs
  • 160 Machines

Will consume: (4) + (5) + (11*20) + (5*12) + (9*160) * 525.6 = 908,762.4 DDUs per year.

DaaS has a similar formula, except that it doesn't have metrics for the delivery controllers:

  • 4 * <sites>
  • 11 * <groups>
  • 5 * <catalogs>
  • 9 * <desktops>

Example:

  • 1 Site
  • 20 Groups
  • 12 Catalogs
  • 160 Machines

Will consume: ((4) + (11*20) + (5*12) + (9*160)) * 525.6 = 906,134.4 DDUs per year.

Feature sets

When activating your extension using monitoring configuration, you can limit monitoring to one of the feature sets. To work properly, the extension has to collect at least one metric after the activation.

In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.

All metrics that aren't categorized into any feature set are considered to be the default and are always reported.

A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.

Site Metrics
Metric nameMetric keyDescription
Active Sessionscitrix.broker_site.licensed_sessions_activeThe count of active licensed sessions
Unique Userscitrix.broker_site.total_unique_license_usersThe total count of license users
License Modelcitrix.broker_site.license_modelThe licensing model in use. Values can be 0 - 'Concurrent' or 1 - 'UserDevice'
Broker Service Statuscitrix.broker_site.service_statusEnables the status of the Broker Service on the controller to be determined. If the service has multiple data stores it will return the overall state as an aggregate of all the data store states. 1 - DBUnconfigured 2 - DBRejectedConnection 3 - InvalidDBConfigured 4 - DBNotFound 5 - DBMissingOptionalFeature 6 - DBMissingMandatoryFeature 7 - DBNewerVersionThanService 8 - DBOlderVersionThanService 9 - DBVersionChangeInProgress 10 - OK 11 - PendingFailure 12 - Failed 13 - Unknown
Controller Metrics
Metric nameMetric keyDescription
VDAs Registeredcitrix.broker_controller.desktops_registeredThe number of VDA machines registered with the Broker service on the controller
Licensing Server Statecitrix.broker_controller.licensing_server_stateThe licensing server state currently in effect in the Broker service on the controller ServerNotSpecified (0), NotConnected (1), OK (2), LicenseNotInstalled (3), LicenseExpired (4), Incompatible (5), Failed (6)
Statecitrix.broker_controller.stateThe state of the Broker service on the controller (0) Failed, (1) Off, (2) On, (3) Active.
Licensing Server Last Event Timecitrix.broker_controller.last_licensing_server_timeTime at which the last significant licensing server event was reported
Active Servicescitrix.broker_controller.active_servicesThe Broker site services active on the controller
Desktop Metrics
Metric nameMetric keyDescription
Session Statecitrix.broker_desktop.session_stateValid values are null, Other, PreparingSession, Connected, Active, Disconnected, Reconnecting, NonBrokeredSession, and Unknown. Session properties are always null for multi-session machines.
Power Statecitrix.broker_desktop.power_stateGets machines with a specific power state. Valid values are Unmanaged (0), Unknown (1), Unavailable (2), Off (3), On (4), Suspended (5), TurningOn (6), TurningOff (7), Suspending (8), and Resuming (9).
Registration Statecitrix.broker_desktop.registration_stateGets machines in a specific registration state. Valid values are Unregistered (0), Initializing (1), Registered (2), and AgentError (3).
Summary Statecitrix.broker_desktop.summary_stateIndicates the overall state of the desktop associated with the machine. The overall state is a result of other more specific states such as session state, registration state and power state. Possible values: Off (0), Unregistered (1), Available (2), Disconnected (3), InUse (4), Preparing (5).
In Maintenance Modecitrix.broker_desktop.in_maintenance_modeDenotes if the machine is in maintenance mode.
Sessionscitrix.broker_desktop.sessionsCount of number of sessions on the machine.
Fault Statecitrix.broker_desktop.fault_stateSummary state of any current fault state of the machine. Can be one of the following: (0) None - No fault; machine is healthy. (1) FailedToStart - Last power-on operation for machine failed. (2) StuckOnBoot - Machine does not seem to have booted following power on. (3) Unregistered - Machine has failed to register within expected period, or its registration has been rejected. (4) MaxCapacity - Machine is reporting itself at maximum capacity.
Load Indexcitrix.broker_desktop.load_indexGives current effective load index for multi-session machines
Load Indexes "Gives the last reported individual load indexes that were used in the calculation of the LoadIndex value. Note that the LoadIndex value may have been subsequently adjusted due to session brokering operations. This value is only set for multi-session machines"citrix.broker_desktop.load_indexes—
Group Metrics
Metric nameMetric keyDescription
Desktops Availablecitrix.broker_group.desktops_availableThe number of machines in the delivery group in state Available; this is the number of machines with no sessions present.
Desktops Faultedcitrix.broker_group.desktops_faultedThe number of machines in the delivery group whose FaultState is not None.
Desktops Preparingcitrix.broker_group.desktops_preparingThe number of machines in the delivery group whose PvD disk image is being prepared.
Desktops Unregisteredcitrix.broker_group.desktops_unregisteredThe number of machines in the delivery group that are currently unregistered.
Desktops In Usecitrix.broker_group.desktops_in_useThe number of machines in the delivery group in state InUse; this is the number of machines with at least one session present.
Desktops Disconnectedcitrix.broker_group.desktops_disconnectedThe number of disconnected sessions present on machines in the delivery group.
Desktops Totalcitrix.broker_group.total_desktopsTotal number of machines in the delivery group.
Desktops Never Registeredcitrix.broker_group.desktops_never_registeredThe number of machines in the delivery group that have never registered with the current site
Sessionscitrix.broker_group.sessionsThe total number of user sessions currently running on all of the machines in the delivery group.
Applicationscitrix.broker_group.total_applicationsTotal number of applications associated with the delivery group.
Application Groupscitrix.broker_group.total_application_groupsTotal number of application groups associated with the delivery group.
Catalog Metrics
Metric nameMetric keyDescription
Assignedcitrix.broker_catalog.assignedThe number of assigned machines (machines that have been assigned to a user/users or a client name/address).
Availablecitrix.broker_catalog.availableThe number of available machines (those not in any delivery group).
Available Unassignedcitrix.broker_catalog.available_unassignedThe number of available machines (those not in any delivery group) that are not assigned to users.
Unassignedcitrix.broker_catalog.unassignedThe number of unassigned machines (machines not assigned to users).
Usedcitrix.broker_catalog.usedThe number of machines in the catalog that are in a delivery group.

FAQ and Troubleshooting

How to obtain a detailed error log?

To obtain a detailed error log, create an ActiveGate diagnosis.

Hub

Explore in Dynatrace Hub

Monitor Citrix DaaS & Virtual Apps and Desktops with VDA metrics, session performance, and site health via OneAgent or ActiveGate REST API.

Related topics

  • Dynatrace blog - Optimize Citrix platform performance and user experience
Related tags
ComputePythonVirtual desktopCitrixInfrastructure Observability