分析最佳做法

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

分析是 Azure DevOps 的報告平臺,可讓您從數據取得見解,並做出數據驅動決策。 分析已針對快速讀取存取和伺服器型匯總進行優化,並提供各種工具來可視化和分析您的數據。 在本文中,我們會分享在 Azure DevOps 中使用分析的一些最佳做法。

必要條件

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

熟悉分析元數據

查詢分析元數據,以熟悉實體類型、實體集、屬性和列舉清單。 如需詳細資訊,請參閱查詢 Azure Boards 的分析服務分析 OData 元數據和實體和屬性參考。

建構查詢以傳回您需要的數據

若要查詢建立報表所需的最小數據集,請遵循下列做法:

選擇支援報表的實體集

雖然分析數據模型支持數 EntitySets 個,但只有少數用來產生報表。EntitySets 用來建置報表分為三個類別:

  • 目前:包含 內含EntitySet之 目前組態EntityTypes的相關信息。
  • 快照集:結合歷程記錄和日期相關數據的復合實體。 快照集實體是用來支持匯總報表。
  • 修訂:包含歷程記錄資訊。 例如, WorkItemRevision 維護工作專案歷程記錄的相關數據。

以下是要指定以支持報表之 EntityTypes 的快速參考。 如需每個 EntityType 的描述,請參閱 分析的數據模型。

Azure DevOps 數據 目前 快照式 修訂
Azure Boards WorkItems WorkItemSnapshot
WorkItemBoardSnapshot
WorkItemRevisions
Azure Pipelines Pipelines
PipelineTasks
ParallelPipelineJobsSnapshot
PipelineRuns, PipelineRunActivityResults
Azure Pipelines 和測試 TestResultsDaily TestRuns
Azure Test Plans Tests
TestConfiguration
TestPoints
WorkItems
TestResultsDaily
TestPointHistorySnapshot

依執行查詢元件的順序指定查詢元件

各種查詢元件的建議順序是依照下列順序指定它們,也就是評估它們的順序。 如需每個查詢元件的描述,請參閱 查詢分析服務、查詢選項

  1. $apply
  2. $filter
  3. $orderby
  4. $expand
  5. $select
  6. $skip
  7. $top

所有查詢都必須包含 $apply$select 子句,否則您可能會收到警告訊息。

限制您在查詢中要求的數據行

您可以使用 子句指定要傳 $select 回的數據行。 透過自定義,工作專案可以有許多相關聯的欄位。 查詢參考的屬性或欄位越多,處理成本就越高。 請考慮您想要產生的報表,並確定您只要求所需的欄位。

例如,若要傳回篩選的工作專案集標識碼、工作專案類型、標題和狀態欄位,請指定下列 $select 子句: $select=WorkItemId, WorkItemType, Title, State

若要查閱屬性清單及其對應的功能變數名稱,請參閱 Azure Boards 的實體和屬性參考。

建立預覽查詢

預覽查詢是傳回單一記錄或小型記錄子集的查詢。 藉由建立預覽查詢,您可以精簡查詢,以確保您要求所需的數據。 從最小查詢開始,您可以建置查詢,以確保您要指定記錄,以及所需的數據行數據。

藉由使用 apply=aggregate($count as Count),您可以識別您要要求的記錄數目。 例如,下列語法會查詢 Fabrikam Fiber 專案的工作項目數目。

https://analytics.dev.azure.com/content-learn/Content/_odata/v4.0-preview/WorkItems? $apply=aggregate($count as Count)

回應會傳回總共 1415 個工作專案。

{
  "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam Fbier/_odata/v4.0-preview/$metadata#WorkItems(Count)",
   "value": [
  {
     "@odata.id": null,
   "Count": 1415
  }
  ]
}

將查詢限制為您可以存取的專案

專案範圍查詢會傳回單一專案的相關信息,而組織範圍查詢則設計為傳回跨專案界限的資訊。 組織範圍查詢需要更廣泛的用戶權力或仔細的範圍限制,以確保您的查詢不會因為項目許可權不足而遭到封鎖。

如果您有一或多個專案的存取權,但無法存取所有專案,而且您提交組織範圍的查詢,您會收到錯誤訊息。

"VS403496: The query results include data in one or more projects for which you do not have access. Add one or more projects filters to specify the project(s) you have access to in 'WorkItems' entity. If you're using $expand or navigation properties, project filter is required for those entities. More information can be found here: https://go.microsoft.com/fwlink/?LinkId=786441."

若要深入瞭解,請參閱 專案和組織範圍的查詢

檢閱警告和錯誤訊息

分析會檢閱它收到的每個查詢,以違反其規則。 它會在偵測到違規時傳回警告訊息。 建議您檢閱這些訊息,以更正或改善查詢結構。

速率限制和節流

對 Azure DevOps Services 分析進行的查詢受限於速率限制。 如果傳送太多查詢來要求在短時間內傳回大量數據,服務可能會受到節流。 如需詳細資訊,請參閱 速率和使用量限制

您可以移至 [組織 設定>][使用者] 並執行篩選,以檢閱服務和個人的使用方式。 例如,下圖顯示 Jamal Hartnett 對 Analytics 服務的使用量

單一使用者和分析的 [使用量] 頁面螢幕快照。