Informe de ejemplo de tendencia de duración de tareas de canalización
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Para visualizar el tiempo que tardan las tareas en completarse para una canalización específica, puede crear un informe de tendencias. Por ejemplo, en la imagen siguiente se muestra el percentil 80 en segundos para todas las tareas completadas para una canalización específica del 1 de septiembre al 15 de diciembre de 2022.
Importante
La integración y el acceso de Power BI a la fuente OData del servicio Analytics están disponibles con carácter general para Azure DevOps Services y Azure DevOps Server 2020 y versiones posteriores. Las consultas de ejemplo proporcionadas en este artículo solo son válidas en Azure DevOps Server 2020 y versiones posteriores, y dependen de la versión v3.0-preview o posterior. Le recomendamos que use estas consultas y nos proporcione sus comentarios.
Requisitos previos
- Access: sea miembro de un proyecto con al menos acceso básico .
- Permisos: de forma predeterminada, los miembros del proyecto tienen permiso para consultar Analytics y crear vistas.
- Para obtener más información sobre otros requisitos previos relacionados con las actividades de habilitación de servicios y características y seguimiento de datos generales, consulte Permisos y requisitos previos para acceder a Analytics.
Nota:
En este artículo se da por supuesto que lee Información general de los informes de ejemplo mediante consultas de OData y tiene conocimientos básicos de Power BI.
Consultas de ejemplo
Puede usar las siguientes consultas del PipelineRunActivityResults?
conjunto de entidades para crear informes de tendencias de duración de tareas diferentes pero similares.
Nota:
Para determinar las propiedades disponibles con fines de filtro o informe, consulte Referencia de metadatos para Azure Pipelines. Puede filtrar las consultas o devolver propiedades mediante cualquiera de los Property
valores de un EntityType
valor o NavigationPropertyBinding Path
disponible con .EntitySet
Cada EntitySet
uno corresponde a un objeto EntityType
. Para obtener más información sobre el tipo de datos de cada valor, revise los metadatos proporcionados para el correspondiente EntityType
.
Tendencia de duración de la tarea para el nombre de canalización especificado
Copie y pegue la siguiente consulta de Power BI directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Información general sobre informes de ejemplo mediante consultas de 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
Cadenas de sustitución y desglose de consultas
Sustituya las cadenas siguientes por sus valores. No incluya corchetes {} con la sustitución. Por ejemplo, si el nombre de la organización es "Fabrikam", reemplace por {organization}
Fabrikam
, no {Fabrikam}
por .
{organization}
- El nombre de la organización{project}
- El nombre del proyecto de equipo{pipelinename}
: el nombre de la canalización. Ejemplo:Fabrikam hourly build pipeline
{startdate}
- La fecha de inicio del informe. Formato: AAAA-MM-DDZ. Ejemplo:2021-09-01Z
representa el 1 de septiembre de 2021. No incluya entre comillas o corchetes y use dos dígitos tanto para el mes como para la fecha.
Desglose de consultas
En la tabla siguiente se describe cada parte de la consulta.
Elemento de consulta
Descripción
$apply=filter(
Cláusula Start filter()
.
Pipeline/PipelineName eq '{pipelinename}'
Devuelve los resultados de la tarea para una canalización específica.
and TaskDisplayName eq '{taskname}'
Devuelve los resultados de la tarea para una tarea específica.
and PipelineRunCompletedOn/Date ge {startdate}
Devuelve los resultados de la tarea para las ejecuciones de canalización en o después de la fecha especificada.
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
Devuelve los resultados de la tarea solo para ejecuciones de canalización correctas o parcialmente correctas.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Omita las ejecuciones de canalización canceladas, omitidas o abandonadas.
)
Cláusula Close filter()
.
/compute(
Cláusula Start compute()
.
percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)
Para cada día, calcule el percentil 80 de las duraciones de tareas de todas las tareas que coincidan con los criterios de filtro.
/groupby(
Cláusula Start groupby()
.
(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))
Agrupar por fecha de finalización de la ejecución de la canalización y la duración calculada de la tarea percentil 80.
&$orderby=PipelineRunCompletedOn/Date asc
Ordene la respuesta por fecha de finalización.
Tendencia de duración de tareas para una canalización, especificar el identificador de canalización
Se puede cambiar el nombre de las canalizaciones. Para asegurarse de que los informes de Power BI no se interrumpan cuando se cambia el nombre de la canalización, use el identificador de canalización en lugar del nombre de la canalización. Puede obtener el identificador de canalización de la dirección URL de la página de ejecuciones de canalizaciones.
https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}
Copie y pegue la siguiente consulta de Power BI directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Información general sobre informes de ejemplo mediante consultas de 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
50, 80 y 90ª tendencia de duración de tareas de percentil para una canalización
Para ver la tendencia de duración de la tarea calculada con otro valor de percentil, use la consulta siguiente que proporciona la duración de la tarea percentil 50 y 95 junto con el percentil 80.
Copie y pegue la siguiente consulta de Power BI directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Información general sobre informes de ejemplo mediante consultas de 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
Tendencia de duración de tareas para una canalización filtrada por rama
Para ver la tendencia de duración de una tarea para una rama determinada, use la consulta siguiente. Para crear el informe, siga estos pasos:
- Expandir
Branch
aBranch.BranchName
- Cambio del tipo de datos de columna
- Crear el informe gráfico de líneas
- Seleccione Segmentación en el panel Visualizaciones y agregue al
Branch.BranchName
campo de la segmentación. - Seleccione la rama de la segmentación para la que necesita ver la tendencia de duración de la tarea.
Copie y pegue la siguiente consulta de Power BI directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Información general sobre informes de ejemplo mediante consultas de 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
Tendencia de duración de tareas para todas las tareas de canalización
Para ver la tendencia de duración de la tarea para todas las tareas de canalización en un único informe, use la consulta siguiente. Para crear el informe, siga estos pasos:
- Cambio del tipo de datos de columna
- Crear el informe gráfico de líneas
- Seleccione Segmentación en el panel Visualizaciones y agregue al
TaskDisplayName
campo de la segmentación. - Seleccione la tarea en la segmentación para la que necesita ver la tendencia de duración de la tarea.
Copie y pegue la siguiente consulta de Power BI directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Información general sobre informes de ejemplo mediante consultas de 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
(Opcional) Cambiar el nombre de la consulta
Puede cambiar el nombre de la etiqueta de consulta predeterminada, Query1, a algo más significativo. Simplemente escriba un nuevo nombre en el panel Configuración de consulta.
Expandir columnas en Editor de Power Query
Antes de crear el informe, deberá expandir columnas que devuelvan registros que contengan varios campos. En este caso, querrá expandir la PipelineRunCompletedOn
columna para aplanarla a PipelineRunCompletedOn.Date
.
Para obtener información sobre cómo expandir elementos de trabajo, consulte Transformación de datos de Análisis para generar informes de Power BI.
Cambio del tipo de datos de columna
En el menú Transformar , cambie el tipo de datos de la TaskDuration80thPercentileInSeconds
columna a Número decimal. Para obtener información sobre cómo hacerlo, consulte Transformación de un tipo de datos de columna.
(Opcional) Cambiar el nombre de los campos de columna
Puede cambiar el nombre de los campos de columna. Por ejemplo, puede cambiar el nombre de la columna TaskDuration80thPercentileInSeconds
a 80th Percentile
. Para obtener información sobre cómo hacerlo, consulte Cambiar el nombre de los campos de columna.
Cierre la consulta y aplique los cambios
Una vez que haya completado todas las transformaciones de datos, elija Cerrar y aplicar en el menú Inicio para guardar la consulta y volver a la pestaña Informe en Power BI.
Crear el informe gráfico de líneas
En Power BI, en Visualizaciones, elija el informe Gráfico de líneas.
Agregue
PipelineRunCompletedOn.Date
al eje X. Haga clic con el botón derecho en el campo y elija PipelineRunCompletedOn.Date en lugar de La jerarquía de fechas.Agregue
TaskDuration80thPercentileInSeconds
al eje Y y haga clic con el botón derecho en él para asegurarse de que suma está seleccionada.Para cambiar el título del informe, seleccione el icono Formato del pincel de pintura visual en el panel Visualizaciones , seleccione General, expanda Título y reemplace el texto existente.
En la imagen siguiente se muestra el informe resultante.