数据粒度和保留
数据值的聚合
Monitor Service 收集各种数据,包括用户会话使用情况、用户登录性能详细信息、会话负载平衡详细信息以及连接和计算机故障信息。数据根据其类别以不同方式聚合。了解使用 OData 方法 API 呈现的数据值的聚合对于解释数据至关重要。例如:
-
连接会话和计算机故障在一段时间内发生。因此,它们以该时间段内的最大值形式公开。
-
登录持续时间是时间长度的度量,因此以该时间段内的平均值形式公开。
-
登录计数和连接故障是该时间段内发生次数的计数,因此以该时间段内的总和形式公开。
并发数据评估
会话必须重叠才能被视为并发。但是,当时间间隔为 1 分钟时,该分钟内的所有会话(无论是否重叠)都被视为并发。间隔的大小如此之小,以至于计算精度所涉及的性能开销不值得其增加的价值。如果会话发生在同一小时内,但不在同一分钟内,则不被视为重叠。
汇总表与原始数据的关联
数据模型以两种不同的方式表示指标:
-
汇总表以每分钟、每小时和每天的时间粒度表示指标的聚合视图。
-
原始数据表示在会话、连接、应用程序和其他对象中跟踪的单个事件或当前状态。
在尝试跨 API 调用或在数据模型本身中关联数据时,了解以下概念和限制非常重要:
-
部分间隔无汇总数据。 指标汇总旨在满足长期历史趋势的需求。这些指标会聚合到汇总表中以用于完整间隔。在数据收集的开始(最旧的可用数据)和结束时,没有部分间隔的汇总数据。当查看一天的聚合(Interval=1440)时,这意味着第一个和最近的不完整天数没有任何数据。尽管原始数据可能存在于这些部分间隔中,但它从不进行汇总。您可以通过从特定汇总表中提取最小和最大 SummaryDate 来确定特定数据粒度的最早和最晚聚合间隔。SummaryDate 列表示间隔的开始。Granularity 列表示聚合数据的间隔长度。
-
按时间关联。 指标会聚合到汇总表中以用于完整间隔,如上一节所述。它们可用于历史趋势,但原始事件的状态可能比为趋势分析汇总的数据更具时效性。任何基于时间的汇总数据与原始数据的比较都必须考虑到,对于可能发生的部分间隔或时间段的开始和结束,没有汇总数据。
-
遗漏和延迟事件。 如果事件在聚合期间被遗漏或延迟,聚合到摘要表中的指标可能会略有不准确。尽管监控服务尝试维护准确的当前状态,但它不会回溯时间来重新计算摘要表中遗漏或延迟事件的聚合。
-
连接高可用性。 在连接高可用性期间,当前连接的摘要数据计数中会出现空白,但会话实例仍将在原始数据中运行。
-
数据保留期。 摘要表中的数据与原始事件数据的清理计划不同。数据可能因已从摘要表或原始表中清理而丢失。不同粒度的摘要数据,其保留期也可能不同。较低粒度的数据(分钟)比较高粒度的数据(天)清理得更快。如果由于清理导致某个粒度的数据丢失,则可能在较高粒度中找到。由于 API 调用只返回请求的特定粒度,因此某个粒度没有数据并不意味着同一时间段内较高粒度的数据不存在。
-
时区。 指标以 UTC 时间戳存储。摘要表按小时时区边界进行聚合。对于不落在小时边界上的时区,数据聚合的位置可能会存在一些差异。
粒度和保留
Director 检索的聚合数据的粒度是所请求的时间 (T) 跨度的函数。规则如下:
-
0 \< T \<= 1 小时 - 使用每分钟粒度
-
0 \< T \<= 30 天 - 使用每小时粒度
-
T \> 31 天 - 使用每日粒度
未从聚合数据中获取的请求数据来自原始会话和连接信息。此类数据往往增长迅速,因此有其自己的清理设置。清理可确保仅保留长期相关的有用数据。清理可确保更好的性能,同时保持报告所需的粒度。Premium 许可站点的客户可以将其清理保留期更改为所需的保留天数,否则将使用默认值。如果与站点数据库失去连接,监控服务将使用下表中指定的 Premium 授权的默认保留天数。
要访问这些设置,请在 Delivery Controller™ 上运行以下 PowerShell 命令:
asnp Citrix.*
Get-MonitorConfiguration
Set-MonitorConfiguration -<setting name> <value>
| # | 设置名称 | 受影响的架构表 | 监控页面中受影响的表和图表 | Premium 的保留天数 | Advanced 的保留天数 |
|---|---|---|---|---|---|
| 1 | GroomSessionsRetentionDays | MonitorData.Session 和 Monitordata.Connection 表 | 此设置会影响趋势页面上的会话详细信息、按用户会话划分的登录持续时间、基于应用程序的使用情况表。 | 90 | 31 |
| 2 | GroomFailuresRetentionDays | MonitorData.MachineFailureLog 和 MonitorData.ConnectionFailureLog | 趋势页面:此设置会影响故障选项卡上的图表和表格。 | 90 | 31 |
| 3 | GroomLoadIndexesRetentionDays | MonitorData.LoadIndex | 此设置会影响趋势页面上“负载评估器索引”选项卡中显示的数据。 | 3 | 3 |
| 4 | GroomDeletedRetentionDays | LifecycleState 为“已删除”的 MonitorData.Machine、MonitorData.Catalog、MonitorData.DesktopGroup 和 MonitorData.Hypervisor 实体。此设置还会删除任何相关的会话、会话详细信息、摘要、故障或负载索引记录。 | LifecycleState 为“已删除”的 Machine、Catalog、DesktopGroup 和 Hypervisor 实体。此设置还会删除任何相关的会话、会话详细信息、摘要、故障或负载索引记录。 | 90 | 31 |
| 5 | GroomSummariesRetentionDays | MonitorData.DesktopGroupSummary、MonitorData.FailureLogSummary 和 MonitorData.LoadIndexSummary | 此设置影响“趋势”页面上的所有图表数据。 | 365 | 31 |
| 6 | GroomMachineHotfixLogRetentionDays | MonitorData.Hotfix | 此设置影响“计算机详细信息”页面上显示的 VDA 热修复数据。 | 90 | 31 |
| 7 | GroomMinuteRetentionDays | 所有摘要表 | 此设置影响“趋势”页面上显示的“最近 2 小时”时间段的图表。 | 3 | 3 |
| 8 | GroomHourlyRetentionDays | 所有摘要表 | 这会影响“趋势”页面上显示的每周图表。 | 32 | 31 |
| 9 | GroomApplicationInstanceRetentionDays | MonitorData.ApplicationInstance | 此设置会影响容量管理选项卡上的图表和表格以及趋势页面上的应用程序使用情况表。 | 90 | 不适用 |
| 10 | GroomNotificationLogRetentionDays | MonitorData.NotificationLog | 此设置会影响 Monitor 上显示的警报。 | 90 | 不适用 |
| 11 | GroomResourceUsageRawDataRetentionDays | MonitorData.Resourceutilization | 此设置影响在“历史计算机利用率”计算机详细信息页面中看到的 CPU 和内存图表,以及成本优化区域“工作负载调整大小”选项卡上的数据计算。 | 3 | 3 |
| 12 | GroomResourceUsageMinuteDataRetentionDays | MonitorData.ResourceUtilizationSummary | 此设置会影响“历史计算机利用率”计算机详细信息页面中显示的“最近 2 小时”时间段的 CPU 和内存图表,以及成本优化区域“工作负载规模调整选项卡”上的数据计算。 | 7 | 7 |
| 13 | GroomResourceUsageHourDataRetentionDays | MonitorData.Resourceutilizationsummary | 此设置影响在“历史计算机利用率”计算机详细信息页面中看到的 CPU 和内存图表,以及成本优化区域“工作负载调整大小”选项卡上的数据计算。 | 30 | 30 |
| 14 | GroomResourceUsageDayDataRetentionDays | MonitorData.Resourceutilizationsummary | 此设置影响在“趋势”页面上的计算机“资源利用率”中以及特定计算机的“计算机利用率”页面中看到的 CPU 和内存图表。 | 365 | 31 |
| 15 | GroomProcessUsageRawDataRetentionDays | MonitorData.ProcessUtilization | 此设置影响显示在计算机历史使用情况页面上的每个进程的资源趋势信息。 | 1 | 1 |
| 16 | GroomProcessUsageMinuteDataRetentionDays | MonitorData.ProcessUtilizationMinuteSummary | 此设置影响“历史计算机利用率”页面上显示的“最近 2 小时”的每个进程的 CPU 和内存使用情况图表。 | 3 | 3 |
| 17 | GroomProcessUsageHourDataRetentionDays | MonitorData.ProcessUtilizationHourSummary | 此设置会影响在计算机历史使用情况页面上显示的每个进程的 CPU 和内存使用趋势。 | 7 | 7 |
| 18 | GroomProcessUsageDayDataRetentionDays | MonitorData.ProcessUtilizationDaySummary | 此设置会影响在计算机历史使用情况页面上显示的每个进程的 CPU 和内存使用趋势。 | 30 | 30 |
| 19 | GroomSessionMetricsDataRetentionDays | MonitorData.Sessionmetrics | 此设置会影响用户详细信息页面“会话性能”选项卡上显示的所有图表。 | 1 | 1 |
| 20 | GroomMachineMetricDataRetentionDays | MonitorData.Machinemetrics | 此设置会影响“趋势”页面上“资源利用率”选项卡中的图表和表格。 | 3 | 3 |
| 21 | GroomMachineMetricDaySummaryDataRetentionDays | MonitorData.MachineMetricDaySummary | 此设置会影响“趋势”页面上“资源利用率”选项卡中的图表和表格。 | 365 | 31 |
| 22 | GroomApplicationErrorsRetentionDays | MonitorData.ApplicationError | 此设置会影响“应用程序”页面上“应用程序错误”列中显示的错误详细信息。 | 1 | 1 |
| 23 | GroomApplicationFaultsRetentionDays | MonitorData.Applicationfailure | 此设置会影响“应用程序”页面上“应用程序故障”列。 | 1 | 1 |
注意:
修改 Monitor Service 数据库上的值需要重新启动服务才能使新值生效。建议您仅在 Citrix 支持的指导下对 Monitor Service 数据库进行更改。
设置 GroomProcessUsageRawDataRetentionDays、GroomResourceUsageRawDataRetentionDays 和 GroomSessionMetricsDataRetentionDays 限制为默认值 1,而 GroomProcessUsageMinuteDataRetentionDays 限制为默认值 3。用于设置这些值的 PowerShell 命令已被禁用,因为进程使用数据往往会快速增长。 此外,基于许可证的保留设置如下:
-
高级版许可站点 - 所有设置的清理保留期限制为 1000 天(Citrix 建议 365 天)。
-
高级许可站点 - 所有设置的清理保留期限制为 31 天。
-
所有其他站点 - 所有设置的清理保留期限制为 7 天。
例外:
-
GroomApplicationInstanceRetentionDays 只能在高级许可站点中设置。
-
GroomApplicationErrorsRetentionDays 和 GroomApplicationFaultsRetentionDays 在高级许可站点中限制为 31 天。
长期保留数据对表大小有以下影响:
-
每小时数据。 如果允许每小时数据在数据库中保留长达两年,一个拥有 1000 个交付组的站点可能导致数据库按如下方式增长:1000 个交付组 × 24 小时/天 × 365 天/年 × 2 年 = 17,520,000 行数据。聚合表中如此大量的数据对性能的影响是显著的。鉴于仪表板数据是从此表中提取的,对数据库服务器的要求可能很高。过大的数据量可能会对性能产生巨大影响。
-
会话和事件数据。 每次会话启动和建立连接/重新连接时收集的数据。对于大型站点(10 万用户),这些数据增长迅速。例如,这些表两年的数据量将超过 1 TB,需要高端企业级数据库。