Partager via


Exemple de rapport sur l'évolution de la durée des tâches dans le pipeline

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

Pour visualiser le temps nécessaire à la réalisation des tâches pour un pipeline spécifique, vous pouvez créer un rapport de tendance. Par exemple, l'image suivante montre le 80e centile en secondes pour toutes les tâches terminées pour un pipeline spécifique du 1er septembre au 15 décembre 2022.

Capture d'écran du rapport de tendance sur la durée des tâches de Power BI Pipelines.

Importante

L'intégration de Power BI et l'accès au flux OData du service Analytics sont généralement disponibles pour Azure DevOps Services et Azure DevOps Server 2020 et versions ultérieures. Les exemples de requêtes fournis dans cet article sont valides uniquement sur Azure DevOps Server 2020 et versions ultérieures, et dépendent de la préversion v3.0 ou version ultérieure. Nous vous encourageons à utiliser ces requêtes et à nous faire part de vos commentaires.

Catégorie Exigences
Niveaux d’accès - Membre du projet.
- Au moins un accès de base (Basic).
Permissions Par défaut, les membres du projet ont l’autorisation d’interroger Analytics et de créer des vues. Pour plus d'informations sur les autres conditions préalables nécessaires à l'activation du service et des fonctionnalités ainsi que sur les activités de suivi des données générales, consultez Autorisations et conditions préalables pour accéder à Analytics.

Remarque

Cet article part du principe que vous avez lu Aperçu d'exemples de rapports utilisant des requêtes OData, et que vous comprenez les principes de base de Power BI.

Exemples de requêtes

Vous pouvez utiliser les requêtes suivantes de l'ensemble d'entités PipelineRunActivityResults? pour créer des rapports différents mais similaires sur la durée des tâches.

Remarque

Pour déterminer les propriétés à partir desquelles il est possible de filtrer ou d'élaborer des rapports, reportez-vous à la Référence de métadonnées pour Azure Pipelines. Vous pouvez filtrer vos requêtes ou retourner les propriétés en utilisant n'importe quelle valeur Property sous un EntityType ou les valeurs NavigationPropertyBinding Path disponibles avec un EntitySet. Chaque EntitySet correspond à un EntityType. Pour plus d'informations sur le type de données de chaque valeur, consultez les métadonnées fournies pour le EntityType correspondant.

Tendance de la durée des tâches pour le nom du pipeline spécifié.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d'informations, consultez Aperçu d'exemples de rapports utilisant des requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &"    ) "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Chaînes de substitution et décomposition des requêtes

Remplacez les chaînes suivantes par vos valeurs. N'incluez pas de crochets {} avec votre substitution. Par exemple, si le nom de votre organisation est « Fabrikam », remplacez {organization} par Fabrikam, mais pas par {Fabrikam}.

  • {organization} - Nom de votre organisation
  • {project} - Nom de votre projet d'équipe
  • {pipelinename} - Nom de votre pipeline. Exemple : Fabrikam hourly build pipeline
  • {startdate} - Date de démarrage de votre rapport. Format : AAAA-MM-JJZ. Exemple : 2021-09-01Z représente le 1er septembre 2021. Ne placez pas de guillemets ni de crochets et utilisez deux chiffres pour le mois et le jour.

Décomposition des requêtes

Le tableau ci-après décrit chaque partie de la requête.

Partie de la requête

Description


$apply=filter(

Démarre la clause filter().

Pipeline/PipelineName eq '{pipelinename}'

Renvoyer les résultats des tâches pour un pipeline spécifique.

and TaskDisplayName eq '{taskname}'

Renvoyer les résultats d'une tâche spécifique.

and PipelineRunCompletedOn/Date ge {startdate}

Renvoyer les résultats des tâches pour les exécutions du pipeline à la date spécifiée ou après.

and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')

Renvoyer les résultats des tâches pour les pipelines dont l'exécution a été réussie ou partiellement réussie.

and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)

Ne pas tenir compte des exécutions de pipeline qui ont été annulées, ignorées ou abandonnées.

)

Ferme la clause filter().

/compute(

Démarre la clause compute().

percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)

Pour chaque jour, calculez le 80e centile de la durée de toutes les tâches correspondant aux critères de filtrage.

/groupby(

Démarre la clause groupby().

(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))

Regrouper par date d'achèvement de l'exécution du pipeline et par durée de tâche du 80e centile calculée pour chaque jour.

&$orderby=PipelineRunCompletedOn/Date asc

Classer les réponses par date d'achèvement.

Tendance de la durée des tâches pour un pipeline, spécifier l'ID du pipeline

Les pipelines peuvent être renommés. Pour vous assurer que les rapports Power BI ne se décomposent pas lorsque vous modifiez le nom du pipeline, utilisez l'ID du pipeline plutôt que son nom. Vous pouvez obtenir l'ID du pipeline à partir de l'URL de la page d'exécution des pipelines.

https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d'informations, consultez Aperçu d'exemples de rapports utilisant des requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineId eq {pipelineid} "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &") "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendance de la durée des tâches aux 50e, 80e et 90e percentiles pour un pipeline

Pour afficher la tendance de la durée des tâches calculée à l'aide d'une autre valeur de percentile, utilisez la requête suivante qui donne les 50e et 95e percentiles de la durée des tâches ainsi que le 80e percentile.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d'informations, consultez Aperçu d'exemples de rapports utilisant des requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &") "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.5, PipelineRunCompletedDateSK) as TaskDuration50thPercentileInSeconds, "
            &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds, "
                &"percentile_cont(ActivityDurationSeconds, 0.95, PipelineRunCompletedDateSK) as TaskDuration95thPercentileInSeconds) "
            &"/groupby( "
        &"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds, TaskDuration95thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
    &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendance de la durée des tâches pour un pipeline filtré par branche

Pour visualiser l'évolution de la durée d'une tâche pour une branche donnée, utilisez la requête suivante. Pour créer le rapport, procédez comme suit :

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d'informations, consultez Aperçu d'exemples de rapports utilisant des requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
        &"$apply=filter( "
                &" Pipeline/PipelineName eq '{pipelinename}' "
                &" and TaskDisplayName eq '{taskname}' "
                &" and PipelineRunCompletedOn/Date ge {startdate} "
        &" and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &" and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &" ) "
                &"/compute( "
                &" percentile_cont(ActivityDurationSeconds, 0.8, BranchSK, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &" (TaskDuration80thPercentileInSeconds, Branch/BranchName, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendance de la durée des tâches pour toutes les tâches du pipeline

Pour afficher la tendance de la durée des tâches pour toutes les tâches du pipeline dans un seul rapport, utilisez la requête suivante. Pour créer le rapport, procédez comme suit :

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d'informations, consultez Aperçu d'exemples de rapports utilisant des requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
        &") "
            &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
                &"/groupby( "
            &"(TaskDuration80thPercentileInSeconds, TaskDisplayName, PipelineRunCompletedOn/Date)) "
                &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Facultatif) Renommer la requête

Vous pouvez renommer l'étiquette de requête par défaut, Query1, en quelque chose de plus parlant. Entrez simplement un nouveau nom dans le volet Paramètres de requête.

Capture d'écran des options du menu de requête Power BI, renommer la requête.

Développer les colonnes dans l'éditeur Power Query

Avant de créer le rapport, vous devrez développer les colonnes qui retournent des enregistrements contenant plusieurs champs. Dans ce cas, vous devez développer la colonne PipelineRunCompletedOn pour l'aplatir à PipelineRunCompletedOn.Date.
Pour savoir comment développer des éléments de travail, consultez Transformer des données d'analyse pour générer des rapports Power BI.

Changer le type de données des colonnes

Dans le menu Transformer, changez le type de données de la colonne TaskDuration80thPercentileInSeconds en Nombre décimal. Pour savoir comment procéder, consultez Transformer le type de données d'une colonne.

(Facultatif) Renommer les champs d'une colonne

Vous pouvez renommer les champs d'une colonne. Par exemple, vous pouvez renommer la colonne TaskDuration80thPercentileInSeconds en 80th Percentile. Pour savoir comment procéder, consultez Renommer les champs d'une colonne.

Fermez la requête et appliquez vos modifications

Une fois que vous avez terminé toutes vos transformations de données, sélectionnez Fermer et appliquer dans le menu Accueil pour enregistrer votre requête et revenir à l'onglet Rapport dans Power BI.

Capture d'écran de l'option Fermer et appliquer dans l'éditeur Power Query.

Créer l'état Graphique linéaire

  1. Dans Power BI, sous Visualisations, choisissez le rapport Graphique linéaire.

    Capture d'écran des sélections de champs de visualisation pour le rapport de diagramme de tendance de la durée des tâches.

  2. Ajouter PipelineRunCompletedOn.Date à Axe X. Cliquez avec le bouton droit de la souris sur le champ et choisissez PipelineRunCompletedOn.Date à la place de Date Hierarchy.

  3. Ajoutez TaskDuration80thPercentileInSeconds à l'axe Y, puis cliquez avec le bouton droit de la souris pour vous assurer que Sum est sélectionné.

  4. Pour modifier le titre du rapport, sélectionnez l'icône Formatez votre pinceau visuel dans le volet Visualisations, sélectionnez Général, développez Titre et remplacez le texte existant.

L'image suivante montre le rapport résultant.

Capture d'écran de l'exemple de rapport sur la tendance de la durée des tâches de Power BI Pipelines.