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

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

Pokud chcete vizualizovat čas potřebný k dokončení úkolů pro konkrétní kanál, můžete vytvořit sestavu trendu. Následující obrázek například ukazuje 80. percentil v sekundách pro všechny úkoly dokončené pro konkrétní kanál od 15. září do 15. prosince 2022.

Snímek obrazovky se sestavou trendu 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

Následující dotazy sady entit můžete použít k vytvoření různých, ale podobných sestav trendu PipelineRunActivityResults? doby 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 .

Trend doby trvání úlohy pro zadaný název 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/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

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}'

Vrátí výsledky úkolů pro konkrétní kanál.

and TaskDisplayName eq '{taskname}'

Vrátí výsledky úkolu pro konkrétní úkol.

and PipelineRunCompletedOn/Date ge {startdate}

Vrátí výsledky úkolů pro spuštění kanálu po zadaném datu nebo po tomto 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.

)

Klauzule Close filter()

/compute(

Klauzule Start compute() .

percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)

Pro každý den vypočítáte 80. percentil doby trvání úkolů všech úkolů, které odpovídají kritériím filtru.

/groupby(

Klauzule Start groupby() .

(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))

Seskupte podle data dokončení spuštění kanálu a počítaného dne s 80. dobou trvání úkolu percentilu.

&$orderby=PipelineRunCompletedOn/Date asc

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

Trend doby trvání úlohy pro kanál, zadání 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álů.

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

50th, 80th, and 90th percentil task duration trend for a pipeline

Pokud chcete zobrazit trend doby trvání úkolu vypočítaný pomocí jiné hodnoty percentilu, použijte následující dotaz, který poskytuje 50. a 95. percentil trvání úkolu 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/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

Trend doby trvání úlohy pro kanál filtrovaný podle větve

Pokud chcete zobrazit trend doby trvání úkolu pro určitou větev, použijte následující dotaz. Pokud chcete vytvořit sestavu, proveďte následující kroky:

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

Trend doby trvání úlohy pro všechny úlohy kanálu

Pokud chcete zobrazit trend doby trvání úlohy pro všechny úlohy kanálu v jedné sestavě, použijte následující dotaz. Pokud chcete vytvořit sestavu, proveďte následující kroky:

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

(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

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 PipelineRunCompletedOn , aby se PipelineRunCompletedOn.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 TaskDuration80thPercentileInSeconds sloupce na Desetinné číslo. Postup najdete v tématu Transformace datového typu sloupce.

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

Pole sloupců můžete přejmenovat. Sloupec můžete například přejmenovat TaskDuration80thPercentileInSeconds na 80th Percentile. 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 spojnicového grafu trendu doby trvání úkolu

  2. Přidat PipelineRunCompletedOn.Date na osu X Klikněte pravým tlačítkem myši na pole a místo hierarchie dat zvolte PipelineRunCompletedOn.Date.

  3. Přidejte TaskDuration80thPercentileInSeconds na osu Y a klikněte na ni pravým tlačítkem a ujistěte se, že je vybraný součet .

  4. 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 výslednou sestavu.

Snímek obrazovky s ukázkovou sestavou trendu doby trvání úlohy Power BI Pipelines