流量分析匯總工作追蹤資料

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 時,所需的資料列越少,重新整理的速度就越快。

下一步