分享方式:


管線工作持續時間範例報告

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

需要多少時間才能完成不同的工作? 本文提供查詢,您可以從中產生特定管線及其工作的報表。 例如,下圖列出從 2022 年 9 月 1 日至 12 月 15 日完成之特定管線的所有工作,以秒為單位的第 50、80 和第 95 個百分位數。

Power BI Pipelines 工作持續時程資料表趨勢報告的螢幕快照。

重要

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

必要條件

  • 存取:至少是具有基本存取權的項目成員。
  • 許可權: 根據預設,項目成員具有查詢分析及建立檢視的許可權。
  • 如需有關服務與功能啟用和一般數據追蹤活動之其他必要條件的詳細資訊,請參閱 存取分析的許可權和必要條件。

注意

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

範例查詢

您可以查詢 PipelineRunActivityResults? 實體集以傳回工作持續時間資訊。

注意

若要判斷篩選或報表用途的可用屬性,請參閱 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/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.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds, "
                &"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds, "
            &"percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds) "
                &"/groupby( "
            &"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName)) "
        &"&$orderby=TaskDuration50thPercentileInSeconds desc "
    ,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 PipelineRunCompletedOn/Date ge {startdate}

傳回管線在指定日期或之後執行的工作結果。

and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')

只傳回成功或部分成功的管線執行的工作結果。

and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)

省略已取消、略過或已放棄的管線執行。

)

filter()關閉 子句。

/compute(

Start compute() 子句。

percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,

針對每個工作,針對符合篩選準則的所有工作,計算工作工期的第 50 個百分位數。

percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,

針對每個工作,針對符合篩選準則的所有工作計算第80個百分位數的工作工期。

percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)

針對每個工作,針對符合篩選準則的所有工作計算第95個百分位數的工作工期。

/groupby(

groupby()啟動 子句。

(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))

依管線執行的工作分組,並計算第 50 個百分位數任務工期、第 80 個百分位數任務工期和第 95 個百分位數任務工期。

&$orderby=TaskDuration50thPercentileInSeconds desc

依任務排序回應,其持續時間最高為50個百分位數。

(選擇性)重新命名查詢

您可以將預設查詢標籤 Query1 重新命名為更有意義的專案。 只要從 [ 查詢設定 ] 窗格輸入新名稱即可。

Power BI 查詢功能表選項、重新命名查詢的螢幕快照。

變更數據行數據類型

從 [ 轉換 ] 功能表,將下列數據行的數據類型變更為 Decimal Number**. 若要瞭解如何,請參閱 轉換數據行數據類型
- TaskDuration80thPercentileInSeconds - TaskDuration80thPercentileInSeconds - TaskDuration95thPercentileInSeconds.

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

您可以重新命名資料列欄位。 例如,您可以重新命名下列數據行,使其更容易顯示。 若要瞭解如何,請參閱 重新命名數據行欄位

原始功能變數名稱 已重新命名的欄位
TaskDisplayName 工作名稱
TaskDuration50thPercentileInSeconds 第50個百分位數
TaskDuration80thPercentileInSeconds 第80個百分位數
TaskDuration95thPercentileInSeconds 第95個百分位數

關閉查詢並套用您的變更

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

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

建立數據表報表

  1. 在 Power BI 的 [視覺效果],選擇 [數據表] 報表。 欄位已重新命名,如重新命名數據行欄位區段中所示

    任務工期數據表報表的視覺效果字段選取項目螢幕快照。

  2. 依指定的順序,將下列字段新增至 Columns。

    • 任務名稱
    • 第50個百分位數
    • 第80個百分位數
    • 第95個百分位數
  3. 若要變更報表標題,請從 [視覺效果] 窗格中選取 [格式化您的視覺油漆筆刷] 圖示,選取 [一般],展開 [標題],然後取代現有的文字。

下圖顯示結果報表的一部分。

Power BI Pipelines 範例工作持續時程資料表趨勢報告的螢幕快照。