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.
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
, Duration80thPercentileInSeconds
et 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
enBranch.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
enPipeline.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.
Créer le rapport sous forme d'histogramme groupé
Dans Power BI, sous Visualisations, choisissez le rapport Histogramme groupé. Dans cet exemple, il est supposé qu’aucune colonne n’a été renommée.
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
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.