查询趋势数据
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
检查数据趋势和进行周期内比较是报告和数据分析的重要方面。 Analytics 支持这些功能。
注意
分析服务在所有 Azure DevOps Services 的生产中自动启用和支持。 对 Analytics Service 的 OData 源的 Power BI 集成和访问已正式发布。 我们鼓励你使用它并提供反馈。
可用数据依赖于版本。 支持的最新版本是 v2.0
,最新的预览版本是 v4.0-preview
。 有关详细信息,请参阅 OData API 版本控制。
注意
Azure DevOps Server 2020 及更高版本的所有新项目集合都会自动安装并支持 Analytics 服务。 对 Analytics Service 的 OData 源的 Power BI 集成和访问已正式发布。 我们鼓励你使用它并提供反馈。 如果从 Azure DevOps Server 2019 升级,则可以在升级期间安装 Analytics 服务。
可用数据依赖于版本。 支持的最新版本是 v2.0
,最新的预览版本是 v4.0-preview
。 有关详细信息,请参阅 OData API 版本控制。
注意
Analytics 服务为 Azure DevOps Server 2019 提供预览版。 可以为 项目集合启用或安装它 。 Power BI 集成和分析服务的 OData 源的访问权限处于预览状态。 我们鼓励你使用它并提供反馈。
可用数据依赖于版本。 支持的最新版本是 v2.0
,最新的预览版本是 v4.0-preview
。 有关详细信息,请参阅 OData API 版本控制。
趋势数据在 WorkItemSnapshot 和 WorkItemBoardSnapshot 实体集中公开。 它们被构造为每个工作项,从创建到今天为止,每天都存在。 对于一年前只创建一个工作项的组织,此实体中有 365 行。 对于大型项目,这些实体将不切实际地与客户端工具一起使用。
什么是解决方案? 使用聚合扩展。
在本文中,你将了解:
- 如何构造趋势数据的基本查询
使用 OData 聚合扩展,可以从 Azure DevOps 返回有利于报告的聚合数据。 例如,可以显示 3 月的 bug 趋势。 Bug 趋势是管理任何项目的常见和关键部分,因此你可以将其立即用于良好使用。
注意
本文档中显示的示例基于 Azure DevOps Services URL,需要在 Azure DevOps Server URL 中替换。
https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/
构造趋势数据的基本查询
需要满足一些基本要求才能有效地查询 WorkItemSnapshot 表:
- 按日期筛选数据。
- 聚合应按至少日期进行分组。 否则,响应将发出警告。
创建 bug 趋势报表的查询如以下示例所示:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(DateValue ge 2016-03-01Z and DateValue le 2016-03-31Z and WorkItemType eq 'Bug')/
groupby((DateValue,State), aggregate($count as Count))
&$orderby=DateValue
它返回类似于以下示例的结果:
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 2666
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 51408
}
]
}
此查询最多 31 * (number of bug states)
将生成 。 默认 bug 有三种状态:
- 活动
- 已解决
- 已关闭
大多数情况下,无论实际存在多少条记录,此查询都将返回 93 行。 它提供更紧凑的形式返回数据。
让我们看一下此示例的变体。 你希望看到迭代或以一次迭代开头的发布以及以另一个迭代结尾的 bug 趋势。
若要构造该查询,请执行以下示例:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(WorkItemType eq 'Bug')/
filter(Iteration/IterationName eq 'Sprint 99')/
filter(DateValue ge Iteration/StartDate and (Iteration/EndDate eq null or DateValue le Iteration/EndDate))/
groupby((DateValue, State), aggregate($count as Count))
&$orderby=DateValue
它返回类似于以下示例的结果:
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 320
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 38
}
]
}
在此查询中,有两个关键差异。 我们添加了一个筛选器子句,用于将数据筛选到特定迭代,现在将日期与迭代开始和结束日期进行比较,而不是硬编码日期。
注意
如果在快照表中的查询中未使用聚合,则会看到警告“指定的查询不包含建议用于所有查询的$select或$apply子句”。响应中。
相关文章
- 构造聚合数据查询 以对相关数据组进行计数和分析。