Delen via


Voorbeeldrapport voor duur van pijplijntaak

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

Hoe lang duurt het om verschillende taken te voltooien? Dit artikel bevat de query's waaruit u een rapport voor een specifieke pijplijn en de bijbehorende taken kunt genereren. In de volgende afbeelding ziet u bijvoorbeeld het 50e, 80e en 95e 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 tabeltrendrapport voor de 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

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.

Voorbeeldquery's

U voert een query uit op de PipelineRunActivityResults? entiteit die is ingesteld om informatie over de taakduur te retourneren.

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.

Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. 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/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.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds, "
                &"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds, "
            &"percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds) "
                &"/groupby( "
            &"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName)) "
        &"&$orderby=TaskDuration50thPercentileInSeconds desc "
    ,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 PipelineRunCompletedOn/Date ge {startdate}

Retourneer taakresultaten voor een pijplijnuitvoering 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 de filter() component.

/compute(

Begincomponent compute() .

percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,

Voor elke taak berekent u het 50e percentiel van de taakduur voor alle taken die voldoen aan de filtercriteria.

percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,

Voor elke taak berekent u het 80e percentiel van de taakduur voor alle taken die voldoen aan de filtercriteria.

percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)

Voor elke taak berekent u het 95e percentiel van de taakduur voor alle taken die voldoen aan de filtercriteria.

/groupby(

Start de groupby() component.

(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))

Groeperen op taak van pijplijnuitvoering en berekend op dag 50e percentieltaakduur, duur van 80e percentieltaak en 95e percentieltaakduur.

&$orderby=TaskDuration50thPercentileInSeconds desc

Bestel het antwoord op taak met de hoogste duur van het 50e percentiel.

(Optioneel) Naam van query wijzigen

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

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

Kolomgegevenstype wijzigen

Wijzig in het menu Transformeren het gegevenstype voor de volgende kolommen voor Decimal Number**. meer informatie. Zie Een kolomgegevenstype transformeren.
- TaskDuration80thPercentileInSeconds - TaskDuration80thPercentileInSeconds - TaskDuration95thPercentileInSeconds.

(Optioneel) Kolomvelden een andere naam geven

U kunt de naam van kolomvelden wijzigen. U kunt bijvoorbeeld de naam van de volgende kolommen wijzigen, zodat ze beter worden weergegeven. Zie Kolomvelden een andere naam geven.

Oorspronkelijke veldnaam Hernoemd veld
TaskDisplayName Naam van de taak
TaskDuration50thPercentileInSeconds 50e percentiel
TaskDuration80thPercentileInSeconds 80e percentiel
TaskDuration95thPercentileInSeconds 95e percentiel

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 tabelrapport maken

  1. Kies in Power BI onder Visualisaties het tabelrapport . De naam van velden is gewijzigd zoals aangegeven in de sectie Kolomvelden wijzigen.

    Schermopname van selecties van visualisatievelden voor het tabelrapport voor taakduur.

  2. Voeg de volgende velden toe aan de kolommen in de opgegeven volgorde.

    • Taaknaam
    • 50e percentiel
    • 80e percentiel
    • 95e percentiel
  3. 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 een deel van het resulterende rapport.

Schermopname van het voorbeeld van een tabeltrendrapport voor power BI Pipelines-taken.