Wykonywanie zapytań dotyczących danych trendu
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Badanie trendów w danych i porównywanie okresów jest ważnymi aspektami raportowania i analizy danych. Analiza obsługuje te możliwości.
Uwaga
Usługa Analytics jest automatycznie włączona i obsługiwana w środowisku produkcyjnym dla wszystkich usług Azure DevOps Services. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest automatycznie instalowana i obsługiwana w środowisku produkcyjnym dla wszystkich nowych kolekcji projektów dla usługi Azure DevOps Server 2020 i nowszych wersji. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. W przypadku uaktualnienia z usługi Azure DevOps Server 2019 możesz zainstalować usługę Analytics podczas uaktualniania.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest dostępna w wersji zapoznawczej dla usługi Azure DevOps Server 2019. Możesz ją włączyć lub zainstalować dla kolekcji projektów. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są dostępne w wersji zapoznawczej. Zachęcamy do korzystania z niego i przekazywania opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Dane trendu są widoczne w zestawach jednostek WorkItemSnapshot i WorkItemBoardSnapshot. Są one skonstruowane tak, aby każdy element roboczy, od dnia utworzenia do dziś, istnieje dla każdego dnia. W przypadku organizacji z tylko jednym elementem roboczym, który został utworzony rok temu, w tej jednostce znajduje się 365 wierszy. W przypadku dużych projektów te jednostki byłyby niepraktyczne do użycia z narzędziami klienckimi.
Jakie jest rozwiązanie? Użyj rozszerzeń agregacji.
Z tego artykułu dowiesz się:
- Jak utworzyć podstawowe zapytanie dotyczące danych trendu
Za pomocą rozszerzeń agregacji OData można zwrócić zagregowane dane z usługi Azure DevOps, która sprzyja raportowaniu. Można na przykład pokazać trend błędów dla miesiąca marca. Trendy błędów to wspólna i krytyczna część zarządzania dowolnym projektem, dzięki czemu można ją natychmiast wykorzystać.
Uwaga
Przykłady przedstawione w tym dokumencie są oparte na adresie URL usługi Azure DevOps Services. W adresie URL usługi Azure DevOps Server należy zastąpić adres URL serwera Azure DevOps.
https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/
Konstruowanie podstawowego zapytania dotyczącego danych trendu
Istnieją pewne podstawowe wymagania, które należy skutecznie wykonywać względem tabeli WorkItemSnapshot:
- Filtruj dane według daty.
- Agregacja powinna pogrupować według co najmniej daty. Jeśli nie, odpowiedź będzie zawierać ostrzeżenie.
Zapytanie do utworzenia raportu trendu błędów wygląda następująco:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(DateValue ge 2016-03-01Z and DateValue le 2016-03-31Z and WorkItemType eq 'Bug')/
groupby((DateValue,State), aggregate($count as Count))
&$orderby=DateValue
Zwraca wynik podobny do następującego przykładu:
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 2666
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 51408
}
]
}
To zapytanie spowoduje wygenerowanie co najwyżej 31 * (number of bug states)
. Domyślna usterka ma trzy stany:
- Aktywne
- Rozwiązane
- Zamknięcie
Co najwyżej to zapytanie zwróci 93 wiersze niezależnie od tego, ile tysięcy rekordów rzeczywiście istnieje. Zapewnia ona o wiele bardziej kompaktową formę zwracania danych.
Przyjrzyjmy się odmianie w tym przykładzie. Chcesz zobaczyć trend błędów dla iteracji lub wydania, które zaczyna się od jednej iteracji i kończy się innym.
Aby utworzyć to zapytanie, wykonaj następujący przykład:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(WorkItemType eq 'Bug')/
filter(Iteration/IterationName eq 'Sprint 99')/
filter(DateValue ge Iteration/StartDate and (Iteration/EndDate eq null or DateValue le Iteration/EndDate))/
groupby((DateValue, State), aggregate($count as Count))
&$orderby=DateValue
Zwraca wynik podobny do następującego przykładu:
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 320
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 38
}
]
}
W tym zapytaniu istnieją dwie kluczowe różnice. Dodaliśmy klauzulę filtru, aby filtrować dane do określonej iteracji, a daty są teraz porównywane z datami rozpoczęcia i zakończenia iteracji w porównaniu z datą zakodowaną na bieżąco.
Uwaga
Jeśli agregacja nie jest używana w zapytaniu w tabelach migawek, w odpowiedzi zostanie wyświetlone ostrzeżenie "Określone zapytanie nie zawiera klauzuli $select ani $apply, która jest zalecana dla wszystkich zapytań".
Powiązane artykuły
- Konstruowanie zagregowanych zapytań dotyczących danych w celu zliczenia i przeanalizowania grup powiązanych danych.