Ukázková zpráva o trendu doby trvání úlohy potrubí
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Pokud chcete vizualizovat čas potřebný k dokončení úkolů pro konkrétní pipeline, můžete vytvořit trendovou zprávu. 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.
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.
Kategorie | Požadavky |
---|---|
úrovně přístupu |
-
Člen projektu. Alespoň základní přístup. |
Oprávnění | Ve výchozím nastavení mají členové projektu oprávnění provádět dotazy v Analytice a vytvářet 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 jste č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 PipelineRunActivityResults?
můžete použít k vytváření různých, avšak podobných sestav trendu doby trvání úkolu.
Poznámka:
Informace o dostupných vlastnostech pro účely filtrování nebo vytváření sestav 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 EntityType
nebo hodnot NavigationPropertyBinding Path
dostupných s EntitySet
. 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 .
Trend doby trvání úlohy pro zadaný název kanálu
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat data>prázdný dotaz. 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 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 analýza dotazů
Nahraďte následující řetězce hodnotami. Nezahrnujte závorky {} do vaší náhrady. Pokud je například název vaší organizace "Fabrikam", nahraďte {organization}
s Fabrikam
, nikoli s {Fabrikam}
.
-
{organization}
– Název vaší organizace -
{project}
- Název projektu vašeho týmu -
{pipelinename}
– Název vašeho potrubí. 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(
Začátek filter()
klauzula.
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í procesu.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Vynechejte spuštění potrubí, které byly zrušeny, vynechány nebo opuštěny.
)
Uzavřít filter()
klauzuli.
/compute(
Začátek klauzule 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(
Začněte klauzuli groupby()
.
(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))
Seskupte podle data dokončení spuštění pipeline a vypočtené denní 80. percentilové doby trvání úkolů.
&$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 potrubí nepřerušily, použijte místo názvu potrubí ID potrubí. 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}
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat data>Prázdný dotaz. Další informace viz Přehled ukázkových sestav s dotazy 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
Trend délky úkolu na 50., 80. a 90. percentilu pro potrubí
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.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat data>Prázdný dotaz. 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 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:
- Rozbalit
Branch
doBranch.BranchName
- Změna datového typu sloupce
- Vytvořte sestavu spojnicového grafu
- V podokně vizualizací vyberte řezačku a přidejte
Branch.BranchName
do pole řezačkyField. - Vyberte větev z průřezu, pro kterou potřebujete zobrazit trend doby trvání úkolu.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat data>Prázdný dotaz . Další informace najdete v tématu Přehled ukázkových sestav s použitím 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 trvání úloh pro všechny pipeline úlohy v jedné sestavě, použijte následující dotaz. Pokud chcete vytvořit sestavu, proveďte následující kroky:
- Změna datového typu sloupce
- Vytvořte sestavu spojnicového grafu
- V podokně Vizualizace vyberte Slicer a přidejte
TaskDisplayName
do pole průřezu - Vyberte úkol z průřezu, pro který potřebujete zobrazit trend doby trvání úkolu.
Zkopírujte a vložte následující dotaz Power BI přímo do Získat Data>Prázdný dotaz okna. 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.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.
Rozbalit sloupce v Editoru Power Query
Před vytvořením sestavy budete muset rozšířit sloupce, které vracejí záznamy obsahující několik polí. V tomto případě budete chtít rozšířit sloupec PipelineRunCompletedOn
, aby byl zploštěn na PipelineRunCompletedOn.Date
.
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žít pro uložení dotazu a vraťte se na kartu Sestava v Power BI.
Vytvořte sestavu spojnicového grafu
V Power BI v části Vizualizace zvolte spojnicový graf.
Přidat
PipelineRunCompletedOn.Date
k ose X. Klikněte pravým tlačítkem myši na pole a místo hierarchie dat zvolte PipelineRunCompletedOn.Date.Přidejte
TaskDuration80thPercentileInSeconds
k ose Y a klikněte na ni pravým tlačítkem, abyste se ujistili, že je vybrán Součet.Pokud chcete změnit název sestavy, vyberte ikonu štětce Formátování vizuálu v podokně Vizualizace, vyberte Obecné, rozbalte Nadpis a nahraďte existující text.
Následující obrázek znázorňuje výslednou sestavu.