azure-devops - 使用 Azure DevOps 作为数据源的 Power BI 报告停止运行
问题描述
几个月前,我使用我们公司的 Azure DevOps 构建管道作为数据源(使用 odata v3.0-preview)创建了一份 Power BI 报告。事情一直很好,直到一个月左右前它开始无法刷新报告数据。经过调查,似乎某些值不再可检索,但我找不到 Microsoft 的任何声明,您将不再能够从这些来源检索数据?
我的 Azure Devops OData 调用尝试检索以下三条信息:BuildPipelines、Builds和TestRuns(这些都正常工作)。以下是如何创建每个调用的一些示例:
- https://analytics.dev.azure.com/ {organization}/{project}/_odata/v3.0-preview/BuildPipelines?$filter=ProjectSK%20eq%20test&$select=BuildPipelineSK,BuildPipelineName
- https://analytics.dev.azure.com/ {organization}/{project}/_odata/v3.0-preview/Builds?$filter=ProjectSK%20eq%20test&$select=BuildPipelineSK,BuildSK,BuildOutcome,StartedDate,BuildNumber
- https://analytics.dev.azure.com/ {organization}/{project}/_odata/v3.0-preview/TestRuns?$filter=ProjectSK%20eq%20test&$select=BuildSK,RunDurationSeconds,ResultCount,ResultFailCount,ResultPassCount
上述调用在浏览器中通过 Power BI desktop 和 Power BI online 中断。
任何有关这方面的帮助将不胜感激。
以下是我使用上述数据源创建的报告示例:
解决方案
嘿,伯纳德,我想我可以帮助你。
我还经常使用 oData 提要,在 12 月下旬,我收到了来自 Azure DevOps Analytics 项目经理的一封电子邮件,内容涉及以下更改。他们在一月初推出。我四处寻找任何博客\公告,但我找不到,所以我想我会在这里分享我所知道的。
我还要补充一点,您可以在此端点检查有效架构https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata
项目经理的电子邮件位于该行下方。
更新摘要:
- 所有名称以 BuildPipeline 开头的实体集和实体属性都将重命名为以 Pipeline 开头
- 所有名称以 Build 开头的实体集和实体属性都将重命名为以 PipelineRun 开头
- 实体集 BuildTaskResults 将被重命名为 PipelineRunActivityResults
- 实体集 BuildPipelineTasks 将重命名为 PipelineTasks
- 所有 Release 实体集都被删除,它们的属性被合并到 Test 实体集中。删除了以下实体集 发布管道 b. 发布环境 C. 发布阶段 d. 发布 这些发布实体集的属性现在可以通过直接使用实体属性在对测试实体集的查询中引用。例如,在测试实体查询中使用 ReleasePipeline/ReleasePipelineId 可以替换为 ReleasePipelineId。
示例:较旧的查询 this
https://analytics.dev.azure.com/{orgname}/{projectName}/_odata/v3.0-preview/Builds?$apply=filter(BuildPipelineId eq 381)/aggregate($count as Count)
会变成
https://analytics.dev.azure.com/{orgname}/{projectName}/_odata/v3.0-preview/PipelineRuns?$apply=filter(PipelineId eq 381)/aggregate($count as Count)
处理发布实体集和实体属性
Azure DevOps Analytics 仅包含与 TestRuns 相关联的那些发布条目,并且从未包含发布的完成日期。所有这些 Release 实体集都将被删除,它们的属性正在合并到 Test 实体集中。例如,直接使用 Release 实体集的查询将
https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleasePipelines/$count
https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleaseEnvironments/$count
https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleaseStages/$count
https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/Releases/$count
但是您不必担心是否在任何测试查询中使用了发布实体属性。由于发布属性正在合并到测试实体集中,因此您应该直接使用该属性,而不使用导航。例如,在测试实体中,如果发布实体属性当前用作 ReleasePipeline/ReleasePipelineId,则应将其替换为 ReleasePipelineId。此模式适用于 Test 实体中使用的所有 Release 实体属性。
示例:较旧的查询 this
https://analytics.dev.azure.com/{orgname} /{projectName} /_odata/v3.0-preview/TestRuns?$apply=filter(ReleasePipeline/ReleasePipelineId eq 381)/aggregate($count as Count)
会变成
https://analytics.dev.azure.com/{orgname} /{projectName} /_odata/v3.0-preview/TestRuns?$apply=filter(ReleasePipelineId eq 381)/aggregate($count as Count)