管線持續時間範例報告

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

本文說明如何取得管線持續時間,或執行管線所花費的時間。 此報表類似於管線持續時程報表之「管線持續時程」圖表中的持續時間摘要計量。

下圖顯示從 2022 年 9 月到 2022 年 12 月 15 日,所有管線執行之特定管線持續時間報告的範例。

Power BI 管線持續時間叢集數據行報告的螢幕快照。

重要

Azure DevOps Services 和 Azure DevOps Server 2020 和更新版本的 Power BI 整合 和存取 Analytics Service 的 OData 摘要 已正式推出。 本文中提供的範例查詢僅適用於 Azure DevOps Server 2020 和更新版本,且相依於 v3.0-preview 或更新版本。 我們鼓勵您使用這些查詢並提供意見反應。

必要條件

  • 若要檢視分析數據和查詢服務,您必須是具有基本存取權或更高許可權的項目成員。 根據預設,所有專案成員都會獲得查詢分析的許可權,並定義分析檢視。
  • 若要瞭解有關服務與功能啟用和一般數據追蹤活動的其他必要條件,請參閱 存取分析的許可權和必要條件。

注意

本文假設您已閱讀 使用 OData 查詢 的範例報表概觀,並具備 Power BI 的基本瞭解。

範例查詢

您可以使用實體集的 PipelineRuns 下列查詢來建立不同但類似的管線持續時間報告。

注意

若要判斷篩選或報表用途的可用屬性,請參閱 Azure Pipelines 的元數據參考。 您可以使用的 或 NavigationPropertyBinding PathEntitySet底下EntityType的任何Property值來篩選查詢或傳回屬性。 每個 EntitySet 對應至 EntityType。 若要深入瞭解每個值的數據類型,請檢閱針對對應 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」 ,請將 取代 {organization}Fabrikam,而非 {Fabrikam}

  • {organization} - 您的組織名稱
  • {project} - 您的小組項目名稱
  • {pipelinename} - 您的管線名稱。 範例: Fabrikam hourly build pipeline
  • {startdate} - 開始報表的日期。 格式:YYYY-MM-DDZ。 範例: 2021-09-01Z 代表 2021 年 9 月 1 日。 請勿以引號或括弧括住,並針對月份和日期使用兩位數。

查詢明細

下表描述查詢的每個部分。

查詢元件

說明


$apply=filter(

Start filter() 子句。

Pipeline/PipelineName eq '{pipelinename}'

傳回指定管線的管線執行。

and CompletedDate ge {startdate}

傳回管線會在指定的日期或之後執行。

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

只傳回成功或部分成功的執行。

)

Close filter() 子句。

/compute(

Start 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(

Start groupby() 子句。

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Duration50thPercentileInSecondsDuration80thPercentileInSecondsDuration95thPercentileInSeconds 結束 子句來 groupby 分組回應。

傳回指定管線標識碼的百分位數持續時間

管線可以重新命名。 若要確保Power BI報表不會在管線名稱變更時中斷,請使用管線標識碼,而不是管線名稱。 您可以從管線執行頁面的 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

傳回指定管線的百分位數持續時間,依分支篩選

若要只檢視特定 分支 的管線持續時間,請使用下列查詢。 若要建立報表,請執行下列額外步驟,以及變更數據行數據類型建立叢集柱形圖報表區段中所述的內容。

  • 展開 BranchBranch.BranchName
  • 將 [Branch.BranchName] 字段新增至 X 軸

您可以將下面所列的 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

傳回所有專案管線的百分位數持續時間

若要在單一報表中檢視專案所有管線的持續時間,請使用下列查詢。 若要建立報表,請執行下列額外步驟,以及變更數據行數據類型建立叢集柱形圖報表區段中所述的內容。

  • 展開 PipelinePipeline.PipelineName
  • 將 PIpeline.PipelineName 欄位新增至 X 軸

請參閱所有管線 的結果摘要,以取得具有詳細類似步驟的範例報表,如這裡所需。

您可以將下面所列的 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

變更數據行數據類型

從 [ 轉換 ] 功能表,將下列數據行的數據類型變更為 [十進制數]。 若要瞭解如何,請參閱 轉換數據行數據類型

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(選擇性)重新命名數據行欄位

您可以重新命名資料列欄位。 例如,您可以將資料列 Pipeline.PipelineName 重新命名為 Pipeline Name,或 TotalCount 重新命名為 Total Count。 若要瞭解如何,請參閱 重新命名數據行欄位

關閉查詢並套用您的變更

完成所有數據轉換之後,請從 [常用] 功能表選擇 [關閉及套用],以儲存查詢並返回 Power BI 中的 [報表] 索引卷標。

Power Query 編輯器 [關閉並套用] 選項的螢幕快照。

建立叢集柱形圖報表

  1. 在 Power BI 的 [視覺效果],選擇 [叢集柱形圖] 報表。 此範例假設沒有重新命名任何數據行。

    Power BI Pipelines 叢集數據行視覺效果和字段選取專案的螢幕快照。

  2. 將下列欄位新增至 Y 軸,以滑鼠右鍵按下每個欄位,並確定 已選取 [總和 ]。

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. 若要變更報表標題、圖例或其他報表視覺效果,請從 [視覺效果] 窗格中選取 [格式化您的視覺效果油漆筆刷] 圖示,然後調整一或多個設定。

您的報表看起來應該類似下圖。

Power BI 範例管線持續時間叢集數據行報告的螢幕快照。