次の方法で共有


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

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

この記事では、パイプラインの期間、またはパイプラインの実行にかかった時間を取得する方法について説明します。 このレポートは、 Pipeline 期間レポートの "パイプライン期間" グラフの期間の概要メトリックに似ています。

次の図は、2022 年 9 月から 2022 年 12 月 15 日までのすべてのパイプライン実行の特定のパイプラインの期間レポートの例を示しています。

Power BI Pipelines Duration クラスター化列レポートのスクリーンショット。

重要

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に提供されているメタデータを確認してください。

指定したパイプラインのパーセンタイル期間を返す

以下に示す 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) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,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.5) as Duration50thPercentileInSeconds,

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

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

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

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

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

/groupby(

groupby() 開始します。

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

応答を Duration50thPercentileInSecondsDuration80thPercentileInSecondsDuration95thPercentileInSeconds でグループ化し、 groupby 句を終了します。

指定したパイプライン 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.5) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

指定したパイプラインのパーセンタイル期間を返し、分岐でフィルター処理する

特定の ブランチについてのみパイプラインの期間を表示するには 次のクエリを使用します。 レポートを作成するには、Change 列データ型の概要と共に次の手順を実行しクラスター化縦棒グラフ レポートの作成セクションをします。

  • BranchBranch.BranchNameに展開します。
  • フィールド Branch.BranchNameX 軸に追加します。

以下に示す 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, BranchSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

すべてのプロジェクト パイプラインのパーセンタイル期間を返す

プロジェクトのすべてのパイプラインの期間を 1 つのレポートで表示するには、次のクエリを使用します。 レポートを作成するには、Change 列データ型の概要と共に次の手順を実行しクラスター化縦棒グラフ レポートの作成セクションをします。

  • PipelinePipeline.PipelineNameに展開します。
  • フィールド PIpeline.PipelineNameX 軸に追加します。

必要に応じて同様の手順を詳しく説明したサンプル レポートについてはすべてのパイプラインの Outcome の概要も参照してください。

以下に示す 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.5, PipelineId) as Duration50thPercentileInSeconds, "
            &"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
                &"/groupby( "
            &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

列のデータ型を変更する

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

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

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

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

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

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

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

クラスター化縦棒グラフ レポートを作成する

  1. Power BI の Visualizations で、 クラスター化縦棒グラフ レポートを選択します。 この例では、名前が変更された列がないことを前提としています。

    Power BI Pipelines クラスター化列の視覚化とフィールドの選択のスクリーンショット。

  2. 次のフィールドを Y 軸に追加し、各フィールドを右クリックし、 Sum が選択されていることを確認します。

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. レポートのタイトル、凡例、またはその他のレポート ビジュアルを変更するには、[表示] ウィンドウから ビジュアルの書式設定ペイント ブラシ アイコンを選択し、1 つ以上の設定を調整します。

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

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