Bagikan melalui


Data pelacakan kerja agregat menggunakan Analytics

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Anda bisa mendapatkan sejumlah data pelacakan kerja dengan salah satu dari dua cara menggunakan Analytics dengan OData. Metode pertama mengembalikan jumlah item kerja sederhana berdasarkan kueri OData Anda. Metode kedua mengembalikan hasil berformat JSON berdasarkan kueri OData Anda yang menjalankan Ekstensi Agregasi OData.

Artikel ini membuat informasi yang disediakan dalam Membuat kueri OData untuk Analitik dan Menentukan kueri dasar menggunakan OData Analytics. Selain itu, kueri adalah artikel ini difokuskan pada pengambilan data item kerja, namun, prinsip-prinsipnya berlaku untuk mengkueri kumpulan entitas lain.

Dalam artikel ini Anda akan mempelajari:

  • Tentang Ekstensi Agregasi OData
  • Cara menggunakan Ekstensi Agregasi untuk OData
  • Cara mengelompokkan dan memfilter hasil agregat
  • Cara mengagregasi data untuk menghasilkan diagram Alur Kumulatif

Untuk mempelajari cara menghasilkan hitungan sederhana, lihat Mengembalikan jumlah item (tidak ada data lain) dan Mengembalikan hitungan item dan data.

Catatan

Layanan Analytics diaktifkan secara otomatis dan didukung dalam produksi untuk semua Layanan Azure DevOps. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik. Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Penerapan versi OData API.

Catatan

Layanan Analytics secara otomatis diinstal dan didukung dalam produksi untuk semua koleksi proyek baru untuk Azure DevOps Server 2020 dan versi yang lebih baru. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik. Jika Anda meningkatkan dari Azure DevOps Server 2019, maka Anda dapat menginstal layanan Analytics selama peningkatan.

Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Penerapan versi OData API.

Catatan

Layanan Analytics sedang dalam pratinjau untuk Azure DevOps Server 2019. Anda dapat mengaktifkan atau menginstalnya untuk koleksi proyek. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik ada di Pratinjau. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik.

Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Penerapan versi OData API.

Apa itu Ekstensi Agregasi untuk OData?

Analitik bergantung pada OData untuk menulis kueri atas data pelacakan kerja Anda. Agregasi di OData dicapai menggunakan ekstensi yang memperkenalkan $apply kata kunci. Kami memiliki beberapa contoh cara menggunakan kata kunci ini di bawah ini. Pelajari selengkapnya tentang ekstensi di Ekstensi OData untuk Agregasi Data.

Data agregat menggunakan ekstensi agregasi OData

Sekarang setelah Anda melihat cara melakukan hitungan sederhana, mari kita tinjau cara memicu agregasi menggunakan $apply token di mana format dasar di akhir URL adalah sebagai berikut:

/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})

Di mana:

  • {entitySetName} adalah entitas yang perlu dikueri
  • {columnToAggregate} adalah kolom agregasi
  • {aggregationType} akan menentukan tipe agregasi yang digunakan
  • {newColumnName} menentukan nama kolom yang memiliki nilai setelah agregasi.

Data agregat menggunakan ekstensi terapkan

Dengan ekstensi ini $apply , Anda bisa mendapatkan hitungan, jumlah, dan informasi tambahan saat mengkueri data pelacakan kerja Anda.

Mengembalikan jumlah semua pekerjaan yang tersisa

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(RemainingWork with sum as SumOfRemainingWork)

Mengembalikan pengidentifikasi item kerja terakhir

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(WorkItemId with max as MaxWorkItemId)

Mengelompokkan hasil menggunakan klausa groupby

Ekstensi agregasi OData juga mendukung klausa yang identik dengan klausa groupby SQL GROUP BY . Anda dapat menggunakan klausul ini untuk memecah angka dengan cepat secara lebih rinci.

Misalnya, klausa berikut ini mengembalikan hitungan item kerja:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate($count as Count)

groupby Tambahkan klausa untuk mengembalikan hitungan item kerja menurut jenis:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType), aggregate($count as Count))

Ini mengembalikan hasil yang mirip dengan contoh ini:

{
  "@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
    }
  ]
}

Anda juga dapat mengelompokkan menurut beberapa properti seperti dalam contoh ini:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType, State), aggregate($count as Count))

Ini mengembalikan hasil yang mirip dengan contoh ini:

{
  "@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
    }
  ]
}

Anda juga dapat mengelompokkan di seluruh entitas, namun pengelompokan OData berbeda dari bagaimana Anda mungkin biasanya memikirkannya.

Misalnya, Anda ingin tahu berapa banyak area di setiap proyek dalam organisasi atau koleksi. Di OData, "hitung semua area dan kelompokkan berdasarkan proyek" setara dengan "beri saya semua proyek dan hitungan area untuk setiap proyek". Ini menghasilkan kueri yang mirip dengan:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $apply=groupby((Project/ProjectName), aggregate($count as Count))

Memfilter hasil agregat

Anda juga dapat memfilter hasil agregat, namun hasilnya diterapkan sedikit berbeda dari saat Anda tidak menggunakan agregasi. Analitik mengevaluasi filter di sepanjang pipa sehingga selalu yang terbaik untuk melakukan pemfilteran paling diskrit terlebih dahulu.

Filter terlihat seperti contoh ini:

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))

Catatan

Anda tidak perlu memberikan groupby klausul. Anda cukup menggunakan aggregate klausul untuk mengembalikan satu nilai.

Menghasilkan beberapa agregasi dalam satu panggilan

Anda mungkin ingin memberikan beberapa informasi. Contohnya adalah jumlah pekerjaan yang telah selesai dan secara terpisah jumlah pekerjaan yang tersisa. Dalam kasus seperti itu, Anda dapat melakukan panggilan terpisah atau satu panggilan sebagai berikut:

/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)

Ini akan mengembalikan hasil yang terlihat seperti contoh ini:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
    {
      "@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
    }
  ]
}

Membuat properti terhitung untuk digunakan dalam satu panggilan

Anda mungkin perlu menggunakan ekspresi matematika untuk menghitung properti untuk digunakan dalam tataan hasil. Contohnya adalah jumlah pekerjaan yang selesai yang dibagi dengan jumlah pekerjaan yang selesai ditambah jumlah pekerjaan yang tersisa untuk menghitung persentase pekerjaan yang selesai. Dalam kasus seperti itu, Anda dapat menggunakan contoh ini:

/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
    }
  ]
}

Membuat Diagram Alur Kumulatif dari data agregat

Katakanlah Anda ingin membuat diagram alur kumulatif di Power BI. Anda bisa menggunakan kueri yang mirip dengan kueri di bawah ini:

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

Ini mengembalikan hasil yang mirip dengan contoh ini. Anda kemudian dapat menggunakannya langsung dalam visualisasi data pilihan Anda.

{
  "@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"
    }
  ]
}

Mari kita lihat apa yang sebenarnya dilakukan kueri ini:

  • Memfilter data ke tim tertentu
  • Memfilter data ke backlog tertentu
  • Mengembalikan hitungan item kerja.

Saat me-refresh Power BI atau Excel, semakin sedikit baris yang diperlukan, semakin cepat refresh terjadi.

Langkah berikutnya