Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
U kunt werktraceringsgegevens op twee manieren aggregeren met behulp van Analytics met OData: gebruik $count voor eenvoudige totalen, of gebruik de OData-aggregatie-extensie $apply om gegroepeerde, gefilterde en berekende resultaten te retourneren als JSON.
Aanbeveling
U kunt AI gebruiken om bij deze taak te helpen verderop in dit artikel, of zie AI-assistentie inschakelen met Azure DevOps MCP Server om te beginnen.
Dit artikel bouwt voort op OData-query's maken voor Analyse en Basisquery's definiëren met behulp van OData Analytics. De voorbeelden zijn gericht op werkitemgegevens, maar dezelfde principes zijn van toepassing op andere entiteitssets. Zie voor eenvoudige tellingsquery's Haal een telling van items op.
Notitie
De Analytics-service wordt automatisch ingeschakeld en ondersteund in productie voor alle services in Azure DevOps Services. Power BI-integratie en toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar. U wordt aangemoedigd om de Analytics OData-feed te gebruiken en feedback te geven.
Beschikbare gegevens zijn afhankelijk van versie. De nieuwste ondersteunde versie van de OData-API is v2.0en de nieuwste preview-versie is v4.0-preview. Zie OData API-versiebeheer voor meer informatie.
Notitie
De Analytics-service wordt automatisch geïnstalleerd en ondersteund in productie voor alle nieuwe projectverzamelingen voor Azure DevOps Server 2020 en nieuwere versies. Power BI-integratie en toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar. U wordt aangemoedigd om de Analytics OData-feed te gebruiken en feedback te geven. Als u een upgrade uitvoert van Azure DevOps Server 2019, kunt u de Analytics-service installeren tijdens de upgrade.
Beschikbare gegevens zijn afhankelijk van versie. De nieuwste ondersteunde versie van de OData-API is v2.0en de nieuwste preview-versie is v4.0-preview. Zie OData API-versiebeheer voor meer informatie.
Voorwaarden
| Categorie | Eisen |
|---|---|
| Toegangsniveaus |
-
Projectlid. - Ten minste Basis toegang. |
| machtigingen | Projectleden zijn standaard gemachtigd om query's uit te voeren op Analytics en weergaven te maken. Zie Machtigingen en vereisten voor toegang tot Analyticsvoor meer informatie over andere vereisten met betrekking tot het inschakelen van services en functies en algemene activiteiten voor het bijhouden van gegevens. |
Over de $apply-aggregatie-extensie
OData biedt een aggregatie-extensie die het $apply trefwoord introduceert voor het groeperen, filteren en berekenen van statistische waarden voor uw werktraceringsgegevens. In de volgende secties ziet u hoe u deze kunt gebruiken $apply met aggregate, groupbyen filtercompute. Zie OData-extensie voor gegevensaggregatie voor de volledige specificatie.
Gegevens aggregeren met behulp van $apply
Voeg het $apply token toe aan uw query-URL om aggregaties te activeren. De basissyntaxis is:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
| Kenmerk | Beschrijving |
|---|---|
{entitySetName} |
De entiteit die is ingesteld op query's, zoals WorkItems. |
{columnToAggregate} |
Het veld dat moet worden samengevoegd, zoals RemainingWork. |
{aggregationType} |
De aggregatiefunctie: sum, min, max, average, of countdistinct. |
{newColumnName} |
De alias voor de kolom met samengevoegde resultaten. |
In de volgende voorbeelden ziet u veelvoorkomende aggregate bewerkingen.
De som van alle resterende hoeveelheid werk retourneren
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
De id van het laatste werkitem retourneren
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
Groepsresultaten met behulp van groupby
De groupby clausule werkt zoals SQL GROUP BY — het breekt geaggregeerde resultaten af op basis van een of meer eigenschappen.
Werkitems per type tellen
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
Retourneert een resultaat zoals:
{
"value": [
{ "WorkItemType": "Bug", "Count": 3 },
{ "WorkItemType": "Product Backlog Item", "Count": 13 }
]
}
Groeperen op meerdere eigenschappen
Voeg meer eigenschappen toe tussen de groupby haakjes om nauwkeurigere uitsplitsingen te maken:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
Retourneert één rij voor elke unieke combinatie van type en status (bijvoorbeeld Bug/Actief, Bug/Vastgelegd, Productachterstanditem/Actief).
Groeperen tussen entiteiten
U kunt groeperen over gerelateerde entiteiten met behulp van navigatie-eigenschappen. Als u bijvoorbeeld gebieden per project wilt tellen:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$apply=groupby((Project/ProjectName), aggregate($count as Count))
Geaggregeerde resultaten filteren
Gebruik filter() binnen $apply om gegevens te beperken voor of na aggregatie. Koppel meerdere filters met behulp van / (pipe) en plaats het meest selectieve filter eerst voor de beste prestaties.
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))
Notitie
De groupby clausule is optioneel. Gebruik aggregate alleen om één waarde te retourneren.
Meerdere velden in één aanroep aggregeren
Maak een lijst van meerdere velden binnen één aggregate component, gescheiden door komma's, om extra retouren te voorkomen.
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
Retouren
{
"value": [
{ "SumOfCompletedWork": 1525841.29, "SumOfRemainingWork": 73842.39 }
]
}
Eigenschappen berekenen
Stuur geaggregeerde resultaten door naar compute() om nieuwe waarden af te leiden met behulp van rekenkundige expressies (div, add, sub, mul). In het volgende voorbeeld wordt het percentage voltooide werk berekend:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)
Retouren
{
"value": [
{ "DonePercentage": 0.9676, "SumOfCompletedWork": 1514698.34, "SumOfRemainingWork": 50715.95 }
]
}
Een query voor een cumulatief stroomdiagram maken
De volgende query combineert filter, groupbyen aggregate ten opzichte van de WorkItemBoardSnapshot entiteit die is ingesteld om gegevens te produceren voor een cumulatief stroomdiagram in Power BI of 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
Deze query filtert op een datumbereik en een specifiek bord en team, groepeert op datum- en bordkolom en retourneert een telling per groep. Retouren
{
"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 }
]
}
Aanbeveling
Hoe minder rijen worden geretourneerd, hoe sneller Power BI of Excel wordt vernieuwd. Gebruik strakke datumbereiken en specifieke bord- en teamfilters om de resultatenset te minimaliseren.
AI gebruiken om werkvolgsysteemgegevens samen te voegen
Als u de Azure DevOps MCP-server configureert, kunt u uw AI-assistent vragen om realtime werkitemgegevens op te halen uit uw Azure DevOps-organisatie en u te helpen bij het ontwerpen of oplossen van problemen met OData-aggregatiequery's $apply op basis van die gegevens.
| Opdracht | Voorbeeldprompt |
|---|---|
| Aantal per staat | 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. |
| Aantal per type en 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>. |
| Filtreer en aggregeer | 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. |
| Resterende en voltooide hoeveelheid werk optellen | Generate an Analytics OData $apply query that filters to Iteration/IterationPath startswith '<IterationPath>' in <ProjectName>, then returns SumOfCompletedWork and SumOfRemainingWork. |
| Aggregeren tussen teams | 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. |
| Elke clausule uitleggen | Explain what each part of this $apply query does and how to adjust it for a different iteration: <ODataQueryOrUrl>. |
| Fouten opsporen in $apply | This Analytics OData query returns a 400 error. Diagnose the $apply syntax and suggest a corrected query: <ODataQueryOrUrl>. |
| Resultaten valideren | 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. |
Aanbeveling
Als u Visual Studio Code gebruikt, is de agentmodus vooral handig voor het herhalen van aggregatiequery's: filters verfijnen, syntaxis voor probleemoplossing $apply en het valideren van resultaten.