Share via


Exempelrapport för pipelinevaraktighetstrend

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

Den här artikeln visar hur du skapar en rapport som visar hur lång tid pipelinen normalt tar att slutföra. Den dagliga trenden för rapporten över pipelinens varaktighet liknar trenddiagrammet Pipelinehastighet i rapporten Pipeline-genomströmningshastighet.

Följande bild visar ett exempel på en varaktighetstrendrapport.

Skärmbild av trendrapporten för Varaktighet för Power BI-pipelines.

Viktigt!

Power BI-integrering och åtkomst till OData-flödet i Analytics Service är allmänt tillgängliga för Azure DevOps Services och Azure DevOps Server 2020 och senare versioner. Exempelfrågorna i den här artikeln är endast giltiga mot Azure DevOps Server 2020 och senare versioner och är beroende av v3.0-förhandsversion eller senare version. Vi rekommenderar att du använder dessa frågor och ger oss feedback.

Förutsättningar

  • Om du vill visa analysdata och fråga tjänsten måste du vara medlem i ett projekt med grundläggande åtkomst eller större. Som standard beviljas alla projektmedlemmar behörighet att köra frågor mot Analytics och definiera analysvyer.
  • Mer information om andra förutsättningar för tjänst- och funktionsaktivering och allmänna dataspårningsaktiviteter finns i Behörigheter och krav för åtkomst till analys.

Kommentar

Den här artikeln förutsätter att du har läst Översikt över exempelrapporter med OData-frågor och har en grundläggande förståelse för Power BI.

Exempelfrågor

Du kan använda följande frågor i entitetsuppsättningen PipelineRuns för att skapa olika men liknande trendrapporter för pipelinevaraktighet.

Kommentar

Information om hur du fastställer tillgängliga egenskaper för filter- eller rapportändamål finns i Metadatareferens för Azure Pipelines. Du kan filtrera dina frågor eller returnera egenskaper med något av värdena Property under ett EntityType eller NavigationPropertyBinding Path flera värden som är tillgängliga med en EntitySet. Var och EntitySet en motsvarar en EntityType. Mer information om datatypen för varje värde finns i metadata för motsvarande EntityType.

Hämta den 80:e percentilens varaktighetstrend för en angiven pipeline

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Ersättningssträngar och frågeuppdelning

Ersätt följande strängar med dina värden. Ta inte med hakparenteser {} med din ersättning. Om ditt organisationsnamn till exempel är "Fabrikam" ersätter du {organization} med Fabrikam, inte {Fabrikam}.

  • {organization} – Organisationens namn
  • {project} – Namnet på ditt teamprojekt
  • {pipelinename} - Ditt pipelinenamn. Exempel: Fabrikam hourly build pipeline
  • {startdate} - Datumet då rapporten skulle startas. Format: ÅÅÅÅ-MM-DDZ. Exempel: 2021-09-01Z representerar 1 september 2021. Omslut inte citattecken eller hakparenteser och använd inte två siffror för både månad och datum.

Frågeuppdelning

I följande tabell beskrivs varje del av frågan.

Frågedel

Beskrivning


$apply=filter(

Start-sats filter() .

Pipeline/PipelineName eq '{pipelinename}'

Returnera pipelinekörningar för den angivna pipelinen.

and CompletedDate ge {startdate}

Returpipelinen körs på eller efter det angivna datumet.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Returnera endast lyckade eller delvis lyckade körningar.

)

Stäng-satsen filter() .

/compute(

Start-sats compute() .

percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)

Beräkna den 80:e percentilen av pipelinens varaktighet för alla pipelinekörningar som matchar filtervillkoren.

/groupby(

Starta groupby()

(Duration80thPercentileInSeconds, CompletedOn/Date))

Gruppera efter datum för slutförande av pipelinekörning och beräknad dagvis den 80:e percentilens pipelinevaraktighet.

&$orderby=CompletedOn/Date asc

Beställ svaret efter slutfört datum.

Filtrera efter pipeline-ID i stället för pipelinenamn

Pipelines kan byta namn. Om du vill se till att Power BI-rapporterna inte bryts när pipelinenamnet ändras använder du pipeline-ID i stället för pipelinenamn. Du kan hämta pipeline-ID:t från URL:en för pipelinekörningssidan.

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

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Hämta den 50:e och 90:e percentilen tillsammans med den 80:e percentilens varaktighetstrend

Du kanske vill visa varaktighetstrenden som beräknas med hjälp av ett annat percentilvärde. Följande frågor ger den 50:e och 90:e percentilens pipelinevaraktighet tillsammans med den 80:e percentilen.

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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,CompletedDateSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.90,CompletedDateSK) as Duration90thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds, Duration90thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Filtrera efter gren

Om du bara vill visa varaktighetstrenden för en pipeline för en viss gren använder du följande frågor. Skapa rapporten genom att utföra följande extra steg tillsammans med vad som beskrivs i datatypen Ändra kolumn och Skapa rapportavsnitten Linjediagram.

  • Expandera Branch till Branch.BranchName.
  • Välj Power BI Visualization Utsnitt och lägg till Branch.BranchName i utsnittets fält.
  • Välj pipelinen från utsnittet som du behöver se pipelinens varaktighetstrend för.

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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.8,BranchSK, CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, Branch/BranchName, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Varaktighetstrend för alla projektpipelines

Du kanske vill visa varaktighetstrenden för alla pipelines i projektet i en enda rapport. Skapa rapporten genom att utföra följande extra steg tillsammans med vad som beskrivs i datatypen Ändra kolumn och Skapa rapportavsnitten Linjediagram.

  • Expandera Pipeline till Pipeline.PipelineName.
  • Välj Utsnitt i fönstret Visualiseringar och lägg till i Pipeline.PipelineNam utsnittets fält.
  • Välj pipelinen från utsnittet som du behöver se trenden för pipelinens genomströmningshastighet för.

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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.8,PipelineId, CompletedDateSK) as Duration80thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration80thPercentileInSeconds, Pipeline/PipelineName, CompletedOn/Date)) "
                &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Expandera kolumner i Power Query-redigeraren

Innan du skapar rapporten måste du expandera kolumner som returnerar poster som innehåller flera fält. I det här fallet vill du expandera kolumnen för att platta ut den CompletedOn till CompletedOn.Date.
Information om hur du expanderar arbetsobjekt finns i Transformera analysdata för att generera Power BI-rapporter.

Ändra kolumndatatyp

På menyn Transformera ändrar du datatypen för Duration80thPercentileInSeconds till Decimaltal. Mer information finns i Transformera en kolumndatatyp.

(Valfritt) Byt namn på kolumnfält

Du kan byta namn på kolumnfält. Du kan till exempel byta namn på kolumnen Pipeline.PipelineName till Pipeline Nameeller TotalCount till Total Count. Mer information finns i Byt namn på kolumnfält.

Stäng frågan och tillämpa ändringarna

När du har slutfört alla dina datatransformeringar väljer du Stäng och använd startmenyn för att spara frågan och återgå till fliken Rapport i Power BI.

Skärmbild av alternativet stäng och tillämpa Power Query-redigeraren.

Skapa linjediagramrapporten

  1. I Power BI går du till Visualiseringar och väljer linjediagramrapporten .

    Skärmbild av val av visualiseringsfält för trendrapport för pipelinekörningar.

  2. Lägg till CompletedOn.Datei X-axel, högerklicka på den och välj CompletedOn.Date i stället för Datumhierarki.

  3. Lägg till Duration80thPercentileInSeconds i Y-axelns högerklicka på den och se till att Summa är markerat.

Rapporten som visas bör se ut ungefär som i följande bild.

Skärmbild av trendrapporten för Varaktighet för Pipelines i Power BI-exempel.