パイプラインの合格率傾向のサンプル レポート

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

この記事では、パイプラインの 1 日あたりの合格率の傾向を示すレポートを作成する方法について説明します。 パイプラインの成功率は、パイプライン実行の合計に対する成功したパイプライン実行の割合として定義されます。 これは、パイプラインの合格率レポートの "合格率傾向" グラフに似ています。 次の図は、このような傾向の例を示しています。

Power BI Pipelines Runs Pass Rate Trend レポートのスクリーンショット。

重要

Power BI の統合と Analytics サービスの OData フィードへのアクセスは、Azure DevOps Services および Azure DevOps Server 2020 以降のバージョンで一般提供されています。 この記事で提供されるサンプル クエリは、Azure DevOps Server 2020 以降のバージョンに対してのみ有効であり、v3.0-preview 以降のバージョンによって異なります。 これらのクエリを使用し、フィードバックをお寄せください。

前提条件

  • 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。

Note

この記事では、「 OData クエリを使用したサンプル レポートの概要」を 読み、Power BI の基本的な理解があることを前提としています。

サンプル クエリ

エンティティ セットの次のクエリを PipelineRuns 使用して、異なるが類似した合格率傾向レポートを作成できます。

Note

フィルターまたはレポートの目的で使用可能なプロパティを決定するには、Azure Pipelines のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する 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" の場合は、 ではなく {Fabrikam}を にFabrikam置き換えます{organization}

  • {organization} - 組織名
  • {project} - チーム プロジェクト名
  • {pipelinename} - パイプライン名。 例: Fabrikam hourly build pipeline
  • {startdate} - レポートを開始する日付。 形式: YYYY-MM-DDZ。 例: 2021-09-01Z 2021 年 9 月 1 日を表します。 引用符または角かっこで囲んで、月と日付の両方に 2 桁の数字を使用しないでください。

クエリの内訳

次の表では、クエリの各部分について説明します。

クエリ パーツ

説明


$apply=filter(

Start filter() 句。

Pipeline/PipelineName eq '{pipelinename}'

指定したパイプラインのパイプライン実行を返します。

and CompletedDate ge {startdate}

返されるパイプラインは、指定した日付以降に実行されます。

and CanceledCount ne 1

取り消されたパイプラインの実行を省略します。

)

Close filter() 句。

/groupby(

Start 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カウントします。 groupby()閉じてaggregate()句を指定します。

/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 クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 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、Pull Request など) に対してのみ、パイプラインの合格率の傾向を表示できます。 レポートを作成するには、[列データ型の変更] セクションと [折れ線グラフ レポートの作成] セクションに記載されている内容と共に、次の追加手順を実行します。

  • [視覚化] ウィンドウからスライサー選択し、スライサーのフィールドに追加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

すべてのプロジェクト パイプラインの合格率の傾向

次のクエリを使用して、プロジェクトのすべてのパイプラインの合格率の傾向を 1 つのレポートで表示します。 レポートを作成するには、[列データ型の変更] セクションと [折れ線グラフ レポートの作成] セクションに記載されている内容と共に、次の追加手順を実行します。

  • に展開 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 BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

Power Query エディターの列を展開する

レポートを作成する前に、複数のフィールドを含むレコードを返す列を展開する必要があります。 この例では、列を展開 CompletedOn してフラット化 CompletedOn.Dateする必要があります。
作業項目を展開する方法については、「 Analytics データを変換して Power BI レポートを生成する」を参照してください。

列のデータ型を変更する

[変換] メニューから、次の列のデータ型を変更します。 方法については、「列データ型の変換」を参照してください

  • PassRateFailRate および PartiallySuccessfulRate 列を 10 進数に 変換します。'
  • TotalCount を整数に 変換します

(省略可能)列フィールドの名前を変更する

列フィールドの名前を変更できます。 たとえば、列Pipeline.PipelineNameの名前を 、または TotalCountTotal Count〗 にPipeline Name変更できます。 方法については、「列フィールドの名前を変更する」を参照してください

クエリを閉じて変更を適用する

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。

[閉じて適用] オプションPower Query エディタースクリーンショット。

折れ線グラフ レポートを作成する

  1. Power BI の [視覚化]、折れ線グラフ レポートを選択します。

    合格率傾向折れ線グラフ レポートの視覚化フィールドの選択のスクリーンショット。

  2. X 軸に追加CompletedOn.Dateします。 フィールドを右クリックし、[CompletedOn.Date] を選択 します

  3. Y 軸に追加PassRateし、右クリックして[合計]が選択されていることを確認します。

  4. レポートのタイトルを変更するには、[視覚化] ウィンドウから [ビジュアル ペイント ブラシの書式設定] アイコンを選択し、[全般] を選択し、[タイトル]展開して、既存のテキストを置き換えます。

    次の図は、結果のレポートを示しています。

    Power BI サンプル パイプラインの実行成功率傾向レポートのスクリーンショット。