Delen via


Trendrapport voor de duur van pijplijntaken

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

Als u de tijd wilt visualiseren die nodig is om taken te voltooien voor een specifieke pijplijn, kunt u een trendrapport maken. In de volgende afbeelding ziet u bijvoorbeeld het 80e percentiel in seconden voor alle taken die zijn voltooid voor een specifieke pijplijn van 1 september tot en met 15 december 2022.

Schermopname van het trendrapport voor taakduur van Power BI Pipelines.

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

  • Als u analysegegevens wilt bekijken en een query wilt uitvoeren op de service, moet u lid zijn van een project met basic-toegang of hoger. Standaard krijgen alle projectleden machtigingen om query's uit te voeren op Analytics en analyseweergaven te definiëren.
  • Zie Machtigingen en vereisten voor toegang tot Analytics 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 hebt gelezen met behulp van OData-query's en basiskennis hebt van Power BI.

Voorbeeldquery's

U kunt de volgende query's van de PipelineRunActivityResults? entiteitsset gebruiken om verschillende maar vergelijkbare trendrapporten voor taakduur 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.

Trend van taakduur voor opgegeven pijplijnnaam

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &"    ) "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,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}'

Retourneer taakresultaten voor een specifieke pijplijn.

and TaskDisplayName eq '{taskname}'

Retourneer taakresultaten voor een specifieke taak.

and PipelineRunCompletedOn/Date ge {startdate}

Retourneer taakresultaten voor pijplijnuitvoeringen op of na de opgegeven datum.

and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')

Retourneer taakresultaten voor alleen geslaagde of gedeeltelijk geslaagde pijplijnuitvoeringen.

and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)

Laat pijplijnuitvoeringen weg die zijn geannuleerd, overgeslagen of afgeslagen.

)

Sluit filter() de component.

/compute(

Begincomponent compute() .

percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)

Bereken voor elke dag het 80e percentiel van de taakduur van alle taken die voldoen aan de filtercriteria.

/groupby(

Begincomponent groupby() .

(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))

Groepeer op datum van voltooiing van pijplijnuitvoering en berekende 80e percentieltaakduur.

&$orderby=PipelineRunCompletedOn/Date asc

Bestel het antwoord op voltooide datum.

Trend van taakduur voor een pijplijn, pijplijn-id opgeven

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

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineId eq {pipelineid} "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &") "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

50e, 80e en 90e percentieltaakduurtrend voor een pijplijn

Als u de trend van de taakduur wilt weergeven die wordt berekend met behulp van andere percentielwaarde, gebruikt u de volgende query die de duur van de taak 50e en 95e percentiel geeft, samen met het 80e percentiel.

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and TaskDisplayName eq '{taskname}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
        &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &") "
                &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.5, PipelineRunCompletedDateSK) as TaskDuration50thPercentileInSeconds, "
            &"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds, "
                &"percentile_cont(ActivityDurationSeconds, 0.95, PipelineRunCompletedDateSK) as TaskDuration95thPercentileInSeconds) "
            &"/groupby( "
        &"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds, TaskDuration95thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
    &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Trend van taakduur voor een pijplijn gefilterd op vertakking

Gebruik de volgende query om de duurtrend van een taak voor een bepaalde vertakking weer te geven. Ga als volgt te werk om het rapport te maken:

  • Uitbreiden Branch naar Branch.BranchName
  • Kolomgegevenstype wijzigen
  • Het rapport Lijndiagram maken
  • Selecteer Slicer in het deelvenster Visualisaties en voeg de Branch.BranchName slicer toe aan het veld van de slicer
  • Selecteer de vertakking in de slicer waarvoor u de trend van de taakduur wilt zien.

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &" Pipeline/PipelineName eq '{pipelinename}' "
                &" and TaskDisplayName eq '{taskname}' "
                &" and PipelineRunCompletedOn/Date ge {startdate} "
        &" and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &" and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
            &" ) "
                &"/compute( "
                &" percentile_cont(ActivityDurationSeconds, 0.8, BranchSK, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
            &"/groupby( "
                &" (TaskDuration80thPercentileInSeconds, Branch/BranchName, PipelineRunCompletedOn/Date)) "
            &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Trend van taakduur voor alle pijplijntaken

Gebruik de volgende query om de trend van de taakduur voor alle pijplijntaken in één rapport weer te geven. Ga als volgt te werk om het rapport te maken:

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
        &") "
            &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
                &"/groupby( "
            &"(TaskDuration80thPercentileInSeconds, TaskDisplayName, PipelineRunCompletedOn/Date)) "
                &"&$orderby=PipelineRunCompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Optioneel) Naam van query wijzigen

U kunt de naam van het standaardquerylabel Query1 wijzigen in iets zinvoller. Voer een nieuwe naam in het deelvenster Query Instellingen in.

Schermopname van menuopties voor Power BI-query's, naam van query wijzigen.

Kolommen uitvouwen in Power Query-editor

Voordat u het rapport maakt, moet u kolommen uitvouwen die records met verschillende velden retourneren. In dit geval wilt u de kolom uitbreiden om deze PipelineRunCompletedOn plat PipelineRunCompletedOn.Datete maken.
Zie Transform Analytics-gegevens voor het genereren van Power BI-rapporten voor meer informatie over het uitvouwen van werkitems.

Kolomgegevenstype wijzigen

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

(Optioneel) Kolomvelden een andere naam geven

U kunt de naam van kolomvelden wijzigen. U kunt bijvoorbeeld de naam van de kolom TaskDuration80thPercentileInSeconds wijzigen in 80th Percentile. 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 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 Lijndiagram maken

  1. Kies in Power BI onder Visualisaties het rapport Lijndiagram .

    Schermopname van selecties van visualisatievelden voor het trendlijndiagramrapport voor taakduur.

  2. Toevoegen PipelineRunCompletedOn.Date aan X-as. Klik met de rechtermuisknop op het veld en kies PipelineRunCompletedOn.Date in plaats van datumhiërarchie.

  3. Voeg deze TaskDuration80thPercentileInSeconds toe aan de Y-as en klik er met de rechtermuisknop op om ervoor te zorgen dat Som is geselecteerd.

  4. Als u de rapporttitel wilt wijzigen, selecteert u het pictogram Uw visuele verfborstel opmaken in het deelvenster Visualisaties, selecteert u Algemeen, vouwt u Titel uit en vervangt u de bestaande tekst.

In de volgende afbeelding ziet u het resulterende rapport.

Schermopname van het trendrapport voor de duur van power BI-pijplijnen.