Esempio di report sulla durata dell'attività della pipeline
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Quanto tempo richiede attività diverse per il completamento? Questo articolo fornisce le query da cui è possibile generare un report per una pipeline specifica e le relative attività. Ad esempio, l'immagine seguente elenca il 50, l'80 e il 95° percentile in secondi per tutte le attività completate per una pipeline specifica dal 1° settembre al 15 dicembre 2022.
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 almeno di livello di base. |
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 le query OData e abbia una conoscenza di base di Power BI.
Query di esempio
Eseguire una query sul PipelineRunActivityResults?
set di entità per restituire le informazioni sulla durata dell'attività.
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 Property
di un oggetto EntityType
o dei valori disponibili con un oggetto EntitySet
NavigationPropertyBinding Path
. 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
.
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/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
Stringhe di sostituzione e analisi delle query
Sostituire le stringhe seguenti con i valori. Non includere parentesi {} con la tua sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization}
con Fabrikam
, non {Fabrikam}
.
-
{organization}
- Nome dell'organizzazione -
{project}
- Nome del progetto della squadra -
{pipelinename}
- Nome della pipeline. Esempio:Fabrikam hourly build pipeline
-
{startdate}
- Data di inizio del report. Formato: AAAA-MM-GG. Esempio:2021-09-01Z
rappresenta il 1° settembre 2021. Non inserire tra virgolette o parentesi e utilizzare due cifre per entrambi, mese e data.
Suddivisione delle query
La tabella seguente descrive ogni parte della query.
Parte della query
Descrizione
$apply=filter(
Inizia la clausola filter()
.
Pipeline/PipelineName eq '{pipelinename}'
Restituisci le esecuzioni della pipeline per la pipeline specificata.
and PipelineRunCompletedOn/Date ge {startdate}
Restituire i risultati dell'attività per un'esecuzione della pipeline in o dopo la data specificata.
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
Restituisce risultati di attività solo per esecuzioni di pipeline completamente o parzialmente riuscite.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Omettere le esecuzioni di pipeline annullate, ignorate o abbandonate.
)
Chiudere la filter()
clausola .
/compute(
Inizia compute()
clausola.
percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,
Per ogni attività, calcolare il 50° percentile delle durate delle attività per tutte le attività che soddisfano i criteri di filtro.
percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,
Per ogni attività, calcolare l'80° percentile delle durate delle attività per tutte le attività che soddisfano i criteri di filtro.
percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)
Per ogni attività, calcolare il 95° percentile delle durate delle attività per tutte le attività che soddisfano i criteri di filtro.
/groupby(
Avvia la groupby()
clausola.
(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))
Raggruppa le attività nell'esecuzione della pipeline e calcola la durata delle attività per percentili giornalieri: 50°, 80° e 95°.
&$orderby=TaskDuration50thPercentileInSeconds desc
Ordinare la risposta per le attività con la durata al 50° percentile più alta.
(Facoltativo) Rinominare la query
È possibile rinominare l'etichetta di query predefinita Query1 in qualcosa di più significativo. È sufficiente immettere un nuovo nome dal riquadro delle Impostazioni Query.
Modificare il tipo di dati della colonna
Dal menu Trasforma modificare il tipo di dati delle colonne seguenti a Decimal Number**.
. Per sapere come fare, vedere Trasformare un tipo di dati di colonna.
-
TaskDuration80thPercentileInSeconds
-
TaskDuration80thPercentileInSeconds
-
TaskDuration95thPercentileInSeconds
.
(Facoltativo) Rinominare i campi della colonna
È possibile rinominare i campi delle colonne. Ad esempio, è possibile rinominare le colonne seguenti in modo che siano più semplici da visualizzare. Per informazioni su come, vedere Rinominare i campi delle colonne.
Nome campo originale | Campo rinominato |
---|---|
TaskDisplayName |
Nome attività |
TaskDuration50thPercentileInSeconds |
50° percentile |
TaskDuration80thPercentileInSeconds |
80° percentile |
TaskDuration95thPercentileInSeconds |
95° Percentile |
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.
Crea il report della tabella
In Power BI, in Visualizzazioni, scegliere Tabella. I campi sono stati rinominati come indicato nella sezione Rinomina campi colonna.
Aggiungere i campi seguenti alle colonne nell'ordine specificato.
- Nome attività
- 50° percentile
- 80° percentile
- 95° Percentile
Per modificare il titolo del report, selezionare l'icona Formattazione visiva dal riquadro Visualizzazioni, selezionare Generale, espandere Titolo e sostituire il testo esistente.
L'immagine seguente mostra una parte del report risultante.