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.
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
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 EntitySet
EntityType
. 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í EntityType
hodnotu .
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/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.
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žít dotaz a vraťte se na kartu Sestava v Power BI.
Vytvoření sestavy tabulky
V Power BI v části Vizualizace zvolte sestavu Tabulka . Pole byla přejmenována tak, jak je uvedeno v části Přejmenovat pole sloupců.
Do zadaných sloupců přidejte následující pole.
- Název úkolu
- 50. percentil
- 80. percentil
- 95. percentil
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.