Share via


パイプライン ステージの賢明なエラーのサンプル レポート

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

この記事では、パイプラインの毎日のステージエラーのレポートを作成する方法について説明します。 このレポートは、パイプラインの合格率レポートの "失敗傾向" グラフに似ています。

次の図は、2022 年 10 月から 2022 年 12 月 15 日までの特定のパイプラインの段階的なエラー レポートの例を示しています。

Power BI Pipelines のステージごとのエラースタック列レポートのスクリーンショット。

重要

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 のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する 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(

Start filter() 句。

Pipeline/PipelineName eq '{pipelinename}'

特定のパイプラインのタスク結果を返します。

and PipelineRunCompletedOn/Date ge {startdate}

指定した日付以降のパイプライン実行のタスク結果を返します。

and PipelineRunOutcome eq 'Failed'

ビルド結果が失敗したタスクの結果を返します。

and TaskOutcome eq 'Failed'

タスクの結果が失敗したタスクの結果を返します。

)

Close filter 句。

/groupby(

Start groupby() 句。

(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ),

パイプライン実行の完了日、ビルド ID、ステージ名でグループ化します。

aggregate (FailedCount with sum as FailedCount))

各日、ビルド ID、およびステージ。失敗の合計数をカウントします。 これは、タスクの失敗の合計数であり、ステージの失敗ではありません。

/groupby(

Start groupby() 句。

(PipelineRunCompletedOn/Date, PipelineJob/StageName ),

日とステージ名でグループ化します。

aggregate

Start 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 BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

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

レポートを作成する前に、次の 2 つの列を展開する必要があります。 作業項目を展開する方法については、「 Analytics データを変換して Power BI レポートを生成する」を参照してください。

  • 次に展開します PipelineJobPipelineJob.StageName
  • 次に展開します PipelineRunCompletedOnPipelineRunCompletedOn.Date

列のデータ型を変更する

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

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

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

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

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

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

積み上げ縦棒グラフ レポートを作成する

  1. Power BI の [視覚化] で、積み上げ縦棒グラフ レポートを選択します。 次の例では、どの列も名前が変更されていないことを前提としています。

    ステージごとのエラー積み上げ縦棒グラフ レポートの [視覚化] フィールドの選択のスクリーンショット。

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

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

  4. [凡例] にを追加PipelineJob.StageNameします。

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

レポートは次の図のようになります。

Power BI Pipelines サンプルのステージごとのエラースタック列レポートのスクリーンショット。