Exemple de rapport de durée du pipeline

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

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

L’image suivante montre un exemple de rapport de durée pour un pipeline spécifique pour toutes les exécutions du pipeline de septembre 2022 au 15 décembre 2022.

Capture d’écran du rapport de colonne cluster durée power BI Pipelines.

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 version v3.0-preview ou ultérieure. Nous vous encourageons à utiliser ces requêtes et à nous fournir des commentaires.

Prérequis

  • Pour afficher les données Analytics et interroger le service, vous devez être membre d’un projet avec un accès de base ou supérieur. Par défaut, tous les membres du projet sont autorisés à interroger Analytics et à définir des vues Analytics.
  • Pour en savoir plus sur les autres prérequis concernant l’activation des services et des fonctionnalités et les activités générales de suivi des données, consultez Autorisations et prérequis pour accéder à Analytics.

Remarque

Cet article suppose que vous avez lu Vue d’ensemble 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

Vous pouvez utiliser les requêtes suivantes de l’ensemble PipelineRuns d’entités pour créer des rapports de durée de pipeline différents mais similaires.

Remarque

Pour déterminer les propriétés disponibles à des fins de filtre ou de rapport, consultez la référence des métadonnées pour Azure Pipelines. Vous pouvez filtrer vos requêtes ou renvoyer des propriétés à l’aide de l’une Property des valeurs sous ou EntityType des NavigationPropertyBinding Path valeurs disponibles avec un EntitySet. Chaque EntitySet correspond à un EntityType. Pour en savoir plus sur le type de données de chaque valeur, passez en revue les métadonnées fournies pour le .EntityType

Retourner des durées de centile pour un pipeline spécifié

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des 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 répartition 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 par {organization}Fabrikam, et non {Fabrikam}par .

  • {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-DDZ. Exemple : 2021-09-01Z représente le 1er septembre 2021. Ne placez pas entre guillemets ou crochets et utilisez deux chiffres pour les deux, mois et date.

Répartition des requêtes

Le tableau suivant décrit chaque partie de la requête.

Composant de requête

Description


$apply=filter(

Clause Start filter() .

Pipeline/PipelineName eq '{pipelinename}'

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

and CompletedDate ge {startdate}

Le pipeline de retour s’exécute à la date spécifiée ou après celle-ci.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

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

)

Clause Close filter() .

/compute(

Clause Start compute() .

percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,

Calculez le 50e centile des durées de pipeline de toutes les exécutions de pipeline qui correspondent aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Calculez le 80e centile des durées de pipeline de toutes les exécutions de pipeline qui correspondent aux critères de filtre.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Calculez le 95e centile des durées de pipeline de toutes les exécutions de pipeline qui correspondent aux critères de filtre.

/groupby(

Clause Start groupby() .

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Regroupez la réponse par Duration50thPercentileInSeconds, Duration80thPercentileInSecondset Duration95thPercentileInSeconds terminez la groupby clause.

Retourner des durées de centile pour un ID de pipeline spécifié

Les pipelines peuvent être renommés. Pour vous assurer que les rapports Power BI ne s’arrêtent pas lorsque le nom du pipeline est modifié, utilisez l’ID de pipeline plutôt que le nom du pipeline. Vous pouvez obtenir l’ID de pipeline à partir de l’URL de la page d’exécutions du pipeline.

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

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des 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

Retourner des durées de centile pour un pipeline spécifié, filtrer par branche

Pour afficher la durée d’un pipeline pour une branche particulière uniquement, utilisez les requêtes suivantes. Pour créer le rapport, effectuez les étapes supplémentaires suivantes, ainsi que ce qui est décrit dans le type de données Modifier la colonne et créer les sections de rapport de histogramme en cluster.

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

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des 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 des durées de centile pour tous les pipelines de projet

Pour afficher la durée de tous les pipelines du projet dans un seul rapport, utilisez les requêtes suivantes. Pour créer le rapport, effectuez les étapes supplémentaires suivantes, ainsi que ce qui est décrit dans le type de données Modifier la colonne et créer les sections de rapport de histogramme en cluster.

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

Consultez également le résumé des résultats pour tous les pipelines d’un exemple de rapport qui a des étapes similaires détaillées comme nécessaire ici.

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des 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

Modifier le type de données de colonne

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

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(Facultatif) Renommer des champs de colonne

Vous pouvez renommer des champs de 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 de colonne.

Fermez la requête et appliquez vos modifications

Une fois que vous avez terminé toutes vos transformations de données, choisissez Fermer & Appliquer dans le menu Accueil pour enregistrer la requête et revenir à l’onglet Rapport dans Power BI.

Capture d’écran de Éditeur Power Query’option Fermer et appliquer.

Créer le rapport de histogramme cluster

  1. Dans Power BI, sous Visualisations, choisissez le rapport de histogramme cluster. L’exemple suppose qu’aucune colonne n’a été renommée.

    Capture d’écran des visualisations de colonnes en cluster Power BI Pipelines et 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 du rapport, la légende ou d’autres visuels de rapport, sélectionnez l’icône Mettre en forme votre pinceau visuel dans le volet Visualisations et ajustez un ou plusieurs paramètres.

Votre rapport doit ressembler à l’image suivante.

Capture d’écran du rapport de colonne en cluster Power BI Sample Pipelines Duration.