Analytics kullanarak iş izleme verilerini toplama
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019
OData ile Analytics'i kullanmanın iki yolu arasında iş izleme verilerinizin toplamını elde edin. İlk yöntem, OData sorgunuza göre basit bir iş öğesinin sayısını döndürür. İkinci yöntem, OData Toplama Uzantısını alıştırmaya alan OData sorgunuza göre JSON biçimli bir sonuç döndürür.
Bu makalede şunları öğrenirsiniz:
- OData Toplama Uzantısı Hakkında
- İş öğelerinin basit bir sayısını oluşturma
- OData için Toplama Uzantısını Kullanma
- Toplanan sonuçları grupla ve filtrele
- Toplu veri diyagramı oluşturmak için Flow toplama
Not
Analytics hizmeti tüm hizmetler için otomatik olarak Azure DevOps Services. Üretimde kullanım için de desteklemektedir. Power BI analytics hizmetinin OData akışına tümleştirme ve erişim önizlemededir. Bunu kullanmanız ve bize geri bildirim sağlamanız için sizi teşvik ederiz. .
Not
Analytics hizmeti, Azure DevOps Server 2020 için tüm yeni proje koleksiyonlarında otomatik olarak yüklenir. Üretimde kullanım için de desteklemektedir. Power BI analytics hizmetinin OData akışına tümleştirme ve erişim önizlemededir. Bunu kullanmanız ve bize geri bildirim sağlamanız için sizi teşvik ederiz. Azure DevOps Server 2019'dan yükseltme yaptıysanız, yükseltme sırasında Analytics hizmetini yükleme seçeneği sağlanır.
Not
Analytics hizmeti, Azure DevOps Server 2019 için önizlemededir. Analytics'e bir proje koleksiyonu için etkinleştirerek veya yükleyerek erişin. Power BI analytics hizmetinin OData akışına tümleştirme ve erişim önizlemededir. Bunu kullanmanız ve bize geri bildirim sağlamanız için sizi teşvik ederiz.
OData için Toplama Uzantısı nedir?
Analiz, iş izleme verileriniz üzerinde sorgular oluşturmak için OData kullanır. OData'daki toplamalar, anahtar sözcüğünü tanıtan bir uzantı kullanılarak $apply elde edilir. Aşağıda bu anahtar sözcüğü kullanmayla ilgili bazı örnekler verilmiştir. Uzantı hakkında daha fazla bilgi için OData Uzantısı veri toplama sayfasını kullanın.
Temel kök URL
Bu makalede sağlanan tüm örnekler için ön ek olarak bu temel kök URL'yi kullanın.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/
https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/
Not
Bu makalede gösterilen örnekler bir url'Azure DevOps Services temel Azure DevOps Server. Url'nizin yerine Azure DevOps Server gerekir.
Basit sayı toplamaları
İlk olarak, toplama uzantıları olmadan sayıların nasıl yapılacağına bakalım.
Temel sayım, SORGU seçeneğini $count URL'nin sonuna ekleyerek yapılır. Örneğin, kaç iş öğelerinin tanımlandığı hakkında bilgi için sorgunuza şu dizeyi eklersiniz:
/WorkItems/$count
Tam OData sorgusu şu şekildedir:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems/$count
Not
Değeri {version} olarak v1.0 biçimlendirildi. Desteklenen en son sürüm , v2.0 en son önizleme sürümü ise sürümüdür. v4.0-preview Daha fazla bilgi için bkz. OData API sürümü.
Karşılaştırma için OData toplama uzantısını kullanarak şu dizeyi sorgunuza eklersiniz:
/WorkItems?$apply=aggregate($count as Count)
Tam OData sorgusu şu şekildedir:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate($count as Count)
Basit sayımlar için toplama olmayan yaklaşımın daha basit bir söz dizimi vardır.
Not
kullanarak $count tek bir sayı döndürür; OData toplama uzantısını kullanarak biçimlendirilmiş bir JSON döndürür.
Saymak istediğiniz verileri de filtreleysiniz. Örneğin, "Devam Ediyor" durumdaki iş öğelerinin kaç tane olduğunu bilmek için sorgunuza aşağıdaki dizeyi belirtin:
/WorkItems/$count?$filter=State eq 'In Progress'
Tam OData sorgusu şu şekildedir:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems/$count?
$filter=State eq 'In Progress'
Karşılaştırma için, veri toplamalarını kullanarak bu kod parçacığını sorgunuza eklersiniz:
/WorkItems?$apply=filter(State eq 'In Progress')/aggregate($count as Count)
Tam OData sorgusu şu şekildedir:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=
filter(State eq 'In Progress')/
aggregate($count as Count)
OData toplama uzantısını kullanarak verileri toplama
Basit sayımlar yapma hakkında bilgi edindik. Şimdi URL'nin sonundaki temel biçimin bulunduğu belirteci kullanarak toplamaları tetiklemeyi $apply gözden geçirebilirsiniz:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
Konum:
- {entitySetName}, sorgulanmaya ihtiyaç olan varlıktır
- {columnToAggregate} toplama sütunu
- {aggregationType} kullanılan toplama türünü belirtir
- {newColumnName}, toplama sonrasında değerleri olan sütunun adını belirtir.
Uygulama uzantısı kullanılarak toplanan veriler
Uzantıyı $apply kullanarak iş izleme verilerinizi sorgularken sayımları, toplamları ve ek bilgileri elde edinebilirsiniz.
Kalan tüm çalışmaların toplamını iade
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
Son iş öğesi tanımlayıcısını iade
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
groupby yan tümcesini kullanarak sonuçları grupla
OData toplama uzantısı, SQL yan tümcesi ile groupby aynı olan yan tümcesini GROUP BY de destekler. Bu yan tümceyi kullanarak sayıları daha ayrıntılı bir şekilde inceebilirsiniz.
Örneğin, bu yan tümcesi iş öğelerinin sayısını dönecektir:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate($count as Count)
türe groupby göre iş öğelerinin sayısını dönmek için yan tümcesini ekleyin:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
Bu örnektekine benzer bir sonuç döndürür:
{
"@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
}
]
}
Ayrıca, bu örnekte olduğu gibi birden çok özelle grup oluşturabilirsiniz:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
Bu örnektekine benzer bir sonuç döndürür:
{
"@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
}
]
}
Varlıklar arasında da gruplandırın, ancak OData gruplama, normalde bunu nasıl düşünebilirsiniz?
Toplu sonuçları filtreleme
Ayrıca, toplu sonuçları filtreleyebölgeler, toplama kullanmama durumlara göre biraz daha farklı uygulanır. Analiz bir kanal boyunca filtreleri değerlendirir, bu nedenle her zaman en iyi ilk olarak en ayrık filtrelemeyi yapmaktır.
Filtreler şu örnekteki gibi görünüyor:
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))
Not
yan tümcesini sağlamak zorunda groupby değil. Tek bir değer dönmek aggregate için yan tümcesini kullanabilirsiniz.
Tek bir çağrıda birden çok toplama oluşturma
Birden çok bilgi sağlamak istiyor olabilir. Tamamlanan çalışmaların toplamı ve kalan çalışmaların ayrı toplamı örnek olarak ve bir örnektir. Böyle bir durumda, aşağıdaki gibi ayrı çağrılar veya tek bir çağrı yapabilirsiniz:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
Bu örnekteki gibi görünen bir sonuç dönecektir:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
{
"@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
}
]
}
Tek bir çağrıda kullanmak için hesaplanmış özellikler oluşturma
Bir sonuç kümesinde kullanmak üzere özellikleri hesaplamak için matematik ifadesi kullanmak zorundayabilirsiniz. Tamamlanan çalışmaların toplamı, tamamlanan iş toplamına ek olarak tamamlanan iş yüzdesini hesaplamak için kalan iş toplamına bölünen bir örnektir. Böyle bir durumda şu örneği kullanabilirsiniz:
/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
}
]
}
Toplama verilerinden Flow Toplu Veri Diyagramı Oluşturma
Bu diyagramda birikmeli akış diyagramı oluşturmak istediğinizi Power BI. Aşağıdakine benzer bir sorgu kullanabilirsiniz:
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
Bu örnektekine benzer bir sonuç döndürür. Daha sonra bu özelliği doğrudan tercihi olan veri görselleştirmeniz içinde kullanabilirsiniz.
{
"@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"
}
]
}
Şimdi bu sorgunun gerçekte ne yaptığına bakalım:
- Verileri belirli bir ek takıma filtreler
- Verileri belirli bir biriktirme listesiyle filtreler
- İş öğelerinin sayısını döndürür.
Yenilenen Power BI Excel, gereken satır sayısı ne kadar az olursa yenileme o kadar hızlı gerçekleşir.