次の方法で共有


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

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

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

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

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

重要

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

前提条件

  • アクセス レベル: Basic 以上のプロジェクトのメンバーである必要があります。
  • Permission: 既定では、プロジェクト メンバーは Analytics にクエリを実行してビューを作成する権限を持ちます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。

Note

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

サンプル クエリ

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

Note

フィルターまたはレポートの目的で使用可能なプロパティを確認するには、Azure Pipelines の Metadata リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値の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(

filter() 開始します。

Pipeline/PipelineName eq '{pipelinename}'

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

and CompletedDate ge {startdate}

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

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

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

)

filter() 閉じます。

/compute(

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

分岐でフィルター処理

特定の ブランチについてのみパイプラインの期間の傾向を表示するには 次のクエリを使用します。 レポートを作成するには、Change 列のデータ型に記載されているものと共に次の追加手順を実行し折れ線グラフ レポートを作成セクションを作成します。

  • BranchBranch.BranchNameに展開します。
  • Power BI Visualization Slicer を選択しスライサーの FieldBranch.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 つのレポートで表示できます。 レポートを作成するには、Change 列のデータ型に記載されているものと共に次の追加手順を実行し折れ線グラフ レポートを作成セクションを作成します。

  • PipelinePipeline.PipelineNameに展開します。
  • Visualizations ペインから Slicer を選択し、スライサーの FieldPipeline.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 レポートを生成する」を参照してください。

列のデータ型を変更する

Transform メニューから、Duration80thPercentileInSecondsのデータ型を Decimal Number に変更します。 方法については、「 列のデータ型を変換するを参照してください。

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

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

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

すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。

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

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

  1. Power BI の Visualizations で、 折れ線グラフ レポートを選択します。

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

  2. CompletedOn.DateX-Axis に追加し、右クリックし、Date Hierarchy ではなく CompletedOn.Date を選択します。

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

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

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