Informe de ejemplo de resumen de resultados de canalización

Azure DevOps Services | Azure DevOps Server 2020

En este artículo se muestra cómo obtener el número de ejecuciones para diferentes resultados de canalización (Correcto/ Erróneo/ Cancelado/Parcialmente correcto).

Importante

Power BI integración y acceso a la fuente OData del servicio Analytics se encuentran en versión preliminar. Las consultas de ejemplo proporcionadas en este artículo solo son válidas en Azure DevOps Services y dependen de la versión v3.0-preview o posterior. Le recomendamos que use estas consultas y nos proporcione comentarios.

Un ejemplo se muestra en la imagen siguiente.

Sample - Pipelines Outcome Summary - Report

Nota:

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

Requisitos previos

  • Debe ser miembro de un proyecto con acceso básico o superior. Si no se ha agregado como miembro del proyecto, se agrega ahora. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Análisis.
  • Para que los datos de Analytics estén disponibles, se debe habilitar el servicio correspondiente. Por ejemplo, para consultar los datos de seguimiento del trabajo, Boards debe estar habilitado. Si está deshabilitado, no se mostrarán las vistas de Analytics . Para volver a habilitar un servicio, consulte Activar o desactivar un servicio de Azure DevOps.
  • Para usar las vistas de Analytics, habilite la característica vista previa de vistas de Análisis para usuarios individuales o para la organización.
  • Además, debe tener el permiso *Ver analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Para usar Power BI para Azure DevOps o para ejercer una consulta de OData para Analytics, debe tener el permiso View Analytics establecido en Permitir. De forma predeterminada, se concede acceso a todos los colaboradores con acceso básico. Para editar las vistas de Análisis compartidas, debe tener establecido el permiso Editar vistas de Análisis compartido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Debe ser miembro de un proyecto con acceso básico o superior. Si no se ha agregado como miembro del proyecto, se agrega ahora. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Análisis.
  • Compruebe que Analytics está instalado y, si no es así, habilitelo. Debe ser propietario de la cuenta o miembro del grupo administradores de colección de Project para agregar extensiones o habilitar el servicio.
  • Para que los datos de Analytics estén disponibles, se debe habilitar el servicio correspondiente. Por ejemplo, para consultar los datos de seguimiento del trabajo, Boards debe estar habilitado. Si está deshabilitado, no se mostrarán las vistas de Analytics . Para volver a habilitar un servicio, consulte Activar o desactivar un servicio de Azure DevOps.
  • Para usar las vistas de Analytics, habilite la característica vista previa de vistas de Análisis para usuarios individuales o para la organización.
  • Además, debe tener el permiso *Ver analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.
  • Para usar Power BI para Azure DevOps o para ejercer una consulta de OData para Analytics, debe tener el permiso*View Analytics establecido en Permitir. De forma predeterminada, se concede acceso a todos los colaboradores con acceso básico. Para editar las vistas de Análisis compartidas, debe tener establecido el permiso Editar vistas de Análisis compartido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.

Consultas de ejemplo

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} "
                &") "
        &"/aggregate( "
        &"$count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Cadenas de sustitución

Cada consulta contiene las siguientes cadenas que debe sustituir por sus valores. No incluya corchetes {} con la sustitución. Por ejemplo, si el nombre de la organización es "Fabrikam", reemplace {organization} por Fabrikam, no {Fabrikam}.  

  • {organization}: nombre de la organización
  • {project} : nombre del proyecto de equipo
  • {pipelinename}: el nombre de la canalización. Ejemplo: Canalización de compilación por hora de Fabrikam.
  • {startdate}: fecha de inicio del informe. Formato: AAAA-MM-DDZ. Ejemplo: 2021-09-01Z representa el 1 de septiembre de 2021. No incluya comillas o corchetes y use dos dígitos para ambos, mes y fecha.

Desglose de consultas

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

Elemento de consulta

Descripción

$apply=filter(

Iniciar filtro()

Pipeline/PipelineName eq '{pipelinename}'

Devolución de ejecuciones de canalización para la canalización especificada

and CompletedDate ge {startdate}

Devolución de ejecuciones de canalización en o después de la fecha especificada

)

Cerrar filter()

/aggregate(

Inicie el agregado. Para todas las ejecuciones de canalización que coincidan con los criterios de filtro anteriores:

$count as TotalCount,

Recuento del número total de ejecuciones como TotalCount

SucceededCount with sum as SucceededCount ,

Recuento del número de ejecuciones correctas como SucceededCount

FailedCount with sum as FailedCount,

Recuento del número de ejecuciones con errores como FailedCount

PartiallySucceededCount with sum as PartiallySucceededCount ,

Contar el número de ejecuciones parcialmente correctas como ParcialmenteSucceededCount

CanceledCount with sum as CanceledCount

Recuento del número de ejecuciones canceladas como CanceledCount

)

Cerrar aggregate()

Filtros de consulta

Para determinar los filtros de consulta disponibles, consulte los metadatos como se describe en Exploración de los metadatos de OData de Analytics. Puede filtrar las consultas mediante cualquiera de los valores de NavigationPropertyBinding Path enumerados en entitySet. Para obtener más información sobre el tipo de datos de cada valor, revise los metadatos proporcionados para el EntityType correspondiente. Cada EntitySet corresponde al valor singular de un EntityType.

Por ejemplo, EntitySet Name="PipelineRunActivityResults" corresponde a EntityType Name="PipelineRunActivityResult". Los metadatos de OData para EntitySet Name="PipelineRunActivityResults" se muestran a continuación para v4.0-preview. Puede agregar filtros basados en cualquiera de los valores de NavigationPropertyBinding Path enumerados.

<EntitySet Name="PipelineRunActivityResults" EntityType="Microsoft.VisualStudio.Services.Analytics.Model.PipelineRunActivityResult">
  <NavigationPropertyBinding Path="Project" Target="Projects"/>
  <NavigationPropertyBinding Path="Pipeline" Target="Pipelines"/>
  <NavigationPropertyBinding Path="PipelineTask" Target="PipelineTasks"/>
  <NavigationPropertyBinding Path="PipelineJob" Target="PipelineJobs"/>
  <NavigationPropertyBinding Path="Branch" Target="Branches"/>
  <NavigationPropertyBinding Path="PipelineRunQueuedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="PipelineRunStartedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="PipelineRunCompletedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="ActivityStartedOn" Target="Dates"/>
  <NavigationPropertyBinding Path="ActivityCompletedOn" Target="Dates"/>
</EntitySet>

Transformaciones de Power BI

Cambiar el tipo de columna

  1. Cambie el tipo de columna TotalCount a Número entero.

    Power BI + OData - change column type

Cambie el nombre de los campos y la consulta y, a continuación, Cierre & aplicar

Cuando haya terminado, puede optar por cambiar el nombre de las columnas.

  1. Haga clic con el botón derecho en un encabezado de columna y seleccione Cambiar nombre...

    Power BI Rename Columns

  2. También puede cambiar el nombre de la consulta de la consulta predeterminada Query1 a algo más significativo.

    Power BI Rename Query

  3. Una vez hecho, elija Cerrar & aplicar para guardar la consulta y volver a Power BI.

    Power BI Close & Apply

Creación del informe

Power BI muestra los campos en los que puede informar.

Nota:

En el ejemplo siguiente se supone que nadie ha cambiado el nombre de ninguna columna.

Sample - Pipelines Outcome Summary - Fields

Para un informe sencillo, siga estos pasos:

  1. Seleccione Power BI gráfico de anillos de visualización.
  2. Agregue el campo "SucceededCount" a Valores.
    • Haga clic con el botón derecho en el campo "SucceededCount" y asegúrese de que la suma está seleccionada.
  3. Agregue el campo "FailedCount" a Valores.
    • Haga clic con el botón derecho en el campo "FailedCount" y asegúrese de que la suma está seleccionada.
  4. Agregue el campo "CanceledCount" a Valores.
    • Haga clic con el botón derecho en el campo "CanceledCount" y asegúrese de que la suma está seleccionada.
  5. Agregue el campo "PartiallySucceededCount" a Valores.
    • Haga clic con el botón derecho en el campo "ParcialmenteSucceededCount" y asegúrese de que la suma está seleccionada.

El informe debe tener este aspecto.

Sample - Pipelines Outcome Summary - Report

Extracción de datos de varios equipos

A menudo, quiere agregar y comparar datos de varios equipos. Si va a extraer elementos de varios equipos, considere la posibilidad de agregar una segmentación de equipos al informe. Una segmentación de equipos permite filtrar el informe existente por Nombre del equipo.

Más consultas

Puede usar las siguientes consultas para crear informes diferentes pero similares mediante los mismos pasos definidos anteriormente en este artículo.

Uso del identificador de canalización, en lugar de nombre de canalización

Puede cambiar el nombre de la canalización. Para asegurarse de que los informes de Power BI no se interrumpen cuando se cambia un nombre de canalización, use el identificador de canalización en lugar de su nombre. 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 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} "
                &") "
        &"/aggregate( "
        &"$count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Filtrar por rama

Es posible que desee ver el resumen de resultados de una canalización para una rama determinada. Para crear el informe, lleve a cabo los siguientes pasos adicionales junto con lo que se definió anteriormente en este artículo.

  • Expanda Branch en Branch.BranchName
  • Seleccione Power BI segmentación de visualización y agregue el campo Branch.BranchName al campo de la segmentación.
  • Seleccione la canalización en la segmentación para la que necesita ver el resumen de resultados.

Puede pegar la consulta 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} "
                &") "
        &"/groupby( "
        &"(Branch/BranchName), "
            &"aggregate( "
                &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
            &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
        &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Filtrar por motivo de compilación

Es posible que desee ver el resumen de resultados de una canalización para un motivo de compilación determinado (manual o batchedCI, solicitud de incorporación de cambios, etc.) solo. Para crear el informe, siga los pasos adicionales que se indican a continuación junto con lo que se ha definido anteriormente en este artículo.

  • Seleccione Power BI segmentación de visualización y agregue el campo RunReason al campo de la segmentación de datos.
  • Seleccione la canalización en la segmentación para la que necesita ver el resumen de resultados.

Puede pegar la consulta 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} "
                &") "
        &"/groupby( "
        &"(RunReason), "
            &"aggregate( "
                &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
            &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
        &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Resumen de resultados para todas las canalizaciones de proyecto

Es posible que desee ver el resumen del resultado de la canalización para todas las canalizaciones de proyecto en un único informe. Para crear el informe, lleve a cabo los siguientes pasos adicionales junto con los proporcionados anteriormente en este artículo.

  • Expansión de la canalización en Pipeline.PipelineName
  • Seleccione Power BI segmentación de visualización y agregue el campo Pipeline.PipelineName al campo de la segmentación.
  • Seleccione la canalización en la segmentación para la que necesita ver el resumen de resultados.

Consulte Resumen del resultado del informe de ejemplo de todas las canalizaciones para ver los pasos detallados.

Puede pegar la consulta 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} "
                &") "
                &"/groupby( "
        &"(Pipeline/PipelineName), "
        &"aggregate( "
            &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount , "
                &"CanceledCount with sum as CanceledCount "
            &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Lista completa de informes de ejemplo de Pipelines

Canalización

Canalización y prueba