Informe de ejemplo de resumen de resultados de canalización



Azure DevOps Services

En este artículo se muestra cómo obtener el número de ejecuciones para distintos resultados de canalización (succeeded/ failed/canceled/partially succeeded).

Importante

Power BI integración y el 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 3.0-preview o posterior. Le recomendamos que use estas consultas y nos proporcione sus 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 los 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, ahora se le agregará. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Analytics.
  • 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á deshabilitada, no se mostrarán las vistas de Analytics. Para volver a habilitar un servicio, consulte Activación o desactivación de Azure DevOps servicio de mantenimiento.
  • Para usar vistas de Analytics,habilite la característica vista previa vistas de Analytics para usuarios individuales o para la organización.
  • Además, debe tener el permiso *View 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 ejecutar una consulta de OData para Analytics, debe tener el permiso de View Analytics establecido en Permitir. De forma predeterminada, se concede acceso a todos los colaboradores con acceso Básico. Para editar vistas compartidas de Analytics,debe tener el permiso Editar vistas compartidas de Analytics establecido 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, ahora se le agregará. Cualquier persona con acceso al proyecto, excepto las partes interesadas, puede ver las vistas de Analytics.
  • Compruebe que Analytics está instalado y, si no es así, habilite esta opción. Debe ser propietario de la cuenta o miembro del grupo administrador de Project recopilación 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á deshabilitada, no se mostrarán las vistas de Analytics. Para volver a habilitar un servicio, consulte Activación o desactivación de Azure DevOps servicio de mantenimiento.
  • Para usar vistas de Analytics,habilite la característica vista previa vistas de Analytics para usuarios individuales o para la organización.
  • Además, debe tener el permiso *View 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 ejecutar 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 vistas compartidas de Analytics,debe tener el permiso Editar vistas compartidas de Analytics establecido en Permitir. Para más información, consulte Concesión de permisos para acceder al servicio Analytics.

Consultas de ejemplo

Puede pegar la consulta Power BI siguiente directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de 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 cadenas siguientes 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}: la fecha para iniciar el informe. Formato: YYYY-MM-D DOMAIN. Ejemplo: 2021-09-01Z representa el 1 de septiembre de 2021. No incluya entre comillas o corchetes y use dos dígitos tanto para mes como para fecha.

Desglose de consultas

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

Elemento de consulta

Descripción

$apply=filter(

Start filter()

Pipeline/PipelineName eq '{pipelinename}'

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

and CompletedDate ge {startdate}

La canalización de devolución se ejecuta en o después de la fecha especificada

)

Cerrar filter()

/aggregate(

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

$count as TotalCount,

Contar el número total de ejecuciones como TotalCount

SucceededCount with sum as SucceededCount ,

Contar el número de ejecuciones correctas como SucceededCount

FailedCount with sum as FailedCount,

Contar el número de ejecuciones con errores como FailedCount

PartiallySucceededCount with sum as PartiallySucceededCount ,

Contar el número de ejecuciones parcialmente correctas como PartiallySucceededCount

CanceledCount with sum as CanceledCount

Contar el número de ejecuciones canceladas como CanceledCount

)

Cerrar agregado()

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 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>

Power BI transformaciones

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 termine, puede 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 Query1a algo más significativo.

    Power BI Rename Query

  3. Una vez hecho esto, 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 sobre los que puede informar.

Nota

En el ejemplo siguiente se supone que nadie cambió el nombre de ninguna columna.

Sample - Pipelines Outcome Summary - Fields

Para obtener un informe sencillo, realice los pasos siguientes:

  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 Sum está seleccionado.
  3. Agregue el campo "FailedCount" a Valores.
    • Haga clic con el botón derecho en el campo "FailedCount" y asegúrese de que sum está seleccionado.
  4. Agregue el campo "CanceledCount" a Valores.
    • Haga clic con el botón derecho en el campo "CanceledCount" y asegúrese de que sum está seleccionado.
  5. Agregue el campo "PartiallySucceededCount" a Valores.
    • Haga clic con el botón derecho en el campo "PartiallySucceededCount" y asegúrese de que Sum está seleccionado.

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 de equipo.

Más consultas

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

Usar el identificador de canalización, en lugar del nombre de la canalización

Puede cambiar el nombre de la canalización. Para asegurarse de que los Power BI no se interrumpirán cuando se cambie 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 datos: consulta en blanco. Para obtener más información, consulte Información general de 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 de la segmentación para la que debe ver el resumen del resultado.

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de 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 solo el resumen de resultados de una canalización para un motivo de compilación determinado (Manual/BatchedCI, Solicitud de extracción, entre otros). 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.
  • Seleccione la canalización de la segmentación para la que debe ver el resumen del resultado.

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de 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 solo informe. Para crear el informe, lleve a cabo los siguientes pasos adicionales junto con los proporcionados anteriormente en este artículo.

  • Expandir 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 de la segmentación para la que debe ver el resumen del resultado.

Consulte Resumen de resultados para ver el informe de ejemplo de todas las canalizaciones para obtener pasos detallados.

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

Canalización

Canalización y prueba