Informe de ejemplo de errores de fase de canalización

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

En este artículo se muestra cómo crear un informe de los errores de fase diaria de una canalización. Este informe es similar al gráfico "Tendencia de error" del informe De frecuencia de paso de canalización.

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 con 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 comentarios.

En la imagen siguiente se muestra un ejemplo de este tipo de gráfico.

Ejemplo: error de fase de canalizaciones: informe

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 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 agregará ahora. 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, los paneles deben estar habilitados . Si está deshabilitado, no se mostrarán las vistas de Analytics . Para volver a habilitar un servicio, consulte Activación o desactivación de un servicio de Azure DevOps.
  • Para usar 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 establecido el permiso *View Analytics 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 vistas compartidas de Analytics, debe tener establecido el permiso Editar vistas de Analytics compartidas 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 agregará ahora. 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. Debe ser propietario de la cuenta o miembro del grupo Administradores de colección de proyectos 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, los paneles deben estar habilitados . Si está deshabilitado, no se mostrarán las vistas de Analytics . Para volver a habilitar un servicio, consulte Activación o desactivación de un servicio de Azure DevOps.
  • Para usar 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 establecido el permiso *View Analytics 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*Ver 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 establecido el permiso Editar vistas de Analytics compartidas 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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and PipelineRunOutcome eq 'Failed' "
        &"and TaskOutcome eq 'Failed' "
        &") "
            &"/groupby( "
                &"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ), "
                &"aggregate (FailedCount with sum as FailedCount)) "
            &"/groupby( "
                &"(PipelineRunCompletedOn/Date, PipelineJob/StageName ), "
            &"aggregate "
        &"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount)) "
    ,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 los valores. No incluya corchetes {} con la sustitución. Por ejemplo, si el nombre de la organización es "Fabrikam", reemplace {organization} por Fabrikam, no por {Fabrikam}.  

  • {organization}: el nombre de la organización
  • {project} : el 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 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 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(

Iniciar filtro()

Pipeline/PipelineName eq '{pipelinename}'

Devolver resultados de tareas para una canalización específica

and PipelineRunCompletedOn/Date ge {startdate}

Devolver los resultados de la tarea para las ejecuciones de canalización en o después de la fecha especificada

and PipelineRunOutcome eq 'Failed'

Devolver resultados de la tarea en los que se produce un error en el resultado de la compilación

and TaskOutcome eq 'Failed'

Devolver resultados de la tarea en los que se produce un error en el resultado de la tarea

)

Cierre de la instrucción filter

/groupby(

Iniciar groupby()

(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ),

Agrupar por fecha de finalización de la ejecución de canalización, id. de compilación y nombre de fase.

aggregate (FailedCount with sum as FailedCount))

Para cada día, el identificador de compilación y la fase, cuentan el número total de errores. Será el número total de errores & de tarea que no son errores de fase.

/groupby(

Iniciar groupby()

(PipelineRunCompletedOn/Date, PipelineJob/StageName ),

Agrupar por día y nombre de fase.

aggregate

Inicio del agregado

(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount))

Por cada día, sume el número de veces que se produjo un error en una fase.

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

Transformaciones de Power BI

Expanda la columna PipelineRunCompletedOn y PipelineJob.

La consulta devuelve algunas columnas que debe expandir y acoplar en sus campos para poder usarlas en Power BI. En este ejemplo, estas entidades son PipelineRunCompletedOn y PipelineJob.

Después de cerrar el Editor avanzado y mientras permanece en la Editor de Power Query, seleccione el botón expandir en ambas entidades.

  1. Elija el botón expandir.

    Power BI + OData: botón De expansión

  2. Active la casilla "(Seleccionar todas las columnas)" para expandir.

    Power BI + OData: selección de todas las columnas

  3. La tabla contiene ahora la entidad expandida CompletedOn.Date.

    Power BI + OData: entidad expandida

Cambiar el tipo de columna

La consulta no devuelve todas las columnas en el formato en el que puede consumirlas directamente en los informes de Power BI.

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

    Power BI + OData: cambio del tipo de columna

Cambiar el nombre de los campos y la consulta

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

    Cambiar nombre de columnas de Power BI

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

    Consulta de cambio de nombre de Power BI

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

    Aplicación de cierre & de Power BI

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.

Ejemplo: errores por etapas de canalizaciones: campos

Para un informe sencillo, siga estos pasos:

  1. Seleccione Gráfico de columnas apiladas de visualización de Power BI.

  2. Agregue el campo PipelineRunCompletedOn.Date al eje.

    • Haga clic con el botón derecho en PipelineRunCompletedOn.Date y seleccione PipelineRunCompletedOn.Date, en lugar de Date Hierarchy(Jerarquía de fechas).
  3. Agregue el campo FailedStageCount a Valores.

    • Haga clic con el botón derecho en el campo FailedStageCount y asegúrese de que La suma está seleccionada.
  4. Agregue el campo PipelineJob.StageName a Legend.

    • Haga clic con el botón derecho en el campo PipelineJob.StageName y asegúrese de que la opción Sum está seleccionada.

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

Ejemplo: errores acertados por fases de canalizaciones: informe

Más consultas

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

Tendencia a errores en la tarea, en lugar de tendencia de error por etapas

Es posible que desee ver la tendencia de error en la tarea, en lugar de la tendencia de error por etapas.

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and PipelineRunOutcome eq 'Failed' "
        &"and TaskOutcome eq 'Failed' "
        &") "
            &"/groupby( "
                &"(PipelineRunCompletedOn/Date, TaskDisplayName), "
                &"aggregate "
            &"(FailedCount with sum as FailedCount)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendencia de error en el trabajo, en lugar de tendencia de error por etapas

Es posible que desee ver la tendencia del error en el trabajo, en lugar de la tendencia de error por etapas.

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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and PipelineRunOutcome eq 'Failed' "
        &"and TaskOutcome eq 'Failed' "
        &") "
            &"/groupby( "
                &"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/JobName ), "
                &"aggregate (FailedCount with sum as FailedCount)) "
            &"/groupby( "
                &"(PipelineRunCompletedOn/Date, PipelineJob/JobName ), "
            &"aggregate "
        &"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedJobCount)) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Lista completa de informes de ejemplo para canalizaciones

Canalización

Canalización y prueba