Analytics 中的历史数据表示形式

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

可以指定特定实体集来报告历史数据或创建趋势报告。 了解 Analytics 如何记录历史数据对于确保可以跟踪和报告感兴趣的数据非常重要。

支持历史报告的实体集

下表介绍了可用于创建历史或趋势报告的实体集。

EntitySet 说明 示例报表
WorkItemBoardSnapshot (复合) 每个日历日期上每个工作项的状态,包括看板位置。 (CFD) 示例报表的累积流程图
WorkItemRevisions 所有历史工作项修订,包括当前修订。 不包括已删除的工作项。 返回特定工作项的历史记录
WorkItemSnapshot (复合) 每个日历日期上每个工作项的状态。 Bug 趋势示例报告
ParallelPipelineJobsSnapshot (复合) 支持了解并行管道消耗。
TaskAgentPoolSizeSnapshots (复合) 支持了解池大小、管道作业和并发性。 代理池的历史图
TaskAgentRequestSnapshots (复合) 支持报告任务代理请求。
TestPointHistorySnapshot (复合) 与 TestRun 关联的特定测试的单个执行结果。 手动测试执行趋势示例报告
TestResultsDaily TestResult 执行的每日快照聚合,按 Test 分组。 测试摘要趋势示例报表

快照提供每天为实体类型定义的值的记录。 记录每天在同一时间写入 Analytics 一次。 如果要生成趋势报告,请使用快照。 默认情况下,所有快照表都建模为每日快照事实数据表。 如果查询某个时间范围,它将获取每天的值。 较长的时间范围会导致大量记录。 如果不需要如此高的精度,可以使用每周甚至每月快照。

定期快照事实数据表

分析将历史数据建模为定期快照事实数据表。 事实数据表包含在每个时间段结束时为每个工作项或实体类型在午夜创建的一行。 例如,每日时段的历史记录被建模为每天午夜的一行,而每周时段是一周最后一天午夜的一行。 如果一周尚未完成,则周的快照值基于当前值。

此表的粒度是句点,而不是单个工作项。 这意味着 单个工作项将多次出现,每个历史时间段一次。 选择过去 30 天的历史记录将导致单个工作项在数据模型中出现 30 次。 如果工作项在过去 30 天内未更改,则每天复制工作项的最新修订。

使用 Power BI 数据连接器和历史数据时,建议使用 Date 字段。 如果数据集包含历史数据,但只需要当前值,则可以通过筛选 Is Current进行设置

例如,如果要显示工作项表以及关联字段的值,则可以使用 Is Current 作为设置为 True 的筛选器。 如果要改为基于状态显示工作项的趋势,则可以在可视化效果的“轴”中包含 “日期” 列。

提示

使用 “日期” 列时,始终使用“日期”选项。 “日期”字段不用于支持 Power BI 中的默认层次结构。

Power BI 选项的“日期”菜单

工作项修订

每次更新工作项时,系统都会创建一个新的修订,并在 字段中记录此操作 System.RevisedDate ,这使得它可用于指定历史记录筛选器。 修订日期由 RevisedDate (DateTime) 和 RevisedDateSK (Int32) 属性表示。 为获得最佳性能,请使用后一个日期代理键。 它表示修订的创建日期,或者对于活动修订或不完整修订,该日期为 null。

如果需要自 (含)以来 {startDate} 的所有日期,请将以下筛选器添加到查询。

RevisedDateSK eq null or RevisedDateSK gt {startDateSK}

使用 WorkItemRevisions 实体集加载给定工作项的所有修订。 该查询返回筛选工作项的所有历史工作项修订,包括当前修订。 它不包括已删除的工作项。

提示

若要创建工作跟踪趋势报表,请创建或修改默认 的“分析”视图 ,并在“ 历史记录 ”选项卡中指定感兴趣的时间范围。若要了解详细信息,请参阅 创建分析视图

分析视图以及“进度”和“烧毁”小组件都允许你配置筛选器,以将数据集范围限定为你的需求。 应用筛选器以将数据范围限定为特定团队、工作项类型或积压工作。 筛选器还可能应用于特定属性或字段及其相应的值。 例如,可以对工作项应用筛选器,以仅返回为 Fabrikam Voice 团队定义且标记为 “客户”的 bug。

如何将筛选器应用于历史数据

筛选器应用于工作项的每个修订。 例如,假设我们有一个具有以下修订的工作项:

转速# 修订日期 ID 标题 状态 区域路径 Tags
1 Jan-01 1001 bug 新建
2 Jan-02 1001 bug 新建 /海军 上将
3 1 月 10 日 1001 bug 活动 /海军 上将
4 1 月 12 日 1001 bug 活动 /海军 上将 客户
5 1 月 20 日 1001 bug 已解决 /海军 上将 客户
6 (当前) 1 月 28 日 1001 bug 已关闭 /海军 上将 客户

最新修订 (#6) 是工作项的当前修订。 在分析视图中,如果在“历史记录”选项卡中选择了“仅当前”,则会获得此工作项的一行数据,即当前行。

报告历史记录时,我们可能会拉取修订 1 到 6 进行报告。

假设在创建分析视图或配置燃尽小组件时,设置以下两个筛选器:

  • 区域路径 = /Admirals
  • 标记包含 Customer

将这些筛选器应用于工作项修订集会生成以下匹配项:

匹配? 转速# 修订日期 ID 标题 状态 区域路径 标记
“不匹配”图标。 1 Jan-01 1001 bug 新建
“不匹配”图标。 2 Jan-02 1001 bug 新建 /海军 上将
“不匹配”图标。 3 1 月 10 日 1001 bug 活动 /海军 上将
匹配的图标。 4 1 月 12 日 1001 bug 活动 /海军 上将 客户
匹配的图标。 5 1 月 20 日 1001 bug 已解决 /海军 上将 客户
匹配的图标。 6 (当前) 1 月 28 日 1001 bug 已关闭 /海军 上将 客户

修订 1、2 和 3 不匹配,因为这些修订与筛选器不匹配。 在修订版 4 或 1 月 12 日之前,上述工作项不会显示在数据集或趋势图中。

假设你想要报告活动 bug 的趋势,则会创建“状态 = 活动”筛选器。 这些筛选器将匹配以下修订:

匹配? 转速# 更改日期 ID 标题 状态 区域路径 标记
“不匹配”图标。 1 Jan-01 1001 bug 新建
“不匹配”图标。 2 Jan-02 1001 bug 新建 /海军 上将
匹配图标。 3 1 月 10 日 1001 bug 活动 /海军 上将
匹配图标。 4 1 月 12 日 1001 bug 活动 /海军 上将 客户
“不匹配”图标。 5 1 月 20 日 1001 bug 已解决 /海军 上将 客户
“不匹配”图标。 6 (当前) 1 月 28 日 1001 bug 已关闭 /海军 上将 客户

筛选器仅匹配工作项的修订版 3 和 4,并且仅在趋势图中包含 1 月 10 日和 1 月 12 日修订。

这对于 Burndown 或 Burnup 意味着什么?

配置用于筛选给定 标记 ((例如“Customer”) )的 Burndown 或 Burnup 小组件时,在为工作项定义 标记 的日期之前,工作项不会显示在燃尽中。 如果随时从工作项中删除 了标记 ,则工作项在删除 Tag 的日期之后已从燃尽状态。

一些人假设,如果工作项的当前版本具有 标记,则它将从一开始就追溯地包含在燃尽中。 例如,如果工作项的当前版本具有标记“Customer”,则假定工作项将从创建工作项的点起包含在燃尽中。

这不是历史筛选的工作原理。 如果筛选器仅基于工作项的当前版本应用,则趋势图将不起作用。 无法通过删除标记或将区域路径设置为另一个团队的区域路径,从燃尽中删除项目。

注意

我们正在考虑将“曾经”操作数添加到 分析视图 和小组件(如 Burndown/Burnup)中的筛选条件。 使用此功能可以创建一个筛选器,例如:“State Was Ever Active”。 这意味着,如果工作项的任何修订曾经有 State = Active,则工作项修订将匹配筛选条件。 如果你认为此功能很重要,可以在我们的开发者社区网站上投票支持它

历史数据以及暂停或禁用 Analytics

暂停分析会保留数据,但会阻止暂存作业更新数据。 可以稍后恢复服务,然后更新数据。

如果管理员禁用 Analytics,则禁用所有 Analytics 暂存作业,并删除存储在 Analytics 表中的 Analytics 数据。 捕获历史趋势的所有 Analytics 数据都将丢失。 它不会删除集合中存储的任何其他数据。 不能撤消此操作。 删除历史数据和趋势数据后,将无法还原。 重新启用 Analytics 不会还原历史数据。

禁用或删除 Analytics 后,将执行以下操作:

  • 不会运行任何暂存作业,并且 Analytics 表不会包含更新的信息。
  • 删除表数据,如果重新启用 Analytics,将从头开始重新填充所有数据。

若要了解详细信息,请参阅 安装或启用 Analytics 服务

总结

为了重申,在报告历史数据时,所有筛选器都应用于工作项在历史时间点的版本。 当工作项满足筛选条件时,它们将显示在趋势中。 当它们不再满足筛选条件时,它们将从趋势中消失。