Ukázková sestava trendu doby trvání kanálu
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
V tomto článku se dozvíte, jak vytvořit sestavu, která ukazuje, jak dlouho obvykle trvá úspěšné dokončení kanálu. Denní trend sestavy doby trvání kanálu je podobný grafu trendu rychlosti kanálu v sestavě přenosové rychlosti kanálu.
Následující obrázek ukazuje příklad sestavy trendu doby trvání.
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 sestav trendu PipelineRuns
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 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 .
Získání trendu doby trvání 80. 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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
&"/groupby( "
&"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
&"&$orderby=CompletedOn/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}'
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.8,CompletedDateSK) 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.
/groupby(
Zahájení seskupby()
(Duration80thPercentileInSeconds, CompletedOn/Date))
Seskupte podle data dokončení spuštění kanálu a počítanou dobu trvání 80. kanálu percentilu.
&$orderby=CompletedOn/Date asc
Seřadit odpověď podle data dokončení.
Filtrování podle ID kanálu místo názvu 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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
&"/groupby( "
&"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Získání 50. a 90. percentilu spolu s trendem trvání 80. percentilu
Můžete si zobrazit trend doby trvání vypočítaný pomocí jiné hodnoty percentilu. Následující dotazy poskytují 50. a 90. dobu trvání kanálu percentilu spolu s 80. percentilem.
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,CompletedDateSK) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.90,CompletedDateSK) as Duration90thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds, Duration90thPercentileInSeconds, CompletedOn/Date)) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Filtrovat podle větve
Pokud chcete zobrazit trend doby trvání kanálu pouze 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řit oddíly sestavy spojnicového grafu.
- Rozbalit
Branch
doBranch.BranchName
. - Vyberte průřez vizualizace Power BI a přidejte
Branch.BranchName
ho do pole průřezu. - Vyberte kanál z průřezu, pro který potřebujete zobrazit trend doby trvání kanálu.
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.8,BranchSK, CompletedDateSK) as Duration80thPercentileInSeconds) "
&"/groupby( "
&"(Duration80thPercentileInSeconds, Branch/BranchName, CompletedOn/Date)) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Trend doby trvání pro všechny kanály projektu
Můžete si zobrazit trend doby trvání pro všechny kanály projektu v jedné sestavě. 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řit oddíly sestavy spojnicového grafu.
- Rozbalit
Pipeline
doPipeline.PipelineName
. - V podokně Vizualizace vyberte průřez a přidejte ho
Pipeline.PipelineNam
do pole průřezu. - Vyberte kanál z průřezu, pro který potřebujete vidět trend rychlosti průchodu kanálu.
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.8,PipelineId, CompletedDateSK) as Duration80thPercentileInSeconds) "
&"/groupby( "
&"(Duration80thPercentileInSeconds, Pipeline/PipelineName, CompletedOn/Date)) "
&"&$orderby=CompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
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 CompletedOn
, aby se CompletedOn.Date
zploš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 pro Duration80thPercentileInSeconds
desetinné číslo. Postup najdete v tématu Transformace datového typu sloupce.
(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.
Vytvoření sestavy spojnicového grafu
V Power BI v části Vizualizace zvolte sestavu spojnicového grafu .
Přidejte
CompletedOn.Date
na osu X, klikněte na ni pravým tlačítkem myši a vyberte CompletedOn.Date místo hierarchie kalendářních dat.Klikněte
Duration80thPercentileInSeconds
na ni pravým tlačítkem na osu Y a ujistěte se, že je vybraný součet.
Zobrazená sestava by měla vypadat podobně jako na následujícím obrázku.