Eseguire query sui dati di tendenza

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

L'analisi delle tendenze nei dati e l'esecuzione di confronti di periodi nel corso del periodo sono aspetti importanti della creazione di report e dell'analisi dei dati. Analisi supporta queste funzionalità.

Nota

Il servizio Analytics viene abilitato e supportato automaticamente nell'ambiente di produzione per tutti i Servizi DevOps di Azure. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti. I dati disponibili dipendono dalla versione. La versione supportata più recente è 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 di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti. Se è stato eseguito l'aggiornamento da Azure DevOps Server 2019, è possibile installare il servizio Analytics durante l'aggiornamento.

I dati disponibili dipendono dalla versione. La versione supportata più recente è 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 è disponibile in anteprima per Azure DevOps Server 2019. È possibile abilitarlo o installarlo per una raccolta di progetti. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili in anteprima. Ti invitiamo a usarlo e a inviare commenti e suggerimenti.

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

I dati di tendenza vengono esposti nei set di entità WorkItemSnapshot e WorkItemBoardSnapshot. Vengono costruiti in modo che ogni elemento di lavoro, dal giorno in cui è stato creato fino ad oggi, esista per ogni giorno. Per un'organizzazione con un solo elemento di lavoro creato un anno fa, sono presenti 365 righe in questa entità. Per i progetti di grandi dimensioni, queste entità sarebbero poco pratiche da usare con gli strumenti client.

In cosa consiste la soluzione? Usare le estensioni di aggregazione.

In questo articolo si apprenderà quanto segue:

  • Come costruire una query di base per i dati di tendenza

Usando le estensioni di aggregazione OData, è possibile restituire dati aggregati da Azure DevOps che favoriscono la creazione di report. Ad esempio, è possibile visualizzare la tendenza dei bug per il mese di marzo. Le tendenze di bug sono una parte comune e critica della gestione di qualsiasi progetto, in modo da poterla usare immediatamente.

Nota

Gli esempi illustrati in questo documento si basano su un URL di Azure DevOps Services, è necessario sostituire l'URL del server Azure DevOps.

https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/

Creare una query di base per i dati di tendenza

Esistono alcuni requisiti di base necessari per eseguire una query efficace sulla tabella WorkItemSnapshot:

  • Filtrare i dati in base alla data.
  • L'aggregazione deve raggruppare in base alla data minima. In caso contrario, la risposta avrà un avviso.

La query per creare un report sulle tendenze di bug è simile all'esempio seguente:

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

Restituisce un risultato simile all'esempio seguente:

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

Questa query produrrà al massimo 31 * (number of bug states). Il bug predefinito ha tre stati:

  • Attive
  • Risolto
  • Chiusa

Al massimo, questa query restituirà 93 righe indipendentemente dal numero di migliaia di record effettivamente esistenti. Fornisce una forma molto più compatta di restituzione dei dati.

Di seguito viene esaminata una variante di questo esempio. Si vuole visualizzare la tendenza di bug per un'iterazione o una versione che inizia con un'iterazione e termina con un'altra.

Per costruire la query, eseguire l'esempio seguente:

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

Restituisce un risultato simile all'esempio seguente:

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

In questa query esistono due differenze principali. È stata aggiunta una clausola di filtro per filtrare i dati in base a un'iterazione specifica e le date vengono ora confrontate con le date di inizio e fine dell'iterazione rispetto a una data hardcoded.

Nota

Se l'aggregazione non viene usata nella query nelle tabelle snapshot, nella risposta verrà visualizzato l'avviso "La query specificata non include una clausola $select o $apply consigliata per tutte le query".

  • Costruire query di dati aggregate per contare e analizzare gruppi di dati correlati.