Citrix DaaS

Autoscale plug-in

Autoscale plug-in is a plug-in model where you can take direct action on the power management of VMs. You can deviate from the standard Autoscale settings related to the power management of VMs and instead have different settings for different scenarios. Currently, the plug-ins that you can use are:

Autoscale holiday plug-in

You can use the Autoscale holiday plug-in to handle different settings for holidays. For example, for weekdays you want most of the VMs to be powered on and by default, on public holidays, the weekday schedule is applied. To handle such scenarios, this plug-in allows VMs to be powered off on specified holiday dates.

Create custom holiday schedules using Studio

Use Studio to create custom schedules to turn off unused VMs in a delivery group on specific days, like holidays, to reduce unnecessary resource consumption.

Note:

The custom schedule takes effect one day after creation.

Create a custom schedule

  1. In Studio, go to Delivery groups. Right-click a delivery group and select Manage Autoscale.
  2. On the General page, select Enable Autoscale.
  3. On the Schedule page, click Create schedule.
  4. Enter a name for the schedule.
  5. Select one or multiple dates on which you want the VMs in the delivery group to be turned off.

    Create custom schedule using Studio

  6. If you want to save this schedule as a template for use with other delivery groups, click Save as template.
  7. Click Done to create the custom schedule.

    You must now see the custom schedule created under Custom on the Schedule page.

Edit a custom schedule

  1. Click the pencil icon under Actions for the schedule you want to edit. You can do the following edits:

    • Disable the custom schedule: switch off the Enable toggle button.
    • Change or apply a template.
    • Change the name of the schedule.
    • Change the dates of the schedule.
  2. Click Done to apply the changes.

You can also delete a custom schedule.

Note:

Deleting a delivery group also deletes its custom schedules. Saved templates are not deleted.

Configure holiday dates using PowerShell

Associate the Autoscale holiday plug-in with a delivery group and configure the holiday dates so that the plug-in can allow VMs to be powered off on the configured dates. To achieve this, run the following commands:

  1. Run Get-BrokerAutoscalePlugin to get the UID of the holiday plug-in.

    (Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.HolidaySchedule).Uid
    <!--NeedCopy-->
    

    Note the UID value of the HolidaySchedule plug-in. Let’s assume that the HolidaySchedule plug-in has UID 1.

  2. Get the UID of the delivery group with which you want to associate the plug-in. For example:

    $dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid
    <!--NeedCopy-->
    
  3. Associate the HolidaySchedule plug-in with the delivery group (-AutoscalePluginUid “<HolidaySchedule plugin value>”) and specify the required holiday dates. For example:

    New-BrokerAutoscaleGroupPlugin -Name "Company Holidays" -DesktopGroupUid $dgUid -AutoscalePluginUid 1 -Configuration '{"Holidays":["2024-11-28","2024-11-29","2024-12-25"]}'
    <!--NeedCopy-->
    

    Note the UID of the AutoscaleGroupPlugin created (the association between the plug-in and the delivery group).

    Note:

    The name for the association must be unique among the associations for a given delivery group. For example, there can only be one association called “Company Holidays” for one delivery group, but one or more other delivery groups might also have associations called “Company Holidays”.

Change the holiday dates

You can change the specified holiday dates using the Set-BrokerAutoscaleGroupPlugin PowerShell commands and specifying the UID of the AutoscaleGroupPlugin. For example, let’s assume that the AutoscaleGroupPlugin has UID 2.

Set-BrokerAutoscaleGroupPlugin 2 -Configuration '{"Holidays":["2024-11-28","2024-11-29"]}'
<!--NeedCopy-->

Important considerations

Consider the following when working with the Autoscale holiday plug-in:

  • When the Autoscale holiday plug-in is active, all VDAs are off, and the system doesn’t operate at a reduced capacity. Any new launch requests are processed, however user might experience a delay due to the VDA being prepared for launch.
  • The delivery group must have a timezone specified.
  • The date format must be “yyyy-mm-dd”.
  • Schedule overrides (overrides a standard Autoscale setting) are generated a day in advance at 22:00 on the previous day. After 22:00 it’s not possible to add, remove, or change any schedule override for the following day.
  • The same Autoscale plug-in can be associated with multiple delivery groups. Run the New-BrokerAutoscaleGroupPlugin for each delivery group, and then configure the holidays required for that group.
  • The latest Set-BrokerAutoscalePlugin -Configuration command overwrites all existing holidays with the new holidays specified.

Intelligent Autoscale schedules plug-in

Intelligent Autoscale is a data driven Autoscale feature with minimum administrative settings that allows you to configure the performance target of a delivery group. The performance target value ranges from 1 to 99 and the value specifies a target balance between user experience and cost:

  • A low value prioritizes cost savings.
  • A high value prioritizes user experience.

The performance target, combined with historical usage data, calculates an optimal buffer capacity (the number of VMs to be powered on) for each 30-minute block of a day. Therefore, 48 optimal buffer capacities are computed at the start of each day.

The optimal buffer capacity replaces peak/off-peak buffer capacity and pool size to manage available machines.

The historical usage data are used to calculate the optimal buffer capacity are:

  • The customer’s logon rate in users per minute
  • The average VM power-on time, in minutes
  • The average VM density, in users per VM.

Prerequisites

Following are the requirements for the Intelligent Autoscale to be enabled:

  • The delivery group must be a shared delivery group.
  • The delivery group must be Autoscale enabled.
  • The delivery group must have at least 90 days worth of historical data before configuring the intelligent Autoscale for a desktop group. You can increase the ConnectionLogLifetimeHours from 48 hours to 90 days by using the command:

     Set-BrokerServiceConfigurationData Logging.ConnectionLogLifetimeHours -SettingValue 2160.
     <!--NeedCopy-->
    

Important considerations

  • The delivery group must have a timezone specified.
  • Schedule overrides are generated a day in advance at 22:00 on the previous day. After 22:00 it’s not possible to add, remove, or change any schedule override for the following day.
  • The same Autoscale plug-in can be associated with multiple delivery groups. Run the New-BrokerAutoscaleGroupPlugin for each delivery group, and then configure the performance target required for that group.
  • The latest Set-BrokerAutoscalePlugin -Configuration command overwrites all existing holidays with the new holidays specified.

Configure performance target

Associate the IntelligentAutoscaleSchedules plug-in with a delivery group and configure performance target so that the performance target combined with historical usage data can calculate an optimal buffer capacity for each 30-minute block of a day. To achieve this, run the following commands:

  1. Run Get-BrokerAutoscalePlugin to get the UID of the Intelligent Autoscale plug-in. Note the UID value of the IntelligentAutoscaleSchedules plug-in.

    (Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.IntelligentAutoscaleSchedules).Uid
    <!--NeedCopy-->
    

    Let’s assume that the IntelligentAutoscaleSchedules plug-in has UID 2.

  2. Get the UID of the delivery group with which you want to associate the plug-in. For example:

    $dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid
    <!--NeedCopy-->
    
  3. Associate the IntelligentAutoscaleSchedules plug-in with the delivery group (-AutoscalePluginUid “<IntelligentAutoscaleSchedules value>”) and specify the performance target value.

    New-BrokerAutoscaleGroupPlugin -DesktopGroupUid $dgUid -AutoscalePluginUid 2 -Configuration '{"PerformanceTarget":70}'
    <!--NeedCopy-->
    
  4. Note the UID of the AutoscaleGroupPlugin created (the association between the plug-in and the delivery group).

Update performance target value

You can update the specified performance target value using the Set-BrokerAutoscaleGroupPlugin PowerShell command and specifying the UID of the AutoscaleGroupPlugin. For example, let’s assume that the AutoscaleGroupPlugin has UID 2.

Set-BrokerAutoscaleGroupPlugin 2 -Configuration '{"PerformanceTarget":70}'
<!--NeedCopy-->

Configure Autoscale Group plug-in auto-approval

To allow schedule override (overrides a standard Autoscale setting) configure the following two properties in the BrokerAutoscaleGroupPlugin:

  • AutoApprove

    • If True: Indicates that any schedule override produced by the plug-in is automatically accepted.
    • If False: The schedule is only accepted if the target date is on or before the date specified in ApprovedUntil properties.

    If AutoApprove is False and the ApprovedUntil date is not set, or is in the past, then any schedule override produced is discarded without being used.

  • ApprovedUntil:

    • If AutoApprove is False, and you specify ApprovedUntil date, then the schedule override produced by the plug-in is automatically accepted as the schedule for the target date.

For example, let’s assume that the AutoscaleGroupPlugin has UID 2.

  • To enable auto-approval for that desktop group:

     Set-BrokerAutoscaleGroupPlugin 2 -AutoApprove $true
     <!--NeedCopy-->
    
  • To enable auto approval until some date in the future:

     Set-BrokerAutoscaleGroupPlugin 2 -ApprovedUntil "2025-01-01"
     <!--NeedCopy-->
    
Autoscale plug-in