Report di esempio dell'andamento della durata della pipeline
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Questo articolo spiega come creare un report che mostri quanto tempo impiega normalmente la pipeline per completarsi con successo. La tendenza giornaliera del report sulla durata della pipeline è simile al grafico delle tendenze del tasso della pipeline del report sul tasso di passaggio della pipeline.
L'immagine seguente mostra un esempio di rapporto sulla tendenza della durata.
Importante
L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili a livello generale per Azure DevOps Services e Azure DevOps Server 2020 e versioni successive. Le query di esempio fornite in questo articolo sono valide solo per Azure DevOps Server 2020 e versioni successive e dipendono dalla versione v3.0-preview o successiva. È consigliabile usare queste query e fornire commenti e suggerimenti.
Categoria | Requisiti |
---|---|
Livelli di accesso |
-
membro del progetto. - Accesso di base almeno. |
Autorizzazioni | Per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste. Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics. |
Nota
Questo articolo presuppone che tu abbia letto Panoramica dei report di esempio usando query OData e abbia una conoscenza di base di Power BI.
Query di esempio
È possibile usare le query seguenti dell'insieme di entità PipelineRuns
per creare report sulle tendenze della durata dei pipeline diversi ma affini.
Nota
Per determinare le proprietà disponibili a scopo di filtro o report, vedere Informazioni di riferimento sui metadati per Azure Pipelines. È possibile filtrare le query o restituire proprietà usando uno qualsiasi dei valori di Property
sotto un EntityType
o i valori di NavigationPropertyBinding Path
disponibili con un EntitySet
. Ognuno EntitySet
corrisponde a un oggetto EntityType
. Per altre informazioni sul tipo di dati di ogni valore, esaminare i metadati forniti per l'oggetto corrispondente EntityType
.
Ottieni la tendenza di durata dell'80° percentile per un pipeline specifico
Copia e incolla la seguente query di Power BI direttamente nella Recupera dati>finestra Query Vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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
Stringhe di sostituzione e scomposizione delle query
Sostituire le stringhe seguenti con i valori. Non includere parentesi {} nella sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization}
con Fabrikam
, non {Fabrikam}
.
-
{organization}
- Nome dell'organizzazione -
{project}
- Nome del progetto del team -
{pipelinename}
- Nome della pipeline. Esempio:Fabrikam hourly build pipeline
-
{startdate}
- Data di inizio per il tuo report. Formato: AAAA-MM-GG. Esempio:2021-09-01Z
rappresenta il 1° settembre 2021. Non racchiudere tra virgolette o parentesi quadre e usare due cifre per entrambi, mese e data.
Suddivisione delle query
La tabella seguente descrive ogni parte della query.
Parte della query
Descrizione
$apply=filter(
Inizio clausola filter()
.
Pipeline/PipelineName eq '{pipelinename}'
Restituisci le esecuzioni per la pipeline specificata.
and CompletedDate ge {startdate}
La pipeline restituita viene eseguita in o dopo la data specificata.
and (SucceededCount eq 1 or PartiallySucceededCount eq 1)
Restituisce solo le esecuzioni riuscite o parzialmente riuscite.
)
Chiudi filter()
la clausola.
/compute(
Avvio compute()
clausola.
percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)
Calcolare l'80° percentile delle durate della pipeline di tutte le esecuzioni di pipeline che corrispondono ai criteri di filtro.
/groupby(
Inizia groupby()
(Duration80thPercentileInSeconds, CompletedOn/Date))
Raggruppare in base alla data di completamento dell'esecuzione della pipeline e alla durata della pipeline calcolata giornalmente come 80° percentile.
&$orderby=CompletedOn/Date asc
Ordinare la risposta in base alla data di completamento.
Filtrare in base all'ID della pipeline anziché al nome della pipeline
È possibile rinominare le pipeline. Per assicurarsi che i report di Power BI non si interrompano quando viene modificato il nome della pipeline, usare l'ID della pipeline anziché il nome della pipeline. È possibile ottenere l'ID della pipeline dall'URL della pagina di esecuzione della pipeline.
https://dev.azure.com/{organization}/{project}/_build?definitionId= `{pipelineid}`
Copia e incolla la query di Power BI seguente direttamente nella finestra Ottieni dati>Query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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
Ottieni il 50° e il 90° percentile, insieme alla tendenza della durata dell'80° percentile
È possibile visualizzare la tendenza della durata calcolata usando un altro valore percentile. Le query seguenti forniscono la durata della pipeline al 50°, 90° e 80° percentile.
Copia e incolla la query di Power BI seguente direttamente nella Recupera dati>Query vuota finestra. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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
Filtrare per ramo
Per visualizzare la tendenza della durata di una pipeline solo per un ramo specifico, usare le query seguenti. Per creare il report, eseguire i passaggi aggiuntivi seguenti insieme a quanto descritto nelle sezioni Modificare il tipo di dati della colonna e Creare il report grafico a linee.
- Espandere
Branch
inBranch.BranchName
. - Selezionare Filtro dei dati delle visualizzazioni di Power BI e aggiungere
Branch.BranchName
al campo del filtro dei dati. - Selezionare la pipeline dal slicer per visualizzare la tendenza della durata della pipeline.
Copia e incolla la seguente query di Power BI direttamente nella finestra Recupera dati>Query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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
Tendenza della durata per tutte le pipeline di progetto
È possibile visualizzare la tendenza della durata per tutte le pipeline del progetto in un singolo report. Per creare il report, eseguire i passaggi aggiuntivi seguenti insieme a quanto descritto nelle sezioni Modificare il tipo di dati della colonna e Creare il report grafico a linee.
- Espandere
Pipeline
inPipeline.PipelineName
. - Selezionare Slicer nel riquadro Visualizzazioni e aggiungere il
Pipeline.PipelineNam
al campo del filtro. - Selezionare la pipeline dal filtro dei dati per cui è necessario visualizzare la tendenza della velocità di passaggio della pipeline.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>Query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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
Espandere le colonne nell'Editor di Power Query
Prima di creare il report, è necessario espandere le colonne che restituiscono record contenenti diversi campi. In questo caso, dovrai espandere la CompletedOn
colonna per appiattirla in CompletedOn.Date
.
Per informazioni su come espandere gli elementi di lavoro, vedere Trasformare i dati di Analisi per generare report di Power BI.
Modificare il tipo di dati della colonna
Dal menu Trasforma modificare il tipo di dati per l'oggetto Duration80thPercentileInSeconds
in Numero decimale. Per informazioni su come, vedere Trasformare il tipo di dati di una colonna.
(Facoltativo) Rinominare i campi della colonna
È possibile rinominare i campi delle colonne. Ad esempio, è possibile rinominare la colonna Pipeline.PipelineName
in Pipeline Name
o TotalCount
in Total Count
. Per informazioni su come, vedere Rinominare i campi delle colonne.
Chiudere la query e applicare le modifiche
Dopo aver completato tutte le trasformazioni dei dati, scegliere Chiudi e applica dal menu Home per salvare la query e tornare alla scheda Report in Power BI.
Creare il report grafico a linee
In Power BI, in Visualizzazioni, scegliere il report Grafico a linee.
Aggiungi
CompletedOn.Date
all'asse X, fai clic con il pulsante destro del mouse su di esso e scegli CompletedOn.Date, anziché Gerarchia data.Aggiungi
Duration80thPercentileInSeconds
all'asseY facendo clic con il pulsante destro del mouse e verifica che Sum sia selezionato.
Il report visualizzato dovrebbe essere simile all'immagine seguente.