Ukázková sestava trendu doby trvání kanálu

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

V tomto článku se dozvíte, jak vytvořit sestavu, která ukazuje, jak dlouho obvykle trvá úspěšné dokončení kanálu. Denní trend sestavy doby trvání kanálu je podobný grafu trendu rychlosti kanálu v sestavě přenosové rychlosti kanálu.

Následující obrázek ukazuje příklad sestavy trendu doby trvání.

Snímek obrazovky se sestavou trendu doby trvání kanálů Power BI

Důležité

Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou obecně dostupné pro Azure DevOps Services a Azure DevOps Server 2020 a novější verze. Ukázkové dotazy uvedené v tomto článku jsou platné pouze pro Azure DevOps Server 2020 a novější verze a závisí na verzi v3.0-Preview nebo novější. Doporučujeme, abyste tyto dotazy používali a poskytli nám zpětnou vazbu.

Požadavky

  • Pokud chcete zobrazit data Analýzy a dotazovat se na službu, musíte být členem projektu se základním přístupem nebo novějším. Ve výchozím nastavení mají všichni členové projektu udělená oprávnění k dotazování analýzy a definování zobrazení Analýzy.
  • Další informace o dalších požadavcích týkajících se povolení služeb a funkcí a obecných aktivit sledování dat najdete v tématu Oprávnění a požadavky pro přístup k Analýzám.

Poznámka:

Tento článek předpokládá, že jste si přečetli přehled ukázkových sestav pomocí dotazů OData a máte základní znalosti o Power BI.

Vzorové dotazy

Následující dotazy sady entit můžete použít k vytvoření různých, ale podobných sestav trendu PipelineRuns doby trvání kanálu.

Poznámka:

Informace o dostupných vlastnostech pro účely filtru nebo sestavy najdete v referenčních informacích k metadatům pro Azure Pipelines. Dotazy můžete filtrovat nebo vracet vlastnosti pomocí libovolné hodnoty Property pod hodnotami nebo NavigationPropertyBinding Path hodnotami dostupnými v objektu EntitySetEntityType . Každý EntitySet odpovídá hodnotě EntityType. Další informace o datovém typu každé hodnoty najdete v metadatech zadaných pro odpovídající EntityTypehodnotu .

Získání trendu doby trvání 80. percentilu pro zadaný kanál

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů OData.

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

Náhradní řetězce a rozpis dotazů

Nahraďte následující řetězce hodnotami. Nezahrnujte do náhradních závorek {} . Pokud je například název vaší organizace "Fabrikam", nahraďte {organization} ho Fabrikam, nikoli {Fabrikam}.

  • {organization} – Název vaší organizace
  • {project} - Název projektu vašeho týmu
  • {pipelinename} – Název vašeho kanálu. Příklad: Fabrikam hourly build pipeline
  • {startdate} - Datum zahájení sestavy. Formát: RRRR-MM-DDZ. Příklad: 2021-09-01Z představuje 1. září 2021. Nepoužívejte uvozovky ani hranaté závorky a pro oba měsíce a datum použijte dvě číslice.

Rozpis dotazů

Následující tabulka popisuje jednotlivé části dotazu.

Část dotazování

Popis


$apply=filter(

Klauzule Start filter() .

Pipeline/PipelineName eq '{pipelinename}'

Návratová spuštění kanálu pro zadaný kanál.

and CompletedDate ge {startdate}

Vrácení spuštění kanálu v zadaném datu nebo po zadaném datu.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Vrátí pouze úspěšná nebo částečně úspěšná spuštění.

)

Klauzule Close filter()

/compute(

Klauzule Start compute() .

percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)

Výpočet 80. percentilu doby trvání kanálu pro všechna spuštění kanálu, která odpovídají kritériím filtru.

/groupby(

Zahájení seskupby()

(Duration80thPercentileInSeconds, CompletedOn/Date))

Seskupte podle data dokončení spuštění kanálu a počítanou dobu trvání 80. kanálu percentilu.

&$orderby=CompletedOn/Date asc

Seřadit odpověď podle data dokončení.

Filtrování podle ID kanálu místo názvu kanálu

Kanály je možné přejmenovat. Pokud chcete zajistit, aby se sestavy Power BI při změně názvu kanálu nepřerušily, použijte MÍSTO názvu kanálu ID kanálu. ID kanálu můžete získat z adresy URL stránky spuštění kanálu.

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

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů OData.

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

Získání 50. a 90. percentilu spolu s trendem trvání 80. percentilu

Můžete si zobrazit trend doby trvání vypočítaný pomocí jiné hodnoty percentilu. Následující dotazy poskytují 50. a 90. dobu trvání kanálu percentilu spolu s 80. percentilem.

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů OData.

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

Filtrovat podle větve

Pokud chcete zobrazit trend doby trvání kanálu pouze pro určitou větev , použijte následující dotazy. Pokud chcete vytvořit sestavu, proveďte následující kroky navíc spolu s tím, co je uvedeno v datovém typu Změnit sloupec a vytvořit oddíly sestavy spojnicového grafu.

  • Rozbalit Branch do Branch.BranchName.
  • Vyberte průřez vizualizace Power BI a přidejte Branch.BranchName ho do pole průřezu.
  • Vyberte kanál z průřezu, pro který potřebujete zobrazit trend doby trvání kanálu.

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů OData.

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

Trend doby trvání pro všechny kanály projektu

Můžete si zobrazit trend doby trvání pro všechny kanály projektu v jedné sestavě. Pokud chcete vytvořit sestavu, proveďte následující kroky navíc spolu s tím, co je uvedeno v datovém typu Změnit sloupec a vytvořit oddíly sestavy spojnicového grafu.

  • Rozbalit Pipeline do Pipeline.PipelineName.
  • V podokně Vizualizace vyberte průřez a přidejte ho Pipeline.PipelineNam do pole průřezu.
  • Vyberte kanál z průřezu, pro který potřebujete vidět trend rychlosti průchodu kanálu.

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů OData.

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

Rozbalení sloupců v Editor Power Query

Před vytvořením sestavy budete muset rozbalit sloupce, které vracejí záznamy obsahující několik polí. V tomto případě budete chtít sloupec rozšířit CompletedOn , aby se CompletedOn.Datezploštěl .
Informace o tom, jak rozbalit pracovní položky, najdete v tématu Transformace analytických dat pro generování sestav Power BI.

Změna datového typu sloupce

V nabídce Transformace změňte datový typ pro Duration80thPercentileInSecondsdesetinné číslo. Postup najdete v tématu Transformace datového typu sloupce.

(Volitelné) Přejmenování polí sloupců

Pole sloupců můžete přejmenovat. Můžete například přejmenovat sloupec Pipeline.PipelineName na Pipeline Name, nebo TotalCount na Total Count. Postup najdete v tématu Přejmenování polí sloupců.

Zavřete dotaz a použijte změny.

Jakmile dokončíte všechny transformace dat, v nabídce Domů zvolte Zavřít a použítdotaz a vraťte se na kartu Sestava v Power BI.

Snímek obrazovky s možností Zavřít a Použít Editor Power Query

Vytvoření sestavy spojnicového grafu

  1. V Power BI v části Vizualizace zvolte sestavu spojnicového grafu .

    Snímek obrazovky s výběrem polí vizualizace pro sestavu trendu doby trvání spuštění kanálů

  2. Přidejte CompletedOn.Date na osu X, klikněte na ni pravým tlačítkem myši a vyberte CompletedOn.Date místo hierarchie kalendářních dat.

  3. Klikněte Duration80thPercentileInSeconds na ni pravým tlačítkem na osu Y a ujistěte se, že je vybraný součet.

Zobrazená sestava by měla vypadat podobně jako na následujícím obrázku.

Snímek obrazovky se sestavou trendu trvání ukázkových kanálů Power BI