Partager via


Données de tendance des requêtes

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

L’examen des tendances dans les données et la réalisation de comparaisons de périodes sur plusieurs périodes sont des aspects importants de la création de rapports et de l’analyse des données. Analytics prend en charge ces fonctionnalités.

Remarque

Le service Analytics est automatiquement activé et pris en charge en production pour tous les services Azure DevOps. L’intégration de Power BI et l’accès au flux OData du service Analytics sont généralement disponibles. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires. Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Remarque

Le service Analytics est automatiquement installé et pris en charge en production pour toutes les nouvelles collections de projets pour Azure DevOps Server 2020 et versions ultérieures. L’intégration de Power BI et l’accès au flux OData du service Analytics sont généralement disponibles. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires. Si vous avez effectué une mise à niveau à partir d’Azure DevOps Server 2019, vous pouvez installer le service Analytics pendant la mise à niveau.

Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Remarque

Le service Analytics est en préversion pour Azure DevOps Server 2019. Vous pouvez l’activer ou l’installer pour une collection de projets. L’intégration de Power BI et l’accès au flux OData du service Analytics sont en préversion. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires.

Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Les données de tendance sont exposées dans les jeux d’entités WorkItemSnapshot et WorkItemBoardSnapshot. Ils sont construits de sorte que chaque élément de travail, du jour où il a été créé jusqu’à aujourd’hui, existe pour chaque jour. Pour une organisation avec un seul élément de travail créé il y a un an, il existe 365 lignes dans cette entité. Pour les grands projets, ces entités ne sont pas pratiques à utiliser avec les outils clients.

Quelle est la solution ? Utilisez les extensions d’agrégation.

Dans cet article, vous apprendrez ce qui suit :

  • Comment construire une requête de base pour les données de tendance

À l’aide des extensions d’agrégation OData, vous pouvez retourner des données agrégées à partir d’Azure DevOps qui sont propices à la création de rapports. Par exemple, vous pouvez afficher la tendance des bogues pour le mois de mars. Les tendances de bogues sont une partie courante et critique de la gestion de n’importe quel projet afin de pouvoir l’utiliser immédiatement.

Remarque

Les exemples présentés dans ce document sont basés sur une URL Azure DevOps Services, vous devrez remplacer l’URL de votre serveur Azure DevOps.

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

Construire une requête de base pour les données de tendance

Vous devez interroger efficacement la table WorkItemSnapshot pour certaines conditions de base :

  • Filtrez les données par date.
  • L’agrégation doit regrouper par date, au moins. Si ce n’est pas le cas, la réponse aura un avertissement.

La requête permettant de créer un rapport de tendance de bogue ressemble à l’exemple suivant :

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

Elle retourne un résultat similaire à l’exemple suivant :

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

Cette requête produit au maximum 31 * (number of bug states). Le bogue par défaut a trois états :

  • Activé
  • Résolu
  • Fermés

Au maximum, cette requête retourne 93 lignes, quel que soit le nombre de milliers d’enregistrements réellement présents. Il fournit une forme beaucoup plus compacte de retour de données.

Examinons une variante de cet exemple. Vous souhaitez voir la tendance du bogue pour une itération ou une version commençant par une itération et se termine par une autre.

Pour construire cette requête, procédez comme suit :

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

Elle retourne un résultat similaire à l’exemple suivant :

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

Dans cette requête, il existe deux différences clés. Nous avons ajouté une clause de filtre pour filtrer les données à une itération spécifique et les dates sont désormais comparées aux dates de début et de fin de l’itération par rapport à une date codée en dur.

Remarque

Si l’agrégation n’est pas utilisée dans votre requête sur instantané tables, vous verrez l’avertissement « La requête spécifiée n’inclut pas de clause $select ou $apply recommandée pour toutes les requêtes ».

  • Créez des requêtes d’agrégation de données pour compter et analyser des groupes de données associées.