Partager via


Exemple de rapport sur la durée d'un pipeline

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

Cet article vous montre comment obtenir la durée d'un pipeline, à savoir le temps nécessaire à l’exécution d’un pipeline. Ce rapport est similaire à la métrique récapitulative sur la durée du graphique « Durée d'un pipeline » du Rapport sur la durée d'un pipeline.

L’image suivante montre un exemple de rapport sur la durée d'un pipeline spécifique pour toutes les exécutions de celui-ci entre le mois de septembre 2022 et le 15 décembre 2022.

Capture d’écran du rapport Power BI sous forme d'histogramme groupé sur la durée d'un pipeline.

Important

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 du jeu d'entités PipelineRuns pour créer des rapports différents, mais similaires, sur la durée d'un pipeline.

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.

Retourner les durées par centiles pour un 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/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,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}'

Retourne les exécutions de pipeline pour le pipeline spécifié.

and CompletedDate ge {startdate}

Retourne les exécutions de pipeline à la date spécifiée ou après celle-ci.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Retourne uniquement les exécutions réussies ou partiellement réussies.

)

Ferme la clause filter().

/compute(

Démarre la clause compute().

percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,

Calcule les durées du pipeline au 50e centile pour toutes les exécutions qui correspondent aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Calcule les durées du pipeline au 80e centile pour toutes les exécutions qui correspondent aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Calcule les durées du pipeline au 95e centile pour toutes les exécutions qui correspondent aux critères de filtre.

/groupby(

Démarre la clause groupby().

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Regroupe la réponse par Duration50thPercentileInSeconds, Duration80thPercentileInSecondset Duration95thPercentileInSeconds, puis termine la clause groupby.

Retourne les durées par centiles pour une ID de pipeline spécifiée

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. Pour obtenir l’ID d'un pipeline, consultez l’URL de la page des exécutions de pipeline.

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/PipelineRuns?"
        &"$apply=filter( "
                &"PipelineId  eq {pipelineid} "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Retourne les durées par centiles pour un pipeline spécifié, filtrées par branche

Pour afficher la durée d’un pipeline sur une seule branche particulière, utilisez les requêtes suivantes. Pour créer le rapport, exécutez les étapes supplémentaires suivantes, et suivez les indications des sections Changer le type de données des colonnes et Créer le rapport sous forme d'histogramme groupé.

  • Développez Branch en Branch.BranchName.
  • Ajoutez le champ Branch.BranchName à l’axe X.

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/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5, BranchSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Retourner les durées par centiles pour tous les pipelines de projet

Pour afficher la durée de tous les pipelines de projet dans un seul rapport, utilisez les requêtes suivantes. Pour créer le rapport, exécutez les étapes supplémentaires suivantes, et suivez les indications des sections Changer le type de données des colonnes et Créer le rapport sous forme d'histogramme groupé.

  • Développez Pipeline en Pipeline.PipelineName.
  • Ajoutez le champ PIpeline.PipelineName à l’axe X.

Consultez également Résumé des résultats pour tous les pipelines pour obtenir un exemple de rapport dont les étapes détaillées sont similaires à celles nécessaires ici.

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/PipelineRuns?"
        &"$apply=filter( "
                &"CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
                &"    ) "
        &"/compute( "
        &"percentile_cont(TotalDurationSeconds, 0.5, PipelineId) as Duration50thPercentileInSeconds, "
            &"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
                &"/groupby( "
            &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Changer le type de données des colonnes

Dans le menu Transformer, modifiez le type de données des colonnes suivantes en Nombre décimal. Pour savoir comment procéder, consultez Transformer le type de données d'une colonne.

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(Facultatif) Renommer les champs d'une colonne

Vous pouvez renommer les champs d'une colonne. Par exemple, vous pouvez renommer la colonne Pipeline.PipelineName en Pipeline Name, ou TotalCount en Total Count. 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 le rapport sous forme d'histogramme groupé

  1. Dans Power BI, sous Visualisations, choisissez le rapport Histogramme groupé. Dans cet exemple, il est supposé qu’aucune colonne n’a été renommée.

    Capture d’écran du volet Visualisations - Histogramme groupé et sélection des champs pour les pipelines Power BI.

  2. Ajoutez les champs suivants à l’axe Y, cliquez avec le bouton droit sur chacun d'eux et assurez-vous que Somme a bien été sélectionné.

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. Pour modifier le titre, la légende ou tout autre visuel du rapport, sélectionnez l’icône Mettre en forme votre visuel représentant un pinceau dans le volet Visualisations, puis ajustez un ou plusieurs paramètres.

Votre rapport doit être similaire à celui de l’image suivante.

Capture d’écran du rapport Power BI sur la durée des pipelines sous forme d'histogramme groupé.