管道传递率趋势示例报告
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
本文介绍如何创建显示管道每日通过率趋势的报表。 管道的传递率定义为成功管道运行到管道运行总数的百分比。 它类似于管道通过率报告的“通过率趋势”图表。 下图显示了此类趋势的示例。
重要
Power BI 集成 和对 分析服务的 OData 源 的访问权限通常用于 Azure DevOps Services 和 Azure DevOps Server 2020 及更高版本。 本文中提供的示例查询仅适用于 Azure DevOps Server 2020 及更高版本,具体取决于 v3.0-preview 或更高版本。 我们鼓励你使用这些查询并提供反馈。
先决条件
- Access:至少是具有基本访问权限的项目的成员。
- 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
- 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。
注意
本文假设你阅读 了使用 OData 查询 的示例报表概述,并基本了解 Power BI。
示例查询
可以使用实体集的以下查询 PipelineRuns
来创建不同的但类似的传递率趋势报告。
注意
若要确定用于筛选器或报表目的的可用属性,请参阅 Azure Pipelines 的元数据参考。 可以使用 提供的 EntitySet
或 NavigationPropertyBinding Path
值下EntityType
的任何Property
值筛选查询或返回属性。 每个对应 EntitySet
一个 EntityType
。 有关每个值的数据类型的详细信息,请查看为相应 EntityType
值提供的元数据。
命名管道的传递速率趋势
以下查询从指定的开始日期返回特定管道的管道运行。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedDate ge {startdate} "
&"and CanceledCount ne 1 "
&") "
&"/groupby( "
&"(CompletedOn/Date), "
&"aggregate "
&"($count as TotalCount, "
&"SucceededCount with sum as SucceededCount , "
&"FailedCount with sum as FailedCount, "
&"PartiallySucceededCount with sum as PartiallySucceededCount)) "
&"/compute( "
&"SucceededCount mul 100.0 div TotalCount as PassRate, "
&"FailedCount mul 100.0 div TotalCount as FailRate, "
&"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
替换字符串和查询明细
将以下字符串替换为值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}
Fabrikam
,而不是 {Fabrikam}
。
{organization}
- 组织名称{project}
- 团队项目名称{pipelinename}
- 管道名称。 示例:Fabrikam hourly build pipeline
{startdate}
- 开始报表的日期。 格式:YYYY-MM-DDZ。 示例:2021-09-01Z
表示 2021 年 9 月 1 日。 不要将引号或括号括起来,并且对月份和日期使用两个数字。
查询明细
下表描述了查询的每个部分。
查询部件
描述
$apply=filter(
Start filter()
子句。
Pipeline/PipelineName eq '{pipelinename}'
返回指定管道的管道运行。
and CompletedDate ge {startdate}
返回管道在指定日期或之后运行。
and CanceledCount ne 1
省略已取消的管道运行。
)
Close filter()
子句。
/groupby(
Start groupby()
子句。
(CompletedOn/Date),
按管道运行完成日期分组。
aggregate
所有管道的 Start aggregate
子句都与筛选条件匹配。
($count as TotalCount,
将运行总数计为 TotalCount
。
SucceededCount with sum as SucceededCount ,
将成功的运行数计为 SucceededCount
。
FailedCount with sum as FailedCount,
将失败的运行数计数为 FailedCount
。
PartiallySucceededCount with sum as PartiallySucceededCount))
将部分成功运行的次数计为 PartiallySucceededCount
。 Close aggregate()
和 groupby()
clauses。
/compute(
子句的 compute()
开头。
SucceededCount mul 100.0 div TotalCount as PassRate,
通过将成功的运行数除以总运行数来计算 PassRate
每天。
FailedCount mul 100.0 div TotalCount as FailRate,
通过将失败的运行数除以总运行数来计算 FailRate
每天。
PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate)
通过将部分成功的运行数除以总运行数来计算 PartiallySuccessfulRate
每天。
&$orderby=CompletedOn/Date asc
根据管道运行日期按升序对结果进行排序。
管道 ID 的传递速率趋势
可以重命名管道。 若要确保在更改管道名称时 Power BI 报表不会中断,请使用管道 ID 而不是管道名称。 可以从管道运行页的 URL 获取管道 ID。
https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}
以下查询从指定的开始日期返回特定管道 ID 的管道运行。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
&"$apply=filter( "
&"PipelineId eq {pipelineId} "
&"and CompletedDate ge {startdate} "
&"and CanceledCount ne 1 "
&") "
&"/groupby( "
&"(CompletedOn/Date), "
&"aggregate "
&"($count as TotalCount, "
&"SucceededCount with sum as SucceededCount , "
&"FailedCount with sum as FailedCount, "
&"PartiallySucceededCount with sum as PartiallySucceededCount)) "
&"/compute( "
&"SucceededCount mul 100.0 div TotalCount as PassRate, "
&"FailedCount mul 100.0 div TotalCount as FailRate, "
&"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
通过速率趋势,按分支进行筛选
可能需要仅查看特定 分支 的管道的传递速率趋势。 若要创建报表,请执行以下额外步骤以及“更改列”数据类型和“创建折线图报表”部分中所述的内容。
- 展开
Branch
到Branch.BranchName
。 - 选择 Power BI 可视化切片 器 并添加到
Branch.BranchName
切片器的 字段。 - 从切片器中选择需要查看通过率趋势的分支。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedDate ge {startdate} "
&"and CanceledCount ne 1 "
&") "
&"/groupby( "
&"(Branch/BranchName, CompletedOn/Date), "
&"aggregate "
&"($count as TotalCount, "
&"SucceededCount with sum as SucceededCount , "
&"FailedCount with sum as FailedCount, "
&"PartiallySucceededCount with sum as PartiallySucceededCount)) "
&"/compute( "
&"SucceededCount mul 100.0 div TotalCount as PassRate, "
&"FailedCount mul 100.0 div TotalCount as FailRate, "
&"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
通过速率趋势,按生成原因进行筛选
可能只想查看管道的传递速率趋势(手动/BatchedCI、拉取请求等)。 若要创建报表,请执行以下额外步骤以及“更改列”数据类型和“创建折线图报表”部分中所述的内容。
- 从“可视化效果”窗格中选择切片器,然后将切片器字段添加到
RunReason
切片器字段。 - 从切片器中选择管道,要查看其传递率趋势。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedDate ge {startdate} "
&"and CanceledCount ne 1 "
&") "
&"/groupby( "
&"(RunReason, CompletedOn/Date), "
&"aggregate "
&"($count as TotalCount, "
&"SucceededCount with sum as SucceededCount , "
&"FailedCount with sum as FailedCount, "
&"PartiallySucceededCount with sum as PartiallySucceededCount)) "
&"/compute( "
&"SucceededCount mul 100.0 div TotalCount as PassRate, "
&"FailedCount mul 100.0 div TotalCount as FailRate, "
&"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
所有项目管道的传递速率趋势
使用以下查询查看单个报表中项目的所有管道的传递速率趋势。 若要创建报表,请执行以下额外步骤以及“更改列”数据类型和“创建折线图报表”部分中所述的内容。
- 展开
Pipeline
到Pipeline.PipelineName
。 - 从“可视化效果”窗格中选择切片器,并将字段添加到切片器的字段
Pipeline.PipelineName
。 - 从切片器中选择需要查看通过率趋势的生成管道。
请参阅 此处所需的所有管道 示例报告的结果摘要,其中包含详细的类似步骤。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
&"$apply=filter( "
&"CompletedDate ge {startdate} "
&"and CanceledCount ne 1 "
&") "
&"/groupby( "
&"(Pipeline/PipelineName, CompletedOn/Date), "
&"aggregate "
&"($count as TotalCount, "
&"SucceededCount with sum as SucceededCount , "
&"FailedCount with sum as FailedCount, "
&"PartiallySucceededCount with sum as PartiallySucceededCount)) "
&"/compute( "
&"SucceededCount mul 100.0 div TotalCount as PassRate, "
&"FailedCount mul 100.0 div TotalCount as FailRate, "
&"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(可选) 重命名查询
可以将默认查询标签 Query1 重命名为更有意义的标签。 只需在 “查询设置” 窗格中输入新名称。
展开 Power Query 编辑器 中的列
在创建报表之前,需要展开返回包含多个字段的记录的列。 在此实例中,需要展开 CompletedOn
列以将其平展到 CompletedOn.Date
。
若要了解如何展开工作项,请参阅 转换分析数据以生成 Power BI 报表。
更改列数据类型
在“ 转换 ”菜单中,更改以下列的数据类型。 若要了解如何操作,请参阅 转换列数据类型。
PassRate
和FailRate
PartiallySuccessfulRate
列到 十进制数字。'TotalCount
到 整数。
(可选)重命名列字段
可以重命名列字段。 例如,可以将列 Pipeline.PipelineName
重命名为 Pipeline Name
或 TotalCount
重命名为 Total Count
。 若要了解如何操作,请参阅 “重命名列字段”。
关闭查询并应用更改
完成所有数据转换后,从“开始”菜单中选择“关闭和应用”以保存查询并返回到 Power BI 中的“报表”选项卡。
创建折线图报表
在 Power BI 的“可视化效果”下,选择折线图报表。
添加到
CompletedOn.Date
X 轴。 右键单击该字段,然后选择 CompletedOn.Date。添加到
PassRate
Y 轴,然后右键单击它以确保 已选择 Sum 。若要更改报表标题,请从“可视化效果”窗格中选择“设置视觉画笔”图标的格式,选择“常规”,展开“标题”并替换现有文本。
下图显示了生成的报表。