Informe de ejemplo de duración de canalizaciones

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

En este artículo se muestra cómo obtener la duración de la canalización o el tiempo necesario para ejecutar una canalización. Este informe es similar a la métrica de resumen de duración en el gráfico de Duración de la Tubo del Informe de Duración de la Tubo.

En la imagen siguiente se muestra un ejemplo de un informe de duración para una canalización específica.

Captura de pantalla del informe con columnas agrupadas sobre duración de canalizaciones de Power BI.

Nota:

Las consultas de muestra en este artículo requieren la versión v3.0-preview o posterior de la fuente OData de Analytics. Comparta sus comentarios.

Categoría Requisitos
Niveles de acceso - Miembro del proyecto.
- 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 hecho que has leído Información general de informes de ejemplo mediante consultas de OData y tienes un conocimiento básico de Power BI.

Consultas de ejemplo

Utilice las siguientes consultas del conjunto de entidades PipelineRuns para crear informes de duración de canalizaciones diferentes pero similares.

Nota:

Para buscar las propiedades disponibles para el filtrado o los informes, consulte la referencia de Metadata para Azure Pipelines. Puede filtrar las consultas o devolver propiedades mediante cualquier valor Property definido en un EntityType, o cualquier valor NavigationPropertyBinding Path enumerado para un EntitySet. Cada EntitySet se asigna a un EntityType, que describe el tipo de datos de cada propiedad.

Devolver duraciones en percentiles de una canalización concreta

Copie y pegue la siguiente consulta Power BI directamente en la ventana Get Data>Blank Query. 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/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) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Cadenas de sustitución y desglose de consultas

Reemplace las cadenas siguientes por los valores. No incluya los corchetes {} en la sustitución. Por ejemplo, si el nombre de su organización es "Fabrikam", reemplace {organization} por Fabrikam, no por {Fabrikam}.

  • {organization} - El nombre de la organización
  • {project} - El nombre de tu proyecto de equipo
  • {pipelinename} - El nombre de la canalización. Ejemplo: Fabrikam hourly build pipeline
  • {startdate} - La fecha para comenzar tu informe. Formato: YYYY-MM-DD seguido de Z (indicador UTC). Ejemplo: 2026-09-01Z representa el 1 de septiembre de 2026. No incluya entre comillas ni corchetes.

Desglose de consultas

En la tabla siguiente se describe cada parte de la consulta.

Elemento de consulta

Descripción


$apply=filter(

Iniciar cláusula filter().

Pipeline/PipelineName eq '{pipelinename}'

Devuelve ejecuciones de canalización para la canalización especificada.

and CompletedDate ge {startdate}

Devuelve las ejecuciones de canalización en o después de la fecha especificada.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Devuelve solo las ejecuciones correctas o parcialmente correctas.

)

Cláusula de cierre filter().

/compute(

Iniciar cláusula compute().

percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,

Calcular el percentil 50 de las duraciones para todas las ejecuciones de canalización que coincidan con los criterios de filtrado.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Calcular el percentil 80 de las duraciones para todas las ejecuciones de canalización que coincidan con los criterios de filtrado.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Calcular el percentil 95 de las duraciones para todas las ejecuciones de canalización que coincidan con los criterios de filtrado.

/groupby(

Inicia la cláusula groupby().

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Agrupa la respuesta por Duration50thPercentileInSeconds, Duration80thPercentileInSecondsy Duration95thPercentileInSeconds finaliza la groupby cláusula .

Devolver duraciones en percentiles del ID de una canalización concreta

Puede cambiar el nombre de las canalizaciones. Para asegurarse de que los informes de Power BI no se interrumpan al cambiar el nombre de la canalización, use el identificador de canalización en lugar del nombre de la canalización. Puede tener el ID de la canalización en la URL de la página de ejecuciones de canalización.

https://dev.azure.com/{organization}/{project}/_build?definitionId= {pipelineid}

Copie y pegue la siguiente consulta Power BI directamente en la ventana Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"PipelineId  eq {pipelineid} "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Devuelve las duraciones de percentil para una canalización especificada, filtra por rama

Para ver la duración de una canalización solo para una rama determinada, use las siguientes consultas. Para crear el informe, siga estos pasos adicionales junto con los pasos descritos en las secciones Cambiar tipo de datos de columna y Crear el gráfico de columnas agrupadas .

  • Expanda Branch en Branch.BranchName.
  • Agregue el campo Branch.BranchName al eje X.

Copie y pegue la siguiente consulta Power BI directamente en la ventana Get Data>Blank Query. 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/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, BranchSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Devolver duraciones de percentil en todas las canalizaciones del proyecto

Para ver la duración de todas las canalizaciones del proyecto en un único informe, use las siguientes consultas. Para crear el informe, siga estos pasos adicionales junto con los pasos descritos en las secciones Cambiar tipo de datos de columna y Crear el gráfico de columnas agrupadas .

  • Expanda Pipeline en Pipeline.PipelineName.
  • Agregue el campo Pipeline.PipelineName al eje X.

Para obtener un informe de ejemplo con pasos detallados similares, consulte Resumen de resultados para todas las canalizaciones.

Copie y pegue la siguiente consulta Power BI directamente en la ventana Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
                &"    ) "
        &"/compute( "
        &"percentile_cont(TotalDurationSeconds, 0.5, PipelineId) as Duration50thPercentileInSeconds, "
            &"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
                &"/groupby( "
            &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Cambio del tipo de datos de columna

En el menú Transformar , cambie el tipo de datos de las columnas siguientes a Número decimal. Para obtener información sobre cómo hacerlo, consulte Transformación de un tipo de datos de columna.

  • Duration50thPercentileInSeconds
  • Duration80thPercentileInSeconds
  • Duration95thPercentileInSeconds

(Opcional) Cambiar el nombre de los campos de columna

Puede cambiar el nombre de los campos de columna para que sean más fáciles de usar. Para obtener información sobre cómo hacerlo, consulte Cambiar el nombre de los campos de columna.

Cierre la consulta y aplique los cambios

Cuando termine todas las transformaciones de datos, seleccione Cerrar y aplicar en el menú Inicio . Esta acción guarda la consulta y le devuelve a la pestaña Report en Power BI.

Captura de pantalla de Editor de Power Query opción Cerrar y aplicar.

Crear el informe de gráfico de columnas agrupadas

  1. En Power BI, en Visualizations, seleccione el informe de gráfico de columnas agrupadas. En el ejemplo se supone que no se ha cambiado el nombre de ninguna columna.

    Captura de pantalla de modos de visualización y selecciones de campos de las columnas agrupadas de canalizaciones de Power BI.

  2. Agregue los siguientes campos al eje Y, haga clic con el botón derecho en cada campo y asegúrese de que suma está seleccionada.

    • Duration50thPercentileInSeconds
    • Duration80thPercentileInSeconds
    • Duration95thPercentileInSeconds
  3. Para cambiar el título del informe, la leyenda u otros elementos visuales del informe, seleccione el icono Formato de visual en el panel de Visualizaciones y ajuste una o varias opciones de configuración.

El informe debe tener un aspecto similar al de la imagen siguiente.

Captura de pantalla del informe de ejemplo con columnas agrupadas sobre la duración de canalizaciones de Power BI.