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

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

Jak dlouho trvá dokončení různých úkolů? Tento článek obsahuje dotazy, ze kterých můžete vygenerovat sestavu pro konkrétní kanál a jeho úlohy. Například následující obrázek uvádí 50. , 80. a 95. percentil v sekundách pro všechny úkoly dokončené pro konkrétní kanál od 1. září do 15. prosince 2022.

Snímek obrazovky se sestavou trendu tabulek doby trvání úlohy Power BI Pipelines

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

Dotazujete entitu nastavenou PipelineRunActivityResults? tak, aby vracela informace o době trvání úkolu.

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 .

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/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

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 PipelineRunCompletedOn/Date ge {startdate}

Vrátí výsledky úkolu pro spuštění kanálu v zadaném datu nebo po zadaném datu.

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

Vrátí výsledky úkolů pouze pro úspěšná nebo částečně úspěšná spuštění kanálu.

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

Vynechání spuštění kanálu, která byla zrušena, vynechána nebo opuštěna.

)

Zavřete klauzuli filter() .

/compute(

Klauzule Start compute() .

percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,

Pro každý úkol vypočítá 50. percentil doby trvání úkolu pro všechny úkoly, které splňují kritéria filtru.

percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,

Pro každý úkol vypočítá 80. percentil doby trvání úkolu pro všechny úkoly, které splňují kritéria filtru.

percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)

Pro každý úkol vypočítá 95. percentil doby trvání úkolu pro všechny úkoly, které splňují kritéria filtru.

/groupby(

Spusťte klauzuli groupby() .

(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))

Seskupte úlohu spuštění kanálu a počítanou dobu trvání 50. úkolu percentilu, dobu trvání 80. percentilu a 95. dobu trvání úkolu percentilu.

&$orderby=TaskDuration50thPercentileInSeconds desc

Seřazení odpovědi podle úkolu s nejvyšší dobou trvání 50. percentilu

(Volitelné) Přejmenování dotazu

Výchozí popisek dotazu , Query1, můžete přejmenovat na něco smysluplnějšího. Jednoduše zadejte nový název z podokna Nastavení dotazu.

Snímek obrazovky s možnostmi nabídky dotazu Power BI a přejmenování dotazu

Změna datového typu sloupce

V nabídce Transformace změňte datový typ pro následující sloupce, abyste Decimal Number**. se dozvěděli, jak na to, viz Transformace datového typu sloupce.
- TaskDuration80thPercentileInSeconds - TaskDuration80thPercentileInSeconds - TaskDuration95thPercentileInSeconds.

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

Pole sloupců můžete přejmenovat. Můžete například přejmenovat následující sloupce tak, aby byly přívětivější pro zobrazení. Postup najdete v tématu Přejmenování polí sloupců.

Původní název pole Přejmenované pole
TaskDisplayName Název úlohy
TaskDuration50thPercentileInSeconds 50. percentil
TaskDuration80thPercentileInSeconds 80. percentil
TaskDuration95thPercentileInSeconds 95. percentil

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 tabulky

  1. V Power BI v části Vizualizace zvolte sestavu Tabulka . Pole byla přejmenována tak, jak je uvedeno v části Přejmenovat pole sloupců.

    Snímek obrazovky s výběrem polí vizualizace pro sestavu tabulky doby trvání úkolu

  2. Do zadaných sloupců přidejte následující pole.

    • Název úkolu
    • 50. percentil
    • 80. percentil
    • 95. percentil
  3. Pokud chcete změnit název sestavy, vyberte v podokně Vizualizace ikonu Formát vizuálního štětce, vyberte Obecné, rozbalte nadpis a nahraďte existující text.

Následující obrázek znázorňuje část výsledné sestavy.

Snímek obrazovky ukázkové sestavy trendu tabulky doby trvání úlohy Power BI Pipelines