Delen via


Voorbeeldrapport voor pijplijnduur

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

In dit artikel leest u hoe u de tijdsduur van een pijplijn kunt weten of de tijd die nodig is om een pijplijn uit te voeren. Dit rapport is vergelijkbaar met de duurmetriek van het overzicht in de grafiek 'Pijplijnduur' van het rapport Pijplijnduur.

In de volgende afbeelding ziet u een voorbeeld van een duurrapport voor een specifieke pijplijn voor alle pijplijnuitvoeringen van september 2022 tot 15 december 2022.

Schermopname van het gegroepeerde kolomrapport van Power BI Pipelines Duration.

Belangrijk

Power BI-integratie en -toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar voor Azure DevOps Services en Azure DevOps Server 2020 en latere versies. De voorbeeldquery's in dit artikel zijn alleen geldig voor Azure DevOps Server 2020 en latere versies en zijn afhankelijk van versie v3.0 of hoger. We raden u aan deze query's te gebruiken en ons feedback te geven.

Categorie Vereisten
Toegangsniveaus - een projectlid.
- Ten minste Basis toegang.
Toestemmingen Projectleden zijn standaard gemachtigd om query's uit te voeren op Analytics en weergaven te maken. Zie Machtigingen en vereisten voor toegang tot Analyse voor meer informatie over andere vereisten met betrekking tot het inschakelen van services en functies en algemene activiteiten voor het bijhouden van gegevens.

Notitie

In dit artikel wordt ervan uitgegaan dat u overzicht van voorbeeldrapporten leest met behulp van OData-query's en basiskennis hebt van Power BI.

Voorbeeldqueries

U kunt de volgende query's van de PipelineRuns entiteitsset gebruiken om verschillende maar vergelijkbare pijplijnduurrapporten te maken.

Notitie

Als u de beschikbare eigenschappen voor filter- of rapportdoeleinden wilt bepalen, raadpleegt u de naslaginformatie over metagegevens voor Azure Pipelines. U kunt uw query's filteren of eigenschappen retourneren met behulp van een van de Property waarden onder een EntityType of NavigationPropertyBinding Path waarden die beschikbaar zijn met een EntitySet. Elk EntitySet komt overeen met een EntityType. Raadpleeg voor meer informatie over het gegevenstype van elke waarde de metagegevens die voor de bijbehorende EntityTypewaarde zijn opgegeven.

Retourneer de percentielduren voor een opgegeven pijplijn

Kopieer en plak de volgende Power BI-query rechtstreeks in het Gegevens ophalen>Lege query-venster. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.

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

Vervangende tekenreeksen en query-uitsplitsing

Vervang de volgende tekenreeksen door uw waarden. Gebruik geen haakjes {} bij uw vervanging. Als de naam van uw organisatie bijvoorbeeld Fabrikam is, vervangt u door {organization}Fabrikam, niet {Fabrikam}.

  • {organization} - Naam van uw organisatie
  • {project} - De naam van uw teamproject
  • {pipelinename} - De naam van uw pijplijn. Voorbeeld: Fabrikam hourly build pipeline
  • {startdate} - De datum waarop het rapport moet worden gestart. Formaat: JJJJ-MM-DDZ. Voorbeeld: 2021-09-01Z vertegenwoordigt 1 september 2021. Plaats geen aanhalingstekens of vierkante haken en gebruik twee cijfers voor zowel maand als datum.

Uitsplitsing van query's

In de volgende tabel wordt elk deel van de query beschreven.

Queryonderdeel

Beschrijving


$apply=filter(

Start filter() clausule.

Pipeline/PipelineName eq '{pipelinename}'

Geef de pijplijnuitvoeringen voor de opgegeven pijplijn terug.

and CompletedDate ge {startdate}

Retourpijplijn wordt uitgevoerd op of na de opgegeven datum.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Alleen de geslaagde of gedeeltelijk geslaagde uitvoeringen retourneren.

)

Sluit filter() de clausule.

/compute(

Start compute() clausule.

percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,

Bereken het 50e percentiel van de pijplijnduur van alle pijplijnuitvoeringen die voldoen aan de filtercriteria.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Bereken het 80e percentiel van de pijplijnduur van alle pijplijnuitvoeringen die voldoen aan de filtercriteria.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Bereken het 95e percentiel van de pijplijnduur van alle pijplijnuitvoeringen die voldoen aan de filtercriteria.

/groupby(

Begin clausule groupby().

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Groepeer het antwoord op Duration50thPercentileInSeconds, Duration80thPercentileInSeconds, en Duration95thPercentileInSeconds en beëindig de groupby clausule.

Percentielduren teruggeven voor een specifieke pijplijn-ID

De naam van pijplijnen kan worden gewijzigd. Gebruik de pijplijn-id in plaats van de naam van de pijplijn om ervoor te zorgen dat de Power BI-rapporten niet worden verbroken wanneer de naam van de pijplijn wordt gewijzigd. U kunt de pijplijn-id verkrijgen via de URL van de pijplijnuitvoeringenpagina.

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

Kopieer en plak de volgende Power BI-query rechtstreeks in het Gegevens ophalen>Lege query-venster. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.

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

Retourneert percentielduur voor een opgegeven pijplijn, filtert op vertakking

Als u alleen de duur van een pijplijn voor een bepaalde vertakking wilt weergeven, gebruikt u de volgende query's. Als u het rapport wilt maken, voert u de volgende extra stappen uit, samen met de werkzaamheden die worden beschreven in de secties Kolomgegevens wijzigen en het rapport Clustered kolomdiagram maken.

  • Uitvouwen Branch tot Branch.BranchName.
  • Voeg het veld Branch.BranchName toe aan de X-as.

Kopieer en plak de volgende Power BI-query rechtstreeks in het Gegevens ophalen>Lege query-venster. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.

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

Returneer de percentielduren voor alle projectpijplijnen

Gebruik de volgende query's om de duur voor alle pijplijnen van het project in één rapport weer te geven. Als u het rapport wilt maken, voert u de volgende extra stappen uit, samen met wat wordt beschreven in de secties Kolomgegevenstype wijzigen en Maak het gegroepeerde kolomdiagramrapport.

  • Uitvouwen Pipeline tot Pipeline.PipelineName.
  • Voeg het veld PIpeline.PipelineName toe aan de X-as.

Zie ook het resultaatoverzicht voor alle pijplijnen voor een voorbeeldrapport met gedetailleerde vergelijkbare stappen, zoals hier is vereist.

Kopieer en plak de volgende Power BI-query rechtstreeks in de Gegevens ophalen>Lege query-venster. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.

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

Kolomgegevenstype wijzigen

Wijzig in het menu Transformeren het gegevenstype voor de volgende kolommen in Decimaal getal. Zie Een kolomgegevenstype transformeren voor meer informatie.

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(Optioneel) Kolomvelden een andere naam geven

U kunt de naam van kolomvelden wijzigen. U kunt bijvoorbeeld de naam van de kolom Pipeline.PipelineName wijzigen in Pipeline Name, of TotalCount in Total Count. Zie hoe u kolomvelden een andere naam kunt geven in Kolomvelden een andere naam geven.

Sluit de query en pas uw wijzigingen toe

Zodra u al uw gegevenstransformaties hebt voltooid, kiest u Sluiten en toepassen in hetmenu Start om de query op te slaan en terug te keren naar het tabblad Rapport in Power BI.

Schermopname van Power Query-editor optie Sluiten en toepassen.

Het rapport Geclusterde kolomgrafiek maken

  1. Kies in Power BI onder Visualisaties het rapport Gegroepeerd kolomdiagram . In het voorbeeld wordt ervan uitgegaan dat er geen kolommen zijn gewijzigd.

    Schermopname van gegroepeerde kolomvisualisaties en veldselecties in Power BI Pipelines.

  2. Voeg de volgende velden toe aan de Y-as, klik met de rechtermuisknop op elk veld en zorg ervoor dat Som is geselecteerd.

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. Als u de rapporttitel, legenda of andere rapportvisuals wilt wijzigen, selecteert u het pictogram 'Uw visual opmaken' in het deelvenster Visualisaties en past u een of meer instellingen aan.

Uw rapport moet er ongeveer uitzien als in de volgende afbeelding.

Schermopname van Power BI Voorbeeldpijplijnen Duurtijd gegroepeerd kolomrapport.