Delen via


Voorbeeldrapport voor pijplijnduur

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

In dit artikel leest u hoe u de duur van de pijplijn kunt ophalen of hoe lang het duurt om een pijplijn uit te voeren. Dit rapport is vergelijkbaar met de metrische duur van het duuroverzicht 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.

Vereisten

Notitie

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

Voorbeeldquery's

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. Voor meer informatie over het gegevenstype van elke waarde, bekijkt u de metagegevens die voor de bijbehorende EntityTypewaarde zijn opgegeven.

Percentielduur retourneren voor een opgegeven pijplijn

U kunt de onderstaande Power BI-query> rechtstreeks in het venster Gegevens leeg ophalen plakken. Raadpleeg 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

Uitsplitsing van tekenreeksen en query's vervangen

Vervang de volgende tekenreeksen door uw waarden. Neem geen vierkante haken {} op 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. Indeling: 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(

Begincomponent filter() .

Pipeline/PipelineName eq '{pipelinename}'

Retourpijplijnuitvoeringen voor de opgegeven pijplijn.

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 component.

/compute(

Begincomponent compute() .

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(

Begincomponent groupby() .

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Groepeer het antwoord op Duration50thPercentileInSeconds, Duration80thPercentileInSecondsen Duration95thPercentileInSeconds beëindig de groupby component.

Percentielduur retourneren voor een opgegeven 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 pagina pijplijnuitvoeringen.

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

U kunt de onderstaande Power BI-query> rechtstreeks in het venster Gegevens leeg ophalen plakken. Raadpleeg 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 wat wordt beschreven in het gegevenstype Kolom wijzigen en de rapportsecties gegroepeerd kolomdiagram maken.

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

U kunt de onderstaande Power BI-query> rechtstreeks in het venster Gegevens leeg ophalen plakken. Raadpleeg 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

Percentielduur retourneren 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 het gegevenstype Kolom wijzigen en de rapportsecties gegroepeerd kolomdiagram maken.

  • 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.

U kunt de onderstaande Power BI-query> rechtstreeks in het venster Gegevens leeg ophalen plakken. Raadpleeg 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 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 het menu 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 Gegroepeerd kolomdiagram 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 visuele verfborstel 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 Sample Pipelines Duration clustered column report.