パイプライン ステージの賢明なエラーのサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
この記事では、パイプラインの毎日のステージエラーのレポートを作成する方法について説明します。 このレポートは、 Pipeline 合格率レポートの "失敗傾向" グラフに似ています。
次の図は、2022 年 10 月から 2022 年 12 月 15 日までの特定のパイプラインの段階的なエラー レポートの例を示しています。
重要
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 の基本的な理解があることを前提としています。
サンプル クエリ
ステージ、タスク、またはジョブエラーの傾向レポートは、 PipelineRunActivityResults
エンティティ セットに対してクエリを実行することで作成できます。
Note
フィルターまたはレポートの目的で使用可能なプロパティを確認するには、Azure Pipelines の Metadata リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値の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 PipelineRunCompletedOn/Date ge {startdate} "
&"and PipelineRunOutcome eq 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ), "
&"aggregate (FailedCount with sum as FailedCount)) "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineJob/StageName ), "
&"aggregate "
&"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount)) "
,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 PipelineRunCompletedOn/Date ge {startdate}
指定した日付以降のパイプライン実行のタスク結果を返します。
and PipelineRunOutcome eq 'Failed'
ビルド結果が失敗したタスクの結果を返します。
and TaskOutcome eq 'Failed'
タスクの結果が失敗したタスクの結果を返します。
)
句 filter
閉じます。
/groupby(
句 groupby()
開始します。
(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ),
パイプライン実行の完了日、ビルド ID、ステージ名でグループ化します。
aggregate (FailedCount with sum as FailedCount))
各日、ビルド ID、およびステージ。失敗の合計数をカウントします。 これは、タスクの失敗の合計数であり、ステージの失敗ではありません。
/groupby(
句 groupby()
開始します。
(PipelineRunCompletedOn/Date, PipelineJob/StageName ),
日とステージ名でグループ化します。
aggregate
句 aggregate
開始します。
(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount))
各日について、ステージが失敗した回数を合計し、 aggregate
句を閉じます。
タスクの賢明な失敗の傾向
タスクの賢明な失敗傾向を表示するには、次のクエリを使用します。
以下に示す 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 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, TaskDisplayName), "
&"aggregate "
&"(FailedCount with sum as FailedCount)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
ジョブの賢明な失敗の傾向
ジョブごとのエラー傾向を表示するには、次のクエリを使用します。
以下に示す 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 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/JobName ), "
&"aggregate (FailedCount with sum as FailedCount)) "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineJob/JobName ), "
&"aggregate "
&"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedJobCount)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。
Power Query エディターの列を展開する
レポートを作成する前に、次の 2 つの列を展開する必要があります。 作業項目を展開する方法については、「 Analytics データを変換して Power BI レポートを生成する」を参照してください。
PipelineJob
を>>PipelineJob.StageName
PipelineRunCompletedOn
を>>PipelineRunCompletedOn.Date
列のデータ型を変更する
Transform メニューから、FailedStageCount
列のデータ型を Whole Number に変更します。 方法については、「 列のデータ型を変換するを参照してください。
(省略可能)列フィールドの名前を変更する
列フィールドの名前を、わかりやすい名前に変更できます。 たとえば、列 Pipeline.PipelineName
の名前を Pipeline Name
に変更したり、 TotalCount
を Total Count
に変更したりできます。 方法については、「 Rename 列フィールドを参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
積み上げ縦棒グラフ レポートを作成する
Power BI の Visualizations で、 Stacked 縦棒グラフ レポートを選択します。 次の例では、どの列も名前が変更されていないことを前提としています。
X 軸に
PipelineRunCompletedOn.Date
を追加し、右クリックし、Date Hierarchy ではなく、PipelineRunCompletedOn.Date を選択します。Y 軸に
FailedStagedCount
を追加右クリックし、Sumが選択されていることを確認します。[凡例] にを追加
PipelineJob.StageName
します。レポートのタイトル、凡例、またはその他のレポート ビジュアルを変更するには、[表示] ウィンドウから ビジュアルの書式設定ペイント ブラシ アイコンを選択し、1 つ以上の設定を調整します。
レポートは次の図のようになります。