成本优化
Citrix Director 现推出一项名为“成本优化”的新功能,可帮助您有效分析虚拟机和会话的使用情况。此功能提供有关如何优化成本的富有洞察力的可视化表示。它还有助于您消除不必要的计算机,从而降低成本。
-
为支持成本优化,还引入了以下警报:
- 启动操作失败和关闭操作失败
- 计算机正常运行时间警报
您还可以检查最近执行过电源操作的计算机,以分析导致用户问题的启动失败和增加成本的关闭失败。有关详细信息,请参阅检查最近执行过电源操作的计算机部分。
-
在“主页”上的左侧菜单中单击“成本优化”选项卡,以访问“成本优化”页面。
-

-
在“成本优化”主页上,您可以执行以下操作:
- 入门链接 - 访问此链接可了解有关成本优化功能的更多信息。
- 查看成本优化页面 - 您可以在“成本优化”页面上提供反馈
- 刷新数据。
- 查看警报 - 您可以查看严重警报和警告警报。
“成本优化”页面包括以下功能:
如何计算成本优化费用
每台计算机每小时的成本以管理程序支持的货币显示。本节介绍如何计算 Azure 计算机和其他计算机的成本。
Azure 计算机的成本
成本计算的优先级顺序如下:
- 当 “Microsoft.Consumption/pricesheets/read” 权限可用时,有效价格将以 Azure 订阅中配置的货币显示。
- 如果权限不可用,则显示 Azure 零售价格。有关详细信息,请参阅Azure 零售价格概述。
- 当有效价格或零售价格不可用时,将根据管理员在 Web Studio 中输入的成本显示成本。
- 如果 Web Studio 中未提及成本,则默认成本为 1 美元。
要查找 Azure 帐户详细信息并添加查找有效价格所需的权限,请执行以下操作:
-
- 导航到 Citrix DaaS。
- 单击“托管”选项卡以查找托管连接帐户。
-
查找“托管”选项卡中提及的“应用程序 ID”。

- 转到 Microsoft Entra ID 并查找步骤 3 中记下的“应用程序 ID”。
- 转到“订阅”>“访问控制 (IAM)”> 选择为托管连接 SPN 配置的自定义角色。
如果 Microsoft.Consumption/pricesheets/read 不可用,则显示 Azure 零售价格。现在,您可以使用零售价格 API 获取所有 Azure 服务的零售价格。以前,检索 Azure 服务价格的唯一方法是使用 Azure 定价计算器或 Azure 门户。有关详细信息,请参阅Azure 零售价格概述。
计算非 Azure 计算机的成本
对于其他计算机,成本将根据管理员在 Web Studio 中输入的成本显示。如果 Web Studio 中未提及成本,则默认成本为 1 美元。
导出数据
您可以使用数据集成和 ODATA 查询导出“成本优化”页面上的数据。要导出数据,请在“成本优化”页面上单击“导出数据”,将显示以下选项:
- 设置数据集成
-
成本优化的 ODATA 查询

设置数据集成
您可以将成本优化数据与 Monitor Service API 集成,从而收集数据以进行故障排除和问题分类。有关详细信息,请参阅集成和数据导出页面。
成本优化的 ODATA 查询
您可以使用“成本优化”页面上提供的 ODATA 示例查询来导出数据。
ODATA 入门
以下链接可帮助您开始使用 ODATA:
- ODATA 概述
- 使用 Citrix Cloud 中的 OData v4 端点访问 Citrix Monitor Service 数据的不同方法
- 在 Citrix Monitor Service 数据中使用 OData V4 聚合查询
- 如何使用 OData 和 API 客户端将 PowerBI 连接到 DaaS Monitor
- 使用 Postman 获取登录持续时间较长的用户详细信息
- 如何访问 Monitor Service 数据
- 数据访问协议
- Monitor 模型
- Monitor 通知
ODATA 示例查询
查找未使用的 VDA
要查找未使用的 VDA,您必须提供桌面组 ID、VDA 的开始日期和结束日期。
有关减少未使用的资源开支的详细信息,请参阅工作负载规模调整。
示例查询:
https://<DDC URL>/monitorodata/ResourceUtilizationSummary?$apply=filter(DesktopGroupId eq desktop-group-id and granularity eq 1440 and SummaryDate ge startdate and SummaryDate lt enddate)/groupby((MachineId), aggregate(cast(TotalSessionCount, Edm.Int32) with average as AvgTotalSessionCount))/filter(AvgTotalSessionCount eq 0.0)/aggregate($count as UnusedVDACount)
<!--NeedCopy-->
查找每日平均正常运行时间(分钟)
要查找每日平均正常运行时间(分钟),您必须提供以下信息:
- 桌面组 ID
- 开始日期
-
结束日期
- 结束日期与开始日期之间的天数差。
有关减少未使用的资源开销的更多信息,请参阅工作负载规模调整。
示例查询:
https://[<DDC URL>|https://api-us.cloud.com/monitorodata/ResourceUtilizationSummary?$apply=filter(DesktopGroupId] /monitorodata/ResourceUtilizationSummary?$apply=filter(desktopGroupId eq desktop-group-id and granularity eq 1440 and SummaryDate ge startdate and SummaryDate lt enddate)/groupby((MachineId), aggregate(cast(UptimeInMinutes, Edm.Int32) div day-difference with sum as TotalUptimeInMinutes))/aggregate(TotalUptimeInMinutes with average as DailyAverageUptimeInMinutes)
<!--NeedCopy-->
查找失败的计算机电源操作
有关失败的计算机电源操作的更多信息,请参阅失败的开机操作和失败的关机操作。
示例查询:
https:// <DDC URL> /monitorodata/Machines?$filter=LifecycleState eq 0 and DesktopGroup/SessionSupport eq 1 and (cast(LastPowerActionReason,'Edm.Int32') eq 6 or cast(LastPowerActionReason,'Edm.Int32') eq 7 or cast(LastPowerActionReason,'Edm.Int32') eq 8) and (cast(LastPowerActionFailureReason,'Edm.Int32') eq 300 or cast(LastPowerActionFailureReason,'Edm.Int32') eq 402 or cast(LastPowerActionFailureReason,'Edm.Int32') eq 401) and MachineRole eq 0&$orderby=Name&$skip=0&$top=50&$expand=DesktopGroup($select=Name)&$select=Sid,Id,Name,IsAssigned,IPAddress,FaultState,LastDeregisteredCode,FailureDate,CurrentPowerState,CurrentSessionCount,IsInMaintenanceMode,LastPowerActionFailureReason,LastPowerActionCompletedDate
<!--NeedCopy-->
查找总节省
有关成本节省的更多信息,请参阅成本节省页面。
示例查询:
https://[<DDC URL>|https://api-us.cloud.com/monitorodata/ResourceUtilizationSummary?$apply=filter(DesktopGroupId] /monitorodata/MachineCostSavingsSummaries?$apply=aggregate(TotalAmountSaved with sum as TotalAmountSavedSum)
<!--NeedCopy-->
查找计算机状态
有关成本节省的更多信息,请参阅成本节省页面。
示例查询:
https:// <DDC URL> /monitorodata/MachineCostSavingsSummaries?$filter=SummaryDate eq 2024-08-09T06:00:00Z&$select=TotalMachinesCount,PowerManagedMachinesOff,PowerManagedMachinesInHibernate,PowerManagedMachinesOnWithSessions,PowerManagedMachinesOnWithoutSessions
<!--NeedCopy-->

