Condividi tramite


Aggregare i dati di rilevamento del lavoro tramite Analytics

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

È possibile aggregare i dati di rilevamento del lavoro usando Analytics con OData in due modi: usare $count per i totali semplici o usare l'estensione di aggregazione OData $apply per restituire risultati raggruppati, filtrati e calcolati come JSON.

Suggerimento

È possibile usare l'intelligenza artificiale per facilitare questa attività più avanti in questo articolo, oppure vedere Abilitare l'assistenza AI con Azure DevOps MCP Server per iniziare.

Questo articolo si basa su Costruire query OData per Analisi e Definire query di base usando OData Analytics. Gli esempi si concentrano sui dati degli elementi di lavoro, ma gli stessi principi si applicano ad altri set di entità. Per le query di conteggio semplici, vedere Restituire un conteggio degli elementi.

Nota

Il servizio Analytics viene abilitato e supportato automaticamente nell'ambiente di produzione per tutti i servizi in Azure DevOps Services. L'integrazione di Power BI e l'accesso al feed OData del servizio Analytics sono disponibili a livello generale. Si consiglia di usare il feed OData di Analytics e fornire commenti e suggerimenti.

I dati disponibili dipendono dalla versione. La versione più recente supportata dell'API OData è v2.0e la versione di anteprima più recente è v4.0-preview. Per altre informazioni, vedere Controllo delle versioni dell'API OData.

Nota

Il servizio Analytics viene installato e supportato automaticamente nell'ambiente di produzione per tutte le nuove raccolte di progetti per Azure DevOps Server 2020 e versioni successive. L'integrazione di Power BI e l'accesso al feed OData del servizio Analytics sono disponibili a livello generale. Si consiglia di usare il feed OData di Analytics e fornire commenti e suggerimenti. Se si esegue l'aggiornamento da Azure DevOps Server 2019, è possibile installare il servizio Analytics durante l'aggiornamento.

I dati disponibili dipendono dalla versione. La versione più recente supportata dell'API OData è v2.0e la versione di anteprima più recente è v4.0-preview. Per altre informazioni, vedere Controllo delle versioni dell'API OData.

Prerequisiti

Categoria Requisiti
livelli di accesso - membro del progetto.
- Almeno accesso Base.
autorizzazioni Per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste. Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per accedere ad Analisi.

Informazioni sull'estensione di aggregazione $apply

OData fornisce un'estensione di aggregazione che introduce la $apply parola chiave per il raggruppamento, il filtro e l'elaborazione di valori aggregati sui dati di rilevamento del lavoro. Le sezioni seguenti illustrano come usare $apply con aggregate, groupby, filtere compute. Per la specifica completa, vedere Estensione OData per l'aggregazione dei dati.

Aggregare i dati usando $apply

Aggiungere il token $apply all'URL della query per attivare le aggregazioni. La sintassi di base è:

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

Parametro Descrizione
{entitySetName} Set di entità su cui eseguire una query, ad esempio WorkItems.
{columnToAggregate} Campo da aggregare, ad esempio RemainingWork.
{aggregationType} Funzione di aggregazione: sum, min, maxaverage, o countdistinct.
{newColumnName} Alias per la colonna del risultato aggregato.

Negli esempi seguenti vengono illustrate le operazioni comuni aggregate .

Restituisci la somma di tutto il lavoro rimanente

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

Restituire l'ultimo identificatore dell'elemento di lavoro

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

Raggruppare i risultati usando groupby

La groupby clausola funziona come SQL GROUP BY . Suddivide i risultati aggregati in base a una o più proprietà.

Contare gli elementi di lavoro per tipo

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

Restituisce un risultato simile al seguente:

{
  "value": [
    { "WorkItemType": "Bug", "Count": 3 },
    { "WorkItemType": "Product Backlog Item", "Count": 13 }
  ]
}

Raggruppare per più proprietà

Aggiungere altre proprietà tra groupby parentesi per creare suddivisioni più dettagliate:

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

Restituisce una riga per ogni combinazione univoca di tipo e stato ,ad esempio Bug/Active, Bug/Committed, Product Backlog Item/Active.

Raggruppare le entità

È possibile raggruppare le entità correlate usando le proprietà di navigazione. Ad esempio, per contare le aree per progetto:

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

Filtro dei risultati aggregati

Usare filter() all'interno $apply per restringere i dati prima o dopo l'aggregazione. Concatenare più filtri usando / (pipe) e posizionare il filtro più selettivo per ottenere prestazioni ottimali.

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

Nota

La groupby clausola è facoltativa. Usare aggregate da solo per restituire un singolo valore.

Aggregare più campi in una singola chiamata

Elencare più campi all'interno di una singola aggregate clausola, separati da virgole, per evitare round trip aggiuntivi.

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

Restituisce:

{
  "value": [
    { "SumOfCompletedWork": 1525841.29, "SumOfRemainingWork": 73842.39 }
  ]
}

Calcolare le proprietà calcolate

Inviare tramite pipe i risultati aggregati in compute() per derivare nuovi valori usando espressioni aritmetiche (div, add, sub, mul). Nell'esempio seguente viene calcolata la percentuale di lavoro completata:

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

Restituisce:

{
  "value": [
    { "DonePercentage": 0.9676, "SumOfCompletedWork": 1514698.34, "SumOfRemainingWork": 50715.95 }
  ]
}

Costruire una query per un diagramma di flusso cumulativo

La query seguente combina filter, groupby, e aggregate sull'insieme di entità WorkItemBoardSnapshot per produrre dati per un diagramma di flusso cumulativo in Power BI o 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

Questa query filtra in base a un intervallo di date e a un gruppo specifico, raggruppa per colonna data e scheda e restituisce un conteggio per gruppo. Restituisce:

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

Suggerimento

Minore è il numero di righe restituite, più veloce viene aggiornato Power BI o Excel. Per ridurre al minimo il set di risultati, usare intervalli di date stretti e filtri specifici per schede e team.

Usare l'intelligenza artificiale per creare query di aggregazione

Se si configura il server MCP di Azure DevOps, è possibile usare gli assistenti di intelligenza artificiale per creare e risolvere i problemi relativi alle query di aggregazione OData.

Esempi di suggerimenti

Attività Richiesta di esempio
Conteggio per stato Write an OData aggregation query that counts work items grouped by state in <Contoso> project
Somma punti stimati Create an OData query using $apply to sum story points by iteration path for user stories in <Contoso> project
Creare una query CFD Generate an OData aggregation query for a cumulative flow diagram that groups work items by board column and date in <Contoso> project
Filtrare quindi aggregare Write an OData query that filters to bugs with priority 1 and then counts them grouped by area path in <Contoso> project
Aggregazioni multiple Create an OData query that returns both the count and average story points per sprint for <Contoso> project
Eseguire il debug della sintassi $apply My OData aggregation query returns a 400 error - help me fix the $apply clause for grouping work items by state and type in <Contoso> project

Passo successivo