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

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

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 de durée pour un pipeline spécifique.

Capture d'écran du rapport en colonnes groupées de la durée des pipelines Power BI.

Remarque

Les exemples de requêtes de cet article nécessitent une version préliminaire v3.0 ou une version ultérieure du flux OData Analytics. Partagez 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 suppose que vous lisez Overview des exemples de rapports à l’aide de requêtes OData et que vous avez une compréhension de base de Power BI.

Exemples de requêtes

Pour créer des rapports de durée de pipeline différents mais similaires, utilisez les requêtes suivantes du jeu d’entités PipelineRuns .

Remarque

Pour rechercher les propriétés disponibles pour le filtrage ou la création de rapports, consultez la référence Metadata pour Azure Pipelines. Vous pouvez filtrer des requêtes ou retourner des propriétés à l’aide de n’importe quelle Property valeur définie sous un EntityType, ou toute NavigationPropertyBinding Path valeur répertoriée pour un EntitySet. Chaque EntitySet mappe vers un EntityType qui documente le type de données pour chaque propriété.

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 Get Data>Blank Query. 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 les accolades {} dans votre substitution. Par exemple, si le nom de votre organisation est « Fabrikam », remplacez {organization} par Fabrikam, et non {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 : YYYY-MM-DD suivi de Z (indicateur UTC). Exemple : 2026-09-01Z représente le 1er septembre 2026. Ne placez pas entre guillemets ou crochets.

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 le 50e percentile des durées de pipeline pour toutes les exécutions de pipeline correspondant aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Calcule le 80e percentile des durées de pipeline pour toutes les exécutions de pipeline correspondant aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Calcule le 95e percentile des durées de pipeline pour toutes les exécutions de pipeline correspondant aux critères de filtre.

/groupby(

Démarre la groupby() clause.

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

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

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

Vous pouvez renommer des pipelines. Pour vous assurer que les rapports Power BI ne s'arrêtent pas lorsque vous modifiez le nom du pipeline, utilisez l'ID de pipeline au lieu du nom du pipeline. 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 Get Data>Blank Query. 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, suivez ces étapes supplémentaires, ainsi que les étapes décrites dans les sections Modifier le type de données de la colonne et Créer le rapport de graphique en colonnes groupées.

  • 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 Get Data>Blank Query. 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, suivez ces étapes supplémentaires, ainsi que les étapes décrites dans les sections Modifier le type de données de la colonne et Créer le rapport de graphique en colonnes groupées.

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

Pour obtenir un exemple de rapport avec des étapes détaillées similaires, consultez Le résumé des résultats pour tous les pipelines.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Get Data>Blank Query. 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 , remplacez le type de données des colonnes suivantes par 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 des colonnes pour qu’elles soient plus faciles à utiliser. Pour savoir comment procéder, consultez Renommer les champs d'une colonne.

Fermez la requête et appliquez vos modifications

Lorsque vous avez terminé toutes vos transformations de données, sélectionnez Fermer & Appliquer dans le menu Accueil . Cette action enregistre la requête et vous renvoie à l’onglet Report dans Power BI.

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

Créer le rapport en histogramme à colonnes groupées

  1. Dans Power BI, sous Visualizations, sélectionnez le rapport Clustered column chart. L’exemple suppose que vous n’avez pas renommé de colonnes.

    Capture d'écran des visualisations de colonnes groupées Power BI Pipelines et des sélections de champs.

  2. Ajoutez les champs suivants à l’axe Y, cliquez avec le bouton droit sur chaque champ et vérifiez que Somme est sélectionnée.

    • 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 ressembler à l’image suivante.

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