Sdílet prostřednictvím


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

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

V tomto článku se dozvíte, jak získat dobu trvání kanálu nebo čas potřebný ke spuštění kanálu. Tato sestava se podobá souhrnné metrikě doby trvání v grafu Doba trvání kanálu v sestavě doby trvání kanálu.

Následující obrázek ukazuje příklad sestavy doby trvání pro konkrétní kanál pro všechna spuštění kanálu od září 2022 do 15. prosince 2022.

Snímek obrazovky se sestavou skupinových sloupců v clusteru Power BI Pipelines Duration

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

  • Přístup: Buďte členem projektu s alespoň základním přístupem.
  • Oprávnění: Ve výchozím nastavení mají členové projektu oprávnění k dotazování na Analýzy a vytváření zobrazení.
  • 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 si přečtete 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 PipelineRuns sestav 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 .

Vrácení doby trvání percentilu pro zadaný kanál

Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,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.5) as Duration50thPercentileInSeconds,

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

percentile_cont(TotalDurationSeconds, 0.8) 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.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

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

/groupby(

Klauzule Start groupby() .

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Seskupte odpověď podle Duration50thPercentileInSeconds, Duration80thPercentileInSecondsa Duration95thPercentileInSeconds ukončete klauzuli groupby .

Vrácení doby trvání percentilu pro zadané ID 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}

Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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.5) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Vrácení doby trvání percentilu pro zadaný kanál, filtrování podle větve

Pokud chcete zobrazit dobu trvání kanálu jenom 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řte oddíly sestavy skupinového sloupcového grafu.

  • Rozbalit Branch do Branch.BranchName.
  • Přidejte pole Branch.BranchName do osy X.

Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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, BranchSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Vrácení doby trvání percentilu pro všechny kanály projektu

Pokud chcete zobrazit dobu trvání všech kanálů projektu v jedné sestavě, 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řte oddíly sestavy skupinového sloupcového grafu.

  • Rozbalit Pipeline do Pipeline.PipelineName.
  • Přidejte pole PIpeline.PipelineName do osy X.

Podívejte se také na souhrn výsledků pro všechny kanály ukázkové sestavy , která obsahuje podrobné podobné kroky, jak je zde potřeba.

Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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.5, PipelineId) as Duration50thPercentileInSeconds, "
            &"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
                &"/groupby( "
            &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Změna datového typu sloupce

V nabídce Transformace změňte datový typ pro následující sloupce na Desetinné číslo. Postup najdete v tématu Transformace datového typu sloupce.

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(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žít dotaz 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 skupinového sloupcového grafu

  1. V Power BI v části Vizualizace zvolte sestavu skupinového sloupcového grafu . Příklad předpokládá, že nebyly přejmenovány žádné sloupce.

    Snímek obrazovky s clusterovanými sloupci Vizualizace a výběry polí v Power BI Pipelines

  2. Na osu Y přidejte následující pole, klikněte pravým tlačítkem myši na každé pole a ujistěte se, že je vybrán součet.

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. Pokud chcete změnit název sestavy, legendu nebo jiné vizuály sestavy, vyberte v podokně Vizualizace ikonu Formát vizuálního malířského štětce a upravte jedno nebo více nastavení.

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

Snímek obrazovky se sestavou skupinových sloupců s dobou trvání ukázkových kanálů Power BI