流水线通过率趋势示例报告
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
本文介绍如何创建显示管道每日通过率趋势的报表。 流水线的通过率定义为成功运行数占总运行数的百分比。 它类似于管道通过率报告的“通过率趋势”图表。 下图显示了此类趋势的示例。
重要
Power BI 集成和对 Analytics 服务的 OData 源的访问权限通常用于 Azure DevOps Services 和 Azure DevOps Server 2020 及更高版本。 本文中提供的示例查询仅适用于 Azure DevOps Server 2020 及更高版本,具体取决于 v3.0-preview 或更高版本。 我们鼓励你使用这些查询并提供反馈。
类别 | 要求 |
---|---|
访问级别 | - 项目成员。 - 至少具有基本访问权限。 |
权限 | 默认情况下,项目成员有权查询 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(
开始 filter()
子句。
Pipeline/PipelineName eq '{pipelinename}'
返回指定管道的管道运行。
and CompletedDate ge {startdate}
在指定日期或之后返回管道运行。
and CanceledCount ne 1
省略已取消的管道运行。
)
结束 filter()
子句。
/groupby(
开始 groupby()
子句。
(CompletedOn/Date),
按管道运行完成日期分组。
aggregate
对与筛选器条件匹配的所有管道运行启动 aggregate
子句。
($count as TotalCount,
将运行总数计为 TotalCount
。
SucceededCount with sum as SucceededCount ,
将成功的运行次数计为 SucceededCount
。
FailedCount with sum as FailedCount,
将失败的运行次数计数为 FailedCount
。
PartiallySucceededCount with sum as PartiallySucceededCount))
将部分成功运行的次数计为 PartiallySucceededCount
。 关闭 aggregate()
和 groupby()
子句。
/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 轴,然后右键单击它以确保选择了 求和 。若要更改报表标题,请从“可视化效果”窗格中选择“设置视觉画笔”图标的格式,选择“常规”,展开“标题”并替换现有文本。
下图显示了生成的报表。