Informe de ejemplo de duración de canalización

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

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 del gráfico "Duración de la canalización" del informe Duración de la canalización.

En la imagen siguiente se muestra un ejemplo de un informe de duración para una canalización específica para todas las ejecuciones de canalización de septiembre de 2022 al 15 de diciembre de 2022.

Captura de pantalla del informe de columna agrupada Duración de canalizaciones de Power BI.

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

  • Para ver los datos de Analytics y consultar el servicio, debe ser miembro de un proyecto con acceso básico o superior. De forma predeterminada, a todos los miembros del proyecto se les conceden permisos para consultar Analytics y definir vistas de Analytics.
  • Para obtener información sobre otros requisitos previos relacionados con la habilitación de servicios y características y las actividades generales de seguimiento de datos, consulte Permisos y requisitos previos para acceder a Analytics.

Nota:

En este artículo se supone que ha leído Información general de informes de ejemplo mediante consultas de OData y que tiene conocimientos básicos de Power BI.

Consultas de ejemplo

Puede usar las siguientes consultas del PipelineRuns conjunto de entidades para crear informes de duración de canalización 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.

Devolver duraciones de percentil para una canalización especificada

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los 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

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 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 Close filter() .

/compute(

Cláusula Start compute() .

percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,

Calcule el percentil 50 de las duraciones de canalización de todas las ejecuciones de canalización que coincidan con los criterios de filtro.

percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,

Calcule el percentil 80 de las duraciones de canalización de todas las ejecuciones de canalización que coincidan con los criterios de filtro.

percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)

Calcule el percentil 95 de las duraciones de canalización de todas las ejecuciones de canalización que coincidan con los criterios de filtro.

/groupby(

Cláusula Start groupby() .

(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))

Agrupe la respuesta por Duration50thPercentileInSeconds, Duration80thPercentileInSecondsy Duration95thPercentileInSeconds finalice la groupby cláusula .

Devolver duraciones de percentil para un identificador de canalización especificado

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 canalización.

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

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los 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

Devolver duraciones de percentil para una canalización especificada, filtrar 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 lo que se describe en las secciones Cambiar tipo de datos de columna y Crear el informe de gráfico de columnas agrupadas.

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

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los 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 para todas las canalizaciones de 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 lo que se describe en las secciones Cambiar tipo de datos de columna y Crear el informe de gráfico de columnas agrupadas.

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

Consulte también Resumen de resultados de todas las canalizaciones para obtener un informe de ejemplo que tenga pasos similares detallados como se requiere aquí.

Puede pegar la consulta de Power BI que se muestra a continuación directamente en la ventana Obtener consulta en blanco de datos>. Para obtener más información, consulte Introducción a los 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. Por ejemplo, puede cambiar el nombre de la columna Pipeline.PipelineName a Pipeline Nameo TotalCount a Total Count. 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.

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

Creación del informe de gráfico de columnas agrupadas

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

    Captura de pantalla de las visualizaciones y selecciones de campo de columna en clúster 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 objetos visuales de informe, seleccione el icono Formato del pincel de pintura visual en el panel Visualizaciones y ajuste una o varias opciones de configuración.

El informe debe parecerse a la siguiente imagen.

Captura de pantalla del informe de columna agrupada Duración de canalizaciones de ejemplo de Power BI.