パイプライン期間傾向のサンプル レポート

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

この記事では、パイプラインが正常に完了するまでの通常の時間を示すレポートを作成する方法について説明します。 パイプライン期間レポートの毎日の傾向は、パイプラインの成功率レポートのパイプラインレート傾向グラフに似ています

次の図は、期間傾向レポートの例を示しています。

Power BI パイプライン期間の傾向レポートのスクリーンショット。

重要

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

前提条件

Note

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

サンプル クエリ

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

Note

フィルターまたはレポートの目的で使用可能なプロパティを決定するには、Azure Pipelines のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する EntityType値に指定されたメタデータを確認してください。

指定されたパイプラインの 80 パーセンタイル期間の傾向を取得する

次の 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$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 (SucceededCount eq 1 or PartiallySucceededCount eq 1)

成功または部分的に成功した実行のみを返します。

)

Close filter() 句。

/compute(

Start compute() 句。

percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)

フィルター条件に一致するすべてのパイプライン実行のパイプライン期間の 80 パーセンタイルを計算します。

/groupby(

groupby() を開始する

(Duration80thPercentileInSeconds, CompletedOn/Date))

パイプライン実行の完了日と計算日ごとの 80 パーセンタイル パイプライン期間でグループ化します。

&$orderby=CompletedOn/Date asc

完了した日付で応答を並べ替えます。

パイプライン名ではなくパイプライン ID でフィルター処理する

パイプラインの名前を変更できます。 パイプライン名が変更されたときに Power BI レポートが中断されないようにするには、パイプライン名ではなくパイプライン ID を使用します。 パイプライン ID は、パイプラインの実行ページの URL から取得できます。

https://dev.azure.com/{organization}/{project}/_build?definitionId= `{pipelineid}`

次の 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

50 パーセンタイルと 90 パーセンタイルと 80 パーセンタイル期間の傾向を取得する

他のパーセンタイル値を使用して計算された期間傾向を表示できます。 次のクエリでは、50 パーセンタイル パイプライン期間と 90 パーセンタイル パイプライン期間と 80 パーセンタイルが提供されます。

次の 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5,CompletedDateSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.90,CompletedDateSK) as Duration90thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds, Duration90thPercentileInSeconds, CompletedOn/Date)) "
            &"&$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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,BranchSK, CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, Branch/BranchName, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

すべてのプロジェクト パイプラインの期間の傾向

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

  • に展開 Pipeline します Pipeline.PipelineName
  • [視覚化] ウィンドウからスライサー選択し、スライサーのフィールドに追加Pipeline.PipelineNamします
  • パイプラインの合格率の傾向を確認する必要があるスライサーからパイプラインを選択します。

次の 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
                &") "
        &"/compute( "
        &"percentile_cont(TotalDurationSeconds, 0.8,PipelineId, CompletedDateSK) as Duration80thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration80thPercentileInSeconds, Pipeline/PipelineName, CompletedOn/Date)) "
                &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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

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

列のデータ型を変更する

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

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

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

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

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

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

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

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

    パイプラインの実行期間傾向レポートの [視覚化] フィールドの選択のスクリーンショット。

  2. X 軸に追加CompletedOn.Date、それを右クリックし、日付階層ではなく CompletedOn.Date を選択します。

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

表示されるレポートは、次の図のようになります。

Power BI サンプル パイプライン期間傾向レポートのスクリーンショット。