Exempelrapport för pipelineaktivitetens varaktighetstrend

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

Om du vill visualisera den tid det tar för aktiviteter att slutföra för en specifik pipeline kan du skapa en trendrapport. Följande bild visar till exempel den 80:e percentilen i sekunder för alla uppgifter som har slutförts för en specifik pipeline från 1 september till 15 december 2022.

Skärmbild av trendrapporten för aktivitetsvaraktighet i 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

  • Åtkomst: Vara medlem i ett projekt med minst grundläggande åtkomst.
  • Behörigheter: Som standard har projektmedlemmar behörighet att fråga Analytics och skapa vyer.
  • 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 läser Ö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 PipelineRunActivityResults? för att skapa olika men liknande trendrapporter för aktivitetsvaraktighet.

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.

Uppgiftsvaraktighetstrend för angivet pipelinenamn

Kopiera och klistra in följande Power BI-fråga 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/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

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 aktivitetsresultat för en specifik pipeline.

and TaskDisplayName eq '{taskname}'

Returnera aktivitetsresultat för en viss aktivitet.

and PipelineRunCompletedOn/Date ge {startdate}

Returnera aktivitetsresultat för pipelinekörningar på eller efter det angivna datumet.

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

Returnera aktivitetsresultat för endast lyckade eller delvis lyckade pipelinekörningar.

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

Utelämna pipelinekörningar som avbröts, hoppades över eller övergavs.

)

Stäng-satsen filter() .

/compute(

Start-sats compute() .

percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)

För varje dag beräknar du den 80:e percentilen av aktivitetsvaraktigheterna för alla aktiviteter som matchar filtervillkoren.

/groupby(

Start-sats groupby() .

(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))

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

&$orderby=PipelineRunCompletedOn/Date asc

Beställ svaret efter slutfört datum.

Uppgiftsvaraktighetstrend för en pipeline, ange pipeline-ID

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 pipelines-körningssidan.

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

Kopiera och klistra in följande Power BI-fråga 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/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

Trend för varaktighet för 50:e, 80:e och 90:e percentilen för en pipeline

Om du vill visa aktivitetens varaktighetstrend som beräknas med hjälp av ett annat percentilvärde använder du följande fråga som ger varaktigheten för den 50:e och 95:e percentilen tillsammans med den 80:e percentilen.

Kopiera och klistra in följande Power BI-fråga 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/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

Aktivitetsvaraktighetstrend för en pipeline filtrerad efter gren

Om du vill visa varaktighetstrenden för en aktivitet för en viss gren använder du följande fråga. Gör följande för att skapa rapporten:

  • Expandera Branch till Branch.BranchName
  • Ändra kolumndatatyp
  • Skapa linjediagramrapporten
  • Välj Utsnitt i fönstret Visualiseringar och lägg till i Branch.BranchName utsnittets fält
  • Välj grenen från utsnittet som du behöver se aktivitetens varaktighetstrend för.

Kopiera och klistra in följande Power BI-fråga 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/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

Aktivitetsvaraktighetstrend för alla pipelineaktiviteter

Om du vill visa aktivitetens varaktighetstrend för alla pipelineaktiviteter i en enda rapport använder du följande fråga. Gör följande för att skapa rapporten:

Kopiera och klistra in följande Power BI-fråga 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/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

(Valfritt) Byt namn på fråga

Du kan byta namn på standardfrågans etikett, Query1, till något mer meningsfullt. Ange bara ett nytt namn i fönstret Frågeinställningar .

Skärmbild av alternativ för Power BI-frågemenyer, byt namn på fråga.

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 PipelineRunCompletedOn till PipelineRunCompletedOn.Date.
Information om hur du expanderar arbetsobjekt finns i Transformera analysdata för att generera Power BI-rapporter.

Ändra kolumndatatyp

Från menyn Transformera ändrar du datatypen för TaskDuration80thPercentileInSeconds kolumnen 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 TaskDuration80thPercentileInSeconds till 80th Percentile. 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 trendlinjediagramrapport för aktivitetsvaraktighet.

  2. Lägg till PipelineRunCompletedOn.Date i X-axeln. Högerklicka på fältet och välj PipelineRunCompletedOn.Date i stället för Datumhierarki.

  3. Lägg till TaskDuration80thPercentileInSeconds i Y-axeln och högerklicka på den för att se till att Sum är markerat.

  4. Om du vill ändra rapportrubriken väljer du ikonen Formatera din visuella pensel i fönstret Visualiseringar , väljer Allmänt, expanderar Rubrik och ersätter den befintliga texten.

Följande bild visar den resulterande rapporten.

Skärmbild av trendrapporten för aktivitetsvaraktighet i Power BI Pipelines.