パイプライン タスク期間の傾向のサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
特定のパイプラインのタスクの完了にかかる時間を視覚化するには、傾向レポートを作成します。 たとえば、次の図は、2022 年 9 月 1 日から 12 月 15 日までの特定のパイプラインで完了したすべてのタスクの 80 パーセンタイルを秒単位で示しています。
重要
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 の基本的な理解があることを前提としています。
サンプル クエリ
エンティティ セットの次のクエリを PipelineRunActivityResults?
使用して、異なるが類似したタスク期間傾向レポートを作成できます。
Note
フィルターまたはレポートの目的で使用可能なプロパティを決定するには、Azure Pipelines のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
に提供されているメタデータを確認してください。
指定されたパイプライン名のタスク期間の傾向
以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and TaskDisplayName eq '{taskname}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&" ) "
&"/compute( "
&"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/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 TaskDisplayName eq '{taskname}'
特定のタスクのタスク結果を返します。
and PipelineRunCompletedOn/Date ge {startdate}
指定した日付以降のパイプライン実行のタスク結果を返します。
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
パイプラインの実行が成功または部分的に成功した場合にのみ、タスクの結果を返します。
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
取り消された、スキップされた、または破棄されたパイプラインの実行を省略します。
)
Close filter()
句。
/compute(
Start compute()
句。
percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)
各日について、フィルター条件に一致するすべてのタスクのタスク期間の 80 パーセンタイルを計算します。
/groupby(
Start groupby()
句。
(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))
パイプライン実行の完了日と計算日ごとの 80 パーセンタイル タスク期間でグループ化します。
&$orderby=PipelineRunCompletedOn/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/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineId eq {pipelineid} "
&"and TaskDisplayName eq '{taskname}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&") "
&"/compute( "
&"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
パイプラインの 50 番目、80 番目、90 番目のパーセンタイル タスク期間の傾向
他のパーセンタイル値を使用して計算されたタスク期間の傾向を表示するには、次のクエリを使用して、50 パーセンタイルタスク期間と 95 パーセンタイルタスク期間と 80 パーセンタイルを指定します。
以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and TaskDisplayName eq '{taskname}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&") "
&"/compute( "
&"percentile_cont(ActivityDurationSeconds, 0.5, PipelineRunCompletedDateSK) as TaskDuration50thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.95, PipelineRunCompletedDateSK) as TaskDuration95thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds, TaskDuration95thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
分岐でフィルター処理されたパイプラインのタスク期間の傾向
特定 の分岐のタスクの期間傾向を表示するには、次のクエリを使用します。 レポートを作成するには、次の手順を実行します。
- 次に展開します
Branch
。Branch.BranchName
- 列のデータ型を変更する
- 折れ線グラフ レポートを作成する
- [視覚化] ウィンドウからスライサーを選択し、スライサーのフィールドに追加
Branch.BranchName
します - タスク期間の傾向を確認する必要があるスライサーから分岐を選択します。
以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&" Pipeline/PipelineName eq '{pipelinename}' "
&" and TaskDisplayName eq '{taskname}' "
&" and PipelineRunCompletedOn/Date ge {startdate} "
&" and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&" and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&" ) "
&"/compute( "
&" percentile_cont(ActivityDurationSeconds, 0.8, BranchSK, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&" (TaskDuration80thPercentileInSeconds, Branch/BranchName, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
すべてのパイプライン タスクのタスク期間の傾向
1 つのレポート内のすべてのパイプライン タスクのタスク期間の傾向を表示するには、次のクエリを使用します。 レポートを作成するには、次の手順を実行します。
- 列のデータ型を変更する
- 折れ線グラフ レポートを作成する
- [視覚化] ウィンドウからスライサーを選択し、スライサーのフィールドに追加
TaskDisplayName
します - タスク期間の傾向を確認する必要があるスライサーからタスクを選択します。
以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&") "
&"/compute( "
&"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, TaskDisplayName, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。
Power Query エディターの列を展開する
レポートを作成する前に、複数のフィールドを含むレコードを返す列を展開する必要があります。 この例では、列を展開 PipelineRunCompletedOn
してフラット化 PipelineRunCompletedOn.Date
する必要があります。
作業項目を展開する方法については、「 Analytics データを変換して Power BI レポートを生成する」を参照してください。
列のデータ型を変更する
[変換] メニューから、列のデータ型を TaskDuration80thPercentileInSeconds
10 進数に変更します。 方法については、「列データ型の変換」を参照してください。
(省略可能)列フィールドの名前を変更する
列フィールドの名前を変更できます。 たとえば、列TaskDuration80thPercentileInSeconds
80th Percentile
の名前を . 方法については、「列フィールドの名前を変更する」を参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。
折れ線グラフ レポートを作成する
Power BI の [視覚化] で、折れ線グラフ レポートを選択します。
X 軸に追加
PipelineRunCompletedOn.Date
します。 フィールドを右クリックし、日付階層の代わりに PipelineRunCompletedOn.Date を選択します。Y 軸に追加
TaskDuration80thPercentileInSeconds
し、右クリックして[合計]が選択されていることを確認します。レポートのタイトルを変更するには、[視覚化] ウィンドウから [ビジュアル ペイント ブラシの書式設定] アイコンを選択し、[全般] を選択し、[タイトル] を展開して、既存のテキストを置き換えます。
次の図は、結果のレポートを示しています。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示