Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Anda dapat menggabungkan data pelacakan kerja dengan menggunakan Analytics dengan OData dengan dua cara: gunakan $count untuk total sederhana, atau menggunakan ekstensi agregasi OData $apply untuk mengembalikan hasil yang dikelompokkan, difilter, dan dihitung sebagai JSON.
Petunjuk / Saran
Anda dapat menggunakan AI untuk membantu tugas ini nanti di artikel ini, atau lihat Mengaktifkan bantuan AI dengan Azure DevOps MCP Server untuk memulai.
Artikel ini dibangun berdasarkan Membangun kueri OData untuk Analitik dan Menggunakan OData Analytics untuk menentukan kueri dasar. Contoh berfokus pada data item kerja, tetapi prinsip yang sama berlaku untuk kumpulan entitas lain. Untuk kueri hitungan sederhana, lihat Mendapatkan hitungan item.
Catatan
Layanan Analitik diaktifkan secara otomatis dan didukung dalam produksi untuk semua layanan dalam Azure DevOps Services. Integrasi Power BI dan akses ke umpan OData dari layanan Analytics kini tersedia secara umum. Anda dianjurkan untuk menggunakan umpan OData Analytics dan memberikan umpan balik.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung dari API OData adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Versioning API OData.
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 Power BI dan akses ke umpan OData dari layanan Analytics kini tersedia secara umum. Anda dianjurkan untuk menggunakan umpan OData Analytics dan memberikan umpan balik. Jika Anda meningkatkan dari Azure DevOps Server 2019, Anda dapat menginstal layanan Analytics selama peningkatan.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung dari API OData adalah v2.0, dan versi pratinjau terbaru adalah v4.0-preview. Untuk informasi selengkapnya, lihat Versioning API OData.
Prasyarat
| Kategori | Persyaratan |
|---|---|
| Tingkat akses |
-
anggota proyek. - Setidaknya akses dasar. |
| Izin | Secara default, anggota proyek memiliki izin untuk mengkueri Analytics dan membuat tampilan. Untuk informasi selengkapnya tentang prasyarat lain mengenai pengaktifan layanan dan fitur serta aktivitas pelacakan data umum, lihat Izin dan prasyarat untuk mengakses Analitik. |
Tentang ekstensi agregasi $apply
OData menyediakan ekstensi agregasi yang memperkenalkan $apply kata kunci untuk mengelompokkan, memfilter, dan menghitung nilai agregat atas data pelacakan kerja Anda. Bagian berikut menunjukkan cara menggunakan $apply dengan , , aggregategroupby, dan filtercompute. Untuk spesifikasi lengkapnya, lihat Ekstensi OData untuk Agregasi Data.
Agregat data dengan menggunakan $apply
Tambahkan $apply token ke URL kueri Anda untuk memicu agregasi. Sintaks dasarnya adalah:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
| Parameter | Deskripsi |
|---|---|
{entitySetName} |
Entitas yang akan dikueri, seperti WorkItems. |
{columnToAggregate} |
Bidang yang akan diagregasikan, seperti RemainingWork. |
{aggregationType} |
Fungsi agregasi: sum, , min, maxaverage, atau countdistinct. |
{newColumnName} |
Alias untuk kolom hasil agregat. |
Contoh berikut menunjukkan operasi umum aggregate .
Kembalikan jumlah semua pekerjaan yang tersisa
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
Mengembalikan ID item kerja terakhir
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
Mengelompokkan hasil menggunakan groupby
Klausa groupby berfungsi seperti SQL GROUP BY - ini memecah hasil agregat oleh satu atau beberapa properti.
Menghitung item kerja menurut jenis
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
Mengembalikan hasil seperti:
{
"value": [
{ "WorkItemType": "Bug", "Count": 3 },
{ "WorkItemType": "Product Backlog Item", "Count": 13 }
]
}
Mengelompokkan menurut beberapa properti
Tambahkan lebih banyak properti di groupby dalam tanda kurung untuk membuat perincian yang lebih halus:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
Mengembalikan satu baris untuk setiap kombinasi unik jenis dan status (misalnya, Bug/Aktif, Bug/Berkomitmen, Item Backlog Produk/Aktif).
Mengelompokkan antar entitas
Anda dapat mengelompokkan di seluruh entitas terkait dengan menggunakan properti navigasi. Misalnya, untuk menghitung area per proyek:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$apply=groupby((Project/ProjectName), aggregate($count as Count))
Memfilter hasil agregat
Gunakan filter() di dalam $apply untuk mempersempit data sebelum atau sesudah agregasi. Rantai beberapa filter dengan menggunakan / (pipa) dan tempatkan filter paling selektif terlebih dahulu untuk performa terbaik.
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
Klausa groupby bersifat opsional. Gunakan aggregate sendiri untuk mengembalikan satu nilai.
Mengagregasi beberapa bidang dalam satu panggilan
Cantumkan beberapa bidang di dalam satu aggregate klausul, dipisahkan oleh koma, untuk menghindari perjalanan pulang pergi tambahan.
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
Pengembalian:
{
"value": [
{ "SumOfCompletedWork": 1525841.29, "SumOfRemainingWork": 73842.39 }
]
}
Menghitung properti
Alihkan hasil agregat ke compute() untuk memperoleh nilai baru dengan menggunakan ekspresi aritmatika (div, add, sub, mul). Contoh berikut menghitung persentase pekerjaan yang diselesaikan:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)
Pengembalian:
{
"value": [
{ "DonePercentage": 0.9676, "SumOfCompletedWork": 1514698.34, "SumOfRemainingWork": 50715.95 }
]
}
Membuat kueri diagram alur kumulatif
Kueri berikut menggabungkan filter, groupby, dan aggregate terhadap WorkItemBoardSnapshot kumpulan entitas untuk menghasilkan data diagram aliran kumulatif di Power BI atau Excel.
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
Kueri ini memfilter menurut rentang tanggal serta papan dan tim tertentu, mengelompokkan berdasarkan tanggal dan kolom papan, dan mengembalikan jumlah per grup. Pengembalian:
{
"value": [
{ "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "Completed", "Count": 324 },
{ "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "In Progress", "Count": 5 }
]
}
Petunjuk / Saran
Semakin sedikit baris yang dikembalikan, Power BI atau Excel yang lebih cepat direfresh. Gunakan rentang tanggal yang ketat dan filter papan dan tim tertentu untuk meminimalkan kumpulan hasil.
Menggunakan AI untuk mengagregasi data pelacakan kerja
Jika mengonfigurasi Azure DevOps MCP Server, Anda dapat meminta asisten AI untuk mengambil data item kerja real time dari organisasi Azure DevOps dan membantu Anda menyusun atau memecahkan masalah kueri agregasi Analytics OData $apply berdasarkan data tersebut.
| Tugas | Contoh tanggapan |
|---|---|
| Hitung menurut provinsi | In <OrganizationName>, draft an Analytics OData $apply query that counts work items grouped by State in <ProjectName>. Use placeholders for <ODataVersion> and any filters I need. |
| Hitung menurut jenis dan status | Create an Analytics OData $apply query for <OrganizationName> that groups WorkItems by WorkItemType and State and returns a count for each group in <ProjectName>. |
| Filter lalu agregat | Write an Analytics OData query that filters WorkItems to bugs with Priority = 1 in <ProjectName>, then groups by Area/AreaPath and State and returns counts. |
| Jumlah total pekerjaan yang tersisa dan telah selesai | Generate an Analytics OData $apply query that filters to Iteration/IterationPath startswith '<IterationPath>' in <ProjectName>, then returns SumOfCompletedWork and SumOfRemainingWork. |
| Agregat antar tim | Help me create an Analytics OData $apply query for WorkItemBoardSnapshot that filters to BoardName '<BoardName>' and Team/TeamName '<TeamName>' in <ProjectName>, then groups by DateValue and ColumnName and returns Count. |
| Menjelaskan setiap klausa | Explain what each part of this $apply query does and how to adjust it for a different iteration: <ODataQueryOrUrl>. |
| Kesalahan debug $apply | This Analytics OData query returns a 400 error. Diagnose the $apply syntax and suggest a corrected query: <ODataQueryOrUrl>. |
| Memvalidasi hasil | Given this Analytics OData query for <OrganizationName>/<ProjectName>: <ODataQueryOrUrl>, tell me what columns and shape of JSON to expect back, and what common mistakes to check if results look wrong. |
Petunjuk / Saran
Jika Anda menggunakan Visual Studio Code, mode agen sangat membantu untuk melakukan iterasi pada kueri agregasi—menyempurnakan filter, memecahkan masalah $apply sintaksis, dan memvalidasi hasil.