流量分析匯總工作追蹤資料
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
您可以使用使用 Analytics 搭配 OData 的兩種方式之一,取得工作追蹤資料的總和。 第一個方法會根據 OData 查詢傳回簡單的工作專案計數。 第二種方法會根據練習 OData 匯總延伸模組的 OData 查詢,傳回 JSON 格式化的結果。
本文建置了 建構適用于分析的 OData 查詢 中提供的資訊,並使用 OData Analytics 定義基本查詢。 此外,本文的查詢著重于擷取工作專案資料,不過,原則適用于查詢其他實體集。
在本文中,您將了解:
- 關於 OData 匯總延伸模組
- 如何使用 OData 的匯總延伸模組
- 如何分組和篩選匯總結果
- 如何匯總資料以產生累計流程圖
若要瞭解如何產生簡單的計數,請參閱傳 回專案計數, (沒有其他資料) 和 傳回專案和資料計數。
注意
所有Azure DevOps Services的生產環境中都會自動啟用並支援 Analytics 服務。
Power BI 整合 和存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。
可用的資料與版本相依。 最新支援的版本為 v2.0
,而最新的預覽版本為 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本設定。
注意
Azure DevOps Server 2020 版和更新版本的所有新專案集合都會在生產環境中自動安裝並支援 Analytics 服務。 Power BI 整合 和存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 如果您從 Azure DevOps Server 2019 升級,您可以在升級期間安裝 Analytics 服務。
可用的資料與版本相依。 最新支援的版本為 v2.0
,而最新的預覽版本為 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本設定。
注意
分析服務目前為 2019 Azure DevOps Server預覽版。 您可以為專案集合 啟用或安裝它 。 Power BI 整合 並存取 Analytics Service 的 OData 摘要 處於預覽狀態。 我們鼓勵您使用它,並提供意見反應給我們。
可用的資料與版本相依。 最新支援的版本為 v2.0
,而最新的預覽版本為 v4.0-preview
。 如需詳細資訊,請參閱 OData API 版本設定。
什麼是 OData 的匯總延伸模組?
分析依賴 OData 來撰寫工作追蹤資料的查詢。 OData 中的匯總是使用引進 關鍵字的 $apply
延伸模組來達成。 以下有一些如何使用這個關鍵字的範例。 深入瞭解 資料匯總的 OData 延伸模組。
使用 OData 匯總延伸模組匯總資料
既然您已瞭解如何執行簡單的計數,讓我們來檢閱如何使用 URL 結尾基本格式的權杖來觸發匯總 $apply
,如下所示:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
其中:
- {entitySetName} 是需要查詢的實體
- {columnToAggregate} 是匯總資料行
- {aggregationType} 會指定使用的匯總類型
- {newColumnName} 指定匯總之後具有值的資料行名稱。
使用套用延伸模組的匯總資料
$apply
使用延伸模組,您可以在查詢工作追蹤資料時取得計數、總和和其他資訊。
傳回所有剩餘工時的總和
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
傳回最後一個工作專案識別碼
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
使用 groupby 子句分組結果
OData 匯總延伸模組也支援 groupby
與 SQL GROUP BY
子句相同的子句。 您可以使用這個子句來更詳細地快速細分數位。
例如,thie 下列子句會傳回工作專案的計數:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate($count as Count)
groupby
新增 子句以依類型傳回工作專案的計數:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
它會傳回類似此範例的結果:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,Count)","value":[
{
"@odata.id":null,"WorkItemType":"Bug","Count":3
},
{
"@odata.id":null,"WorkItemType":"Product Backlog Item","Count":13
}
]
}
您也可以依多個屬性分組,如下列範例所示:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
它會傳回類似此範例的結果:
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"WorkItemType": "Bug",
"Count": 2
},
{
"@odata.id": null,
"State": "Committed",
"WorkItemType": "Bug",
"Count": 1
},
{
"@odata.id": null,
"State": "Active",
"WorkItemType": "Product Backlog Item",
"Count": 5
},
{
"@odata.id": null,
"State": "Committed",
"WorkItemType": "Product Backlog Item",
"Count": 8
}
]
}
您也可以跨實體分組,不過 OData 群組與通常思考的方式不同。
例如,假設您想要知道組織或集合中每個專案中有多少區域。 在 OData 中,「計算所有區域並依專案分組」相當於「為我提供所有專案,以及每個專案的區域計數」。 這會產生類似下列的查詢:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$apply=groupby((Project/ProjectName), aggregate($count as Count))
篩選彙總的結果
您也可以篩選匯總結果,不過它們會與未使用匯總時套用稍微不同。 分析會沿著管道評估篩選,因此最好先執行最離散的篩選。
篩選看起來像下列範例:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=
filter(Iteration/IterationName eq 'Sprint 89')/
filter(WorkItemType eq 'User Story')/
groupby((State), aggregate($count as Count))
注意
您不需要提供 groupby
子句。 您可以直接使用 aggregate
子句傳回單一值。
在單一呼叫內產生多個匯總
您可能想要提供多個資訊片段。 例如已完成工時的總和,以及個別的剩餘工時總和。 在這種情況下,您可以進行個別的呼叫或單一呼叫,如下所示:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
它會傳回類似此範例的結果:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
{
"@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
}
]
}
產生計算屬性以在單一呼叫內使用
您可能需要使用數學運算式來計算屬性,以在結果集中使用。 例如,已完成工時的總和除以已完成工時的總和加上剩餘工時的總和,以計算已完成工時百分比。 在這種情況下,您可以使用下列範例:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
{
"@odata.id":null,"DonePercentage":0.96760221857946638,"SumOfRemainingWork":50715.95,"SumOfCompletedWork":1514698.3400000033
}
]
}
從匯總資料產生累計流程圖
假設您想要在 Power BI 中建立 累計流程圖 。 您可以使用類似以下的查詢:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemBoardSnapshot?$apply=filter(DateValue gt 2015-07-16Z and DateValue le 2015-08-16Z)/filter(BoardName eq 'Stories' and Team/TeamName eq '{teamName}')/groupby((DateValue, ColumnName), aggregate(Count with sum as Count))&$orderby=DateValue
它會傳回類似這個範例的結果。 然後,您可以直接在您選擇的資料視覺效果內使用它。
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemBoardSnapshot(DateValue,ColumnName,Count)",
"value": [
{
"@odata.id": null,
"DateValue": "2015-07-16T00:00:00-07:00",
"Count": 324,
"ColumnName": "Completed"
},
{
"@odata.id": null,
"DateValue": "2015-07-16T00:00:00-07:00",
"Count": 5,
"ColumnName": "In Progress"
}
]
}
讓我們看看此查詢實際上有何用途:
- 將資料篩選至特定小組
- 將資料篩選到特定的待辦專案
- 傳回工作專案的計數。
重新整理 Power BI 或 Excel 時,所需的資料列越少,重新整理的速度就越快。