Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
Azure DevOps 的 Analytics 數據模型是由實體集所組成,其成員 (實體) 包含您可以篩選、彙總和摘要的屬性。 此外,它們還包含 將實體與其他實體建立關聯的導覽屬性 ,以提供其他屬性的存取權,以供選取、篩選和分組。
注意
Azure DevOps Services 內所有服務的生產環境中會自動啟用及支援 Analytics 服務。 Power BI 整合 及存取 分析服務的 OData 資料流 已普遍可用。 建議您使用 Analytics OData 摘要並提供意見反應。
可用的數據與版本相關。 OData API 的最新支援版本是 v2.0,而最新的預覽版本是 v4.0-preview。 如需詳細資訊,請參閱 OData API 版本控制。
注意
Azure DevOps Server 2020 和更新版本的所有新專案集合都會在生產環境中自動安裝並支援 Analytics 服務。 Power BI 整合 及存取 分析服務的 OData 資料流 已普遍可用。 建議您使用 Analytics OData 摘要並提供意見反應。 如果您從 Azure DevOps Server 2019 升級,您可以在升級期間安裝 Analytics 服務。
可用的數據與版本相關。 OData API 的最新支援版本是 v2.0,而最新的預覽版本是 v4.0-preview。 如需詳細資訊,請參閱 OData API 版本控制。
瞭解 Analytics 資料模型
Analytics 服務提供結構化方法,透過 OData 端點存取 Azure DevOps 數據。 此資料模型可讓您:
- 查詢工作追蹤資料:存取工作項目、區域、迭代和相關中繼資料
- 分析管線資訊:查詢建置和發行管線資料
- 測試結果報告:存取測試執行和規劃資料
- 建立自訂報表:建置 Power BI 報表和其他分析解決方案
綱要命名空間
Analytics 資料模型在兩個結構描述命名空間上運作:
Microsoft.VisualStudio.Services.Analytics.ModelMicrosoft.VisualStudio.Services.Analytics
這些命名空間會組織實體並定義其結構,確保不同 Azure DevOps 功能之間的資料存取模式一致。
實體集和實體類型
實體類型是具有索引鍵的具名結構化型別。 他們會定義每個實體的具名屬性和關聯性。
EntityType 的鍵源自於基本屬性的子集,例如 WorkItemId、PipelineId、ReleasePipelineId,以及該實體類型的其他屬性。
實體集是實體的具名集合。 例如,WorkItems 是一個包含 WorkItem 實體的實體集。 實體的索引鍵可唯一識別實體集內的實體。 如果多個實體集使用相同的實體類型,索引鍵值的相同組合可能會出現在多個實體集中並識別不同的實體,每個實體集都會顯示此索引鍵組合。 每個實體都有不同的實體標識碼。實體集提供數據模型的進入點。
實體集會在 OData 元數據中描述,並依專案而有所不同。 您可以藉由要求專案的 OData 元數據,來探索實體集、實體類型和屬性的完整清單。 若要瞭解如何,請參閱 建構分析的 OData 查詢。
複合實體
複合實體支援特定場景。 系統從更簡單的實體組成它們,通常需要更多的運算資源來產生,並且可能會傳回更大的結果集。 若要達到最佳效能並避免不必要的節流,請確定您查詢情境所需的正確實體。
例如, WorkItemSnapshot 結合 WorkItemRevisions 和 Dates ,讓每個日期每個工作專案都有一個修訂。 此表示法支援 OData 查詢,這些查詢著重於一組已篩選工作專案的趨勢資料。 不過,您不應該使用此複合實體來查詢工作專案的目前狀態。 相反地,您應該使用 WorkItems 實體集來產生執行速度更快的查詢。
同樣地,某些實體可能包含所有歷史值,而其他實體可能只包含目前的值。
WorkItemRevisions 包含所有工作專案歷程記錄,而在需要關注當前值的情況下,不應該使用這些記錄。
關係
若要產生更複雜的查詢結果,您可以使用關聯性來合併實體。 您可以使用關聯性來展開、篩選或摘要數據。
某些導覽屬性會產生單一實體,而其他則會產生實體的集合。 下圖顯示選取實體及其導覽屬性。 為了清楚起見,已省略一些複合實體和關聯性。
瞭解實體關係
Analytics 資料模型會使用數種類型的關係:
- 一對多:單一父實體與多個子實體相關,例如,一個區域對多個工作項目。
- 多對一:多個實體與單一父實體相關,例如,許多工作項與一個範疇。
- 一對一:單一實體與一個其他實體相關
- 多對多:多個實體與多個其他實體有關聯(例如,工作項目與標籤)
關聯鍵
實體關聯性也會表示為外鍵,讓外部工具可以聯結實體。 這些屬性具有後綴 「SK」 而且是整數或 GUID 數據類型。 日期屬性具有具有下列格式的對應整數日期索引鍵屬性: YYYYMMDD。
工作跟蹤實體類型和實體組合
指定的 API 版本支援下列實體類型和實體集。 如需完整的參考,請參閱 Azure Boards Analytics 的工作追蹤元數據參考。
EntityType/EntitySet |
描述 | v1.0 | v2.0 | v3.0-preview | v4.0-preview |
|---|---|---|---|---|---|
|
適用範圍/ 區域 |
工作專案 區域路徑,具有依區域階層分組和篩選的屬性。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
反覆程序/ 反覆運算 |
工作專案 反覆運算路徑,具有依反覆運算階層分組和篩選的屬性。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
電路板位置/ BoardLocations |
面板數據格位置,如板柱、泳道和分割所識別,包括歷史板設定。 如需每個面板欄位的描述,請參閱 工作流程和面板欄位。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
行事曆日期/ 日期 |
用來使用關聯性來篩選和分組其他實體的日期。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
計畫/ 專案 |
針對組織(雲端)或專案集合(內部部署)定義的所有專案。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
處理/ 程序 |
用來展開或篩選工作專案和工作專案類型的積壓資訊。 如需使用 進程 來篩選報表的範例,請參閱 需求追蹤範例報告。 | ✔️ | ✔️ | ✔️ | |
|
標籤/ 標籤 |
每個專案的所有工作項目標記。 如需使用 標籤 來篩選報表的範例,請參閱 發行燒毀範例報表。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
小組/ 團隊 |
針對項目定義的所有小組。 如需使用 Teams 篩選報表的範例,請參閱 將小組交叉分析篩選器新增至Power BI報表。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
使用者/ 使用者 |
您使用的使用者資訊可用來展開或篩選各種工作專案屬性,例如指派給、建立者。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
工作項目板快照/ 工作項目看板快照 |
(綜合)每個行事曆日期上每個工作項目的狀態,包括用來產生趨勢報表的面板位置。 如需範例報表,請參閱 累積流程圖 (CF) 範例報表。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
工作項目連結/ 工作項目連結 |
工作項目之間的連結,例如 Child、 Parent 和 Related。 只包含連結的最新修訂,沒有歷程記錄。 未包含超連結。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
WorkItem修訂/ 工作項目修訂 |
所有歷史工作項目修訂,包括當前的修訂。 不包含已刪除的工作專案。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
工作項目快照/ WorkItemSnapshot |
(綜合)每個行事曆日期上每個工作專案的狀態,用來支援趨勢報告。 如需範例報告,請參閱 錯誤趨勢範例報告。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
工作項目/ WorkItems |
工作專案的目前狀態。 用來支持狀態報告。 如需範例報表,請參閱 將子工作專案的值匯總至父專案的範例報表。 | ✔️ | ✔️ | ✔️ | ✔️ |
|
工作項目類型欄位/ 工作項目類型欄位 |
每個工作專案類型和進程的工作項目屬性。 用來支援建置報表。 | ✔️ | ✔️ | ✔️ | ✔️ |
用於報告的關鍵工作追蹤實體
建立報表時,請考慮以下主要實體集:
-
目前狀態報告:用於
WorkItems目前的工作項目狀態 -
歷史趨勢報告:用於
WorkItemSnapshot一段時間內的趨勢分析 -
詳細的變更追蹤:使用
WorkItemRevisions來獲取完整歷史記錄 -
看板特定報告:用於
WorkItemBoardSnapshot看板分析
管線實體類型和實體集
以下實體類型和實體集受 v3.0-preview 或 v4.0-preview Analytics 版本的支援。 如需完整參考,請參閱 管線中繼資料參考。
| 實體類型/實體集 | 描述 | v3.0-preview | v4.0-preview |
|---|---|---|---|
| 分支/ 分支 |
測試或管線中使用的分支基本資訊。 如需範例報表,請參閱 進度狀態範例報告。 | ✔️ | ✔️ |
|
ParallelPipelineJobs快照/ ParallelPipelineJobsSnapshot |
(綜合)支持瞭解平行管線耗用量。 如需平行管線測試的詳細資訊,請參閱 使用Visual Studio測試工作平行執行測試。 | ✔️ | |
|
管線/ 管線 |
管線的屬性。 | ✔️ | ✔️ |
|
流水線作業/ PipelineJobs |
管線運行中特定工作之個別執行結果。 | ✔️ | ✔️ |
|
管道執行/ PipelineRuns |
管線的執行資訊。 如需範例報表,請參閱 管線通過率趨勢範例報告。 | ✔️ | ✔️ |
|
管線運行活動結果/ PipelineRunActivityResults |
特定管線執行內所有階段、步驟、作業和工作的合併記錄。 如需範例報表,請參閱 管線工作持續時間範例報告。 | ✔️ | ✔️ |
|
管線任務/ PipelineTasks |
您在管線中使用的工作的屬性。 | ✔️ | ✔️ |
|
TaskAgentPoolSize快照/ TaskAgentPoolSizeSnapshots |
(綜合)支援瞭解集區大小、管線作業和並行。 代理池的歷史圖表說明此實體集如何使用。 | ✔️ | |
|
TaskAgentRequestSnapshot/ TaskAgentRequestSnapshots |
(複合)提供對一段時間內的代理請求模式和資源利用率的洞察。 | ✔️ |
管線實體使用模式
不同的管線實體會提供特定的報告場景:
-
管線概觀報表:使用
Pipelines和PipelineRuns用於高階指標 -
效能分析:用於
PipelineRunActivityResults詳細的時序分析 -
資源使用率:使用
TaskAgentPoolSizeSnapshot進行容量規劃 -
失敗分析:使用
PipelineJobs進行工作層級的成功與失敗追蹤
測試實體類型和實體集
以下實體類型和實體集受 v3.0-preview 或 v4.0-preview Analytics 版本的支援。 如需完整的參考,請參閱 測試元數據參考。
EntityType/EntitySet |
描述 | v3.0-preview | v4.0-preview |
|---|---|---|---|
|
測試配置/ TestConfigurations |
測試計劃組態資訊。 如需設定測試的詳細資訊,請參閱 測試不同的組態。 | ✔️ | ✔️ |
|
測試結果/ TestResults |
與 TestRun 相關聯的特定測試的個別執行結果。 | ✔️ | ✔️ |
|
測試結果每日/ TestResultsDaily |
每日快照匯總TestResult 的執行,依據 Test 分組(而非 TestRun)。 如需範例報表,請參閱 測試摘要趨勢範例報告。 | ✔️ | ✔️ |
|
測試運行/ TestRuns |
在具有匯總測試結果資料的管線中執行的測試執行資訊。 | ✔️ | ✔️ |
|
測試/ 測試 |
測試案例的屬性,例如測試名稱和測試擁有者。 如需定義測試案例的詳細資訊,請參閱 建立手動測試案例。 | ✔️ | ✔️ |
|
測試點/ TestPoints |
測試點的執行資訊。 測試點是測試案例、測試套件、設定和測試人員的唯一組合。 如需範例報表,請參閱 進度狀態範例報告。 | ✔️ | ✔️ |
|
TestPointHistory Snapshot/ TestPointHistorySnapshots |
(綜合)測試點在一段時間內的歷史執行數據。 如需範例報表,請參閱 手動測試執行趨勢範例報告。 | ✔️ | ✔️ |
|
測試套件/ TestSuites |
測試套件資訊。 如需定義測試套件的詳細資訊,請參閱 建立測試計劃和測試套件。 | ✔️ | ✔️ |
測試實體物件報告場景
測試實體支援各種報告需求:
-
測試執行追蹤:使用
TestResults和TestRuns取得詳細的執行資料 -
測試規劃指標:使用
TestPoints和TestSuites規劃涵蓋範圍 -
趨勢分析:使用
TestResultsDaily和TestPointHistorySnapshots用於歷史趨勢 -
配置覆蓋率:使用
TestConfigurations進行多平台測試分析
使用 Analytics 資料模型的最佳做法
效能優化
- 選擇正確的實體:使用當前狀態的實體來進行狀態報告,使用快照型實體來分析趨勢。
- 儘早篩選:在實體層級套用篩選器,而不是在資料擷取之後套用篩選器
- 限制資料範圍:使用日期篩選器限制歷史資料查詢
- 使用適當的聚合: 盡可能利用內置的聚合功能
查詢設計模式
目前狀態查詢
/WorkItems?$filter=State ne 'Closed'&$select=WorkItemId,Title,State
歷程趨勢查詢
/WorkItemSnapshot?$filter=DateSK ge 20241001&$select=WorkItemId,State,DateSK
關係導覽
/WorkItems?$expand=Area($select=AreaPath),AssignedTo($select=UserName)
要避免的常見陷阱
-
針對目前狀態使用修訂實體:如果
WorkItemRevisions已足夠,則不要使用WorkItems - 過度擴展關係:只展開必要的導航屬性
- 缺少篩選器:一律篩選大型實體集以提高效能
-
忽略複合實體:使用複合實體,例如
WorkItemSnapshot進行趨勢分析
版本考量
不同的 API 版本提供不同的功能:
- v1.0:基本工作追蹤實體
- v2.0:新增流程和增強的過濾功能
- v3.0-preview:已新增管線和測試實體
- v4.0-preview:增強的複合實體和其他流程指標
根據您的報告要求和您需要存取的實體選擇合適的版本。