分析最佳做法
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Analytics 是 Azure DevOps 的报告平台,可用于从数据获取见解并做出数据驱动决策。 分析针对快速读取访问和基于服务器的聚合进行了优化,并提供各种工具来可视化和分析数据。 在本文中,我们分享了在 Azure DevOps 中使用 Analytics 的一些最佳做法。
先决条件
- Access:至少是具有基本访问权限的项目的成员。
- 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
- 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。
- 如果你是扩展开发人员,请确保查看 OData Analytics 查询指南。
熟悉 Analytics 元数据
查询 Analytics 元数据,以熟悉实体类型、实体集、属性和枚举列表。 有关详细信息,请参阅查询 Azure Boards 的分析服务、Analytics OData 元数据和实体和属性参考。
构建查询以返回所需的数据
若要查询创建报表所需的最小数据集,请遵循以下做法:
选择实体集以支持报表
虽然 Analytics 数据模型中支持多个 EntitySets
,但只有少数用于生成报表。EntitySets
用于生成报表分为三类:
- 当前:包含有关 中包含的
EntitySet
当前配置EntityTypes
的信息。 - 快照:合并历史数据和日期相关数据的复合实体。 快照实体用于支持聚合报表。
- 修订:包含历史信息。 例如,
WorkItemRevision
维护有关工作项历史记录的数据。
下面是用于指定支持报表的 EntityTypes 的快速参考。 有关每个 EntityType 的说明,请参阅 用于分析的数据模型。
Azure DevOps 数据 | 当前 | 快照 | 修订 |
---|---|---|---|
Azure Boards | WorkItems |
WorkItemSnapshot WorkItemBoardSnapshot |
WorkItemRevisions |
Azure Pipelines | Pipelines PipelineTasks |
ParallelPipelineJobsSnapshot PipelineRuns , PipelineRunActivityResults |
|
Azure Pipelines 和测试 | TestResultsDaily |
TestRuns |
|
Azure Test Plans | Tests TestConfiguration TestPoints WorkItems |
TestResultsDaily TestPointHistorySnapshot |
按查询部件执行的顺序指定查询部件
各种查询部件的建议顺序是按以下顺序指定它们,即计算它们的顺序。 有关每个查询部件的说明,请参阅 “查询分析服务”和“查询”选项。
$apply
$filter
$orderby
$expand
$select
$skip
$top
所有查询都必须包含或$apply
$select
子句,否则可能会收到警告消息。
限制在查询中请求的列
指定使用 $select
子句返回的数据列。 通过自定义,工作项可以有多个与之关联的字段。 查询引用的属性或字段越多,处理成本就越高。 请考虑要生成的报表,并确保仅请求所需的字段。
例如,若要返回筛选的工作项集的 ID、工作项类型、标题和状态字段,请指定以下$select
子句: $select=WorkItemId, WorkItemType, Title, State
若要查找属性列表及其相应的字段名称,请参阅 Azure Boards 的实体和属性参考。
创建预览查询
预览查询是返回单个记录或少量记录的查询。 通过创建预览查询,可以优化查询,以确保请求所需的数据。 从最小查询开始,可以生成查询,以确保指定所需的记录和所需的列数据。
通过使用 , apply=aggregate($count as Count)
可以标识要请求的记录数。 例如,以下语法查询 Fabrikam Fiber 项目的工作项数。
https://analytics.dev.azure.com/content-learn/Content/_odata/v4.0-preview/WorkItems? $apply=aggregate($count as Count)
响应总共返回 1415 个工作项。
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam Fbier/_odata/v4.0-preview/$metadata#WorkItems(Count)",
"value": [
{
"@odata.id": null,
"Count": 1415
}
]
}
将查询限制为有权访问的项目
项目范围查询返回有关单个项目的信息,而组织范围查询旨在返回跨项目边界的信息。 组织范围的查询需要更广泛的用户权限或仔细的范围限制,以确保由于缺少项目权限,查询不会被阻止。
如果有权访问一个或多个项目,但并非所有项目,并且提交组织范围的查询,则会收到错误消息。
"VS403496: The query results include data in one or more projects for which you do not have access. Add one or more projects filters to specify the project(s) you have access to in 'WorkItems' entity. If you're using $expand or navigation properties, project filter is required for those entities. More information can be found here: https://go.microsoft.com/fwlink/?LinkId=786441."
有关详细信息,请参阅 Project 和组织范围的查询。
查看警告和错误消息
分析会检查它收到的每个查询,以违反其规则。 当检测到冲突时,它会返回警告消息。 建议查看这些消息以更正或改进查询结构。
速率限制和遏制
对 Azure DevOps Services 的分析进行的查询受速率限制的约束。 如果发送的查询过多,请求在短时间内返回大量数据,则服务可能会受到限制。 有关详细信息,请参阅速率和使用限制。
可以通过转到“组织设置>使用情况”和“执行筛选器”来查看服务的使用情况和个人。 例如,下图显示了 Jamal Hartnett 对 Analytics 服务的使用情况。