Informe de ejemplo de errores de fase de canalización



Azure DevOps Services

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

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 preliminar v3.0 o posterior. Le recomendamos que use estas consultas y nos proporcione sus comentarios.

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

Sample - Pipelines Stage wise failure - 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 tiene una comprensión básica 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 agrega. 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 Azure DevOps servicio de mantenimiento
  • Para usar vistas de Analytics,habilite la característica de vista previa Vistas de análisis 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 agrega. 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 Azure DevOps servicio de mantenimiento
  • Para usar vistas de Analytics,habilite la característica de vista previa Vistas de análisis 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 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/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 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 en que se inicia el informe. Formato: YYYY-MM-D JPEG. Ejemplo: 2021-09-01Z representa el 1 de septiembre de 2021. No incluya comillas o corchetes y use dos dígitos para 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 filter()

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 la fecha especificada o después de esta

and PipelineRunOutcome eq 'Failed'

Resultados de la tarea de devolución en los que se produce un error en el resultado de la compilación

and TaskOutcome eq 'Failed'

Devolver resultados de tareas 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, identificador de compilación y nombre de fase.

aggregate (FailedCount with sum as FailedCount))

Para cada día, identificador de compilación y fase, cuente el número total de errores. Será el número total de errores de tareas 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))

Para cada día, sumar el número de veces que se ha fallado 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 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

Expanda la columna PipelineRunCompletedOn y PipelineJob.

La consulta devuelve algunas columnas que necesita expandir y aplanar en sus campos antes de 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 el Editor de Power Query, seleccione el botón expandir en ambas entidades.

  1. Elija el botón expandir.

    Power BI + OData - Choose expand button

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

    Power BI + OData - Select all columns

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

    Power BI + OData - Expanded entity

Cambiar el tipo de columna

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

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

    Power BI + OData - change column type

Cambiar el nombre de los campos y la consulta

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 stage wise failures - Fields

Para obtener un informe sencillo, realice los pasos siguientes:

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

  2. Agregue el campo PipelineRunCompletedOn.Date al eje.

    • Haga clic con el botón derecho en PipelineRunCompletedOn.Date y seleccione PipelineRunCompletedOn.Dateen lugar de Jerarquía de fechas.
  3. Agregue el campo FailedStageCount aValores.

    • Haga clic con el botón derecho en el campo FailedStageCount y asegúrese de que sum está seleccionado.
  4. Agregue el campo PipelineJob.StageName a Leyenda.

    • Haga clic con el botón derecho en el campo PipelineJob.StageName y asegúrese de que sum está seleccionado.

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

Sample - Pipelines Stage wise failures - Report

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 de errores por tareas, en lugar de tendencia de errores por fases

Es posible que desee ver la tendencia de errores por fases, en lugar de la tendencia de errores por fases.

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/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 errores de nivel de trabajo, en lugar de tendencia de errores por fases

Es posible que desee ver la tendencia de errores por fases, en lugar de la tendencia de errores por fases.

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

Canalización

Canalización y prueba