パイプラインの合格率傾向のサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
この記事では、パイプラインの 1 日あたりの合格率の傾向を示すレポートを作成する方法について説明します。 パイプラインの成功率は、パイプライン実行の合計に対する成功したパイプライン実行の割合として定義されます。 これは、 Pipeline 合格率レポートの "合格率傾向" グラフに似ています。 次の図は、このような傾向の例を示しています。
重要
Power BI 統合 Analytics Service の OData フィードへのアクセスは 、Azure DevOps Services および Azure DevOps Server 2020 以降のバージョンで一般提供されています。 この記事で提供されるサンプル クエリは、Azure DevOps Server 2020 以降のバージョンに対してのみ有効であり、 v3.0-preview 以降のバージョンによって異なります。 これらのクエリを使用し、フィードバックをお寄せください。
前提条件
- Access:少なくとも Basic アクセス権を持つプロジェクトのメンバーである必要があります。
- Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
Note
この記事では、 OData クエリを使用したサンプル レポートの概要 Power BI の基本的な理解があることを前提としています。
サンプル クエリ
PipelineRuns
エンティティ セットの次のクエリを使用して、異なるが類似した合格率傾向レポートを作成できます。
Note
フィルターまたはレポートの目的で使用可能なプロパティを確認するには、Azure Pipelines の Metadata リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
に指定されたメタデータを確認してください。
名前付きパイプラインの合格率の傾向
次のクエリは、指定した開始日から特定のパイプラインのパイプライン実行を返します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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" の場合は、 ではなく {Fabrikam}
を にFabrikam
置き換えます{organization}
。
{organization}
- 組織名{project}
- チーム プロジェクト名{pipelinename}
- パイプライン名。 例:Fabrikam hourly build pipeline
{startdate}
- レポートを開始する日付。 形式: YYYY-MM-DDZ。 例:2021-09-01Z
は 2021 年 9 月 1 日を表します。 引用符または角かっこで囲んで、月と日付の両方に 2 桁の数字を使用しないでください。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ パーツ
説明
$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 を使用します。 パイプライン ID は、パイプラインの実行ページの URL から取得できます。
https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}
次のクエリは、指定した開始日から特定のパイプライン ID のパイプライン実行を返します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
パス レートの傾向、分岐でフィルター処理
特定の ブランチについてのみ、パイプラインの合格率の傾向 表示できます。 レポートを作成するには、Change 列のデータ型に記載されているものと共に次の追加手順を実行し折れ線グラフ レポートを作成セクションを作成します。
Branch
をBranch.BranchName
に展開します。- Power BI Visualization Slicer を選択しスライサーの Field に
Branch.BranchName
を追加します。 - 合格率の傾向を確認する必要があるスライサーから分岐を選択します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
成功率の傾向、ビルド理由でフィルター処理
特定の Build の理由 (手動/BatchedCI、Pull Request など) についてのみ、パイプラインの合格率の傾向を確認できます。 レポートを作成するには、Change 列のデータ型に記載されているものと共に次の追加手順を実行し折れ線グラフ レポートを作成セクションを作成します。
- Visualizations ペインから Slicer を選択し、スライサーの Field に
RunReason
を追加します。 - 合格率の傾向を確認する必要があるスライサーからパイプラインを選択します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
すべてのプロジェクト パイプラインの合格率の傾向
次のクエリを使用して、プロジェクトのすべてのパイプラインの合格率の傾向を 1 つのレポートで表示します。 レポートを作成するには、Change 列のデータ型に記載されているものと共に次の追加手順を実行し折れ線グラフ レポートを作成セクションを作成します。
Pipeline
をPipeline.PipelineName
に展開します。- Visualizations ペインから Slicer を選択し、スライサーの Field にフィールド
Pipeline.PipelineName
を追加します。 - パス レートの傾向を確認する必要があるスライサーからビルド パイプラインを選択します。
必要に応じて、 すべてのパイプライン サンプル レポートの概要を参照してください。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
にフラット化します。
作業項目を展開する方法については、「 Analytics データを変換して Power BI レポートを生成する」を参照してください。
列のデータ型を変更する
Transformメニューから、次の列のデータ型を変更します。 方法については、「 列のデータ型を変換するを参照してください。
PassRate
、列のFailRate
とPartiallySuccessfulRate
を Decimal Number。TotalCount
を ホール番号します。
(省略可能)列フィールドの名前を変更する
列フィールドの名前を変更できます。 たとえば、列 Pipeline.PipelineName
の名前を Pipeline Name
に変更したり、 TotalCount
を Total Count
に変更したりできます。 方法については、「 Rename 列フィールドを参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
折れ線グラフ レポートを作成する
Power BI の Visualizations で、 折れ線グラフ レポートを選択します。
X 軸に
CompletedOn.Date
を追加。 フィールドを右クリックし、 CompletedOn.Date を選択します。PassRate
を Y 軸に追加し、右クリックして Sum が選択されていることを確認します。レポートのタイトルを変更するには、表示ペインから ビジュアルの書式設定ペイント ブラシ アイコンを選択し、General を選択し、Title を展開して、既存のテキストを置き換えます。
次の図は、結果のレポートを示しています。