Relatório de amostra de falhas no estágio do pipeline

Serviços de DevOps do Azure | Azure DevOps Server 2022 | Azure DevOps Server 2020

Este artigo mostra como criar um relatório de falhas diárias de estágio de um pipeline. Este relatório é semelhante ao gráfico "Tendência de falha" do relatório sobre a taxa de aprovação do gasoduto.

A imagem a seguir mostra um exemplo de relatório de falhas em estágio para um pipeline específico de outubro de 2022 a 15 de dezembro de 2022.

Captura de tela do relatório de coluna empilhada de falhas de estágio do Power BI Pipelines.

Importante

A integração do Power BI e o acesso ao feed OData do Serviço de Análise estão geralmente disponíveis para os Serviços de DevOps do Azure e o Azure DevOps Server 2020 e versões posteriores. As consultas de exemplo fornecidas neste artigo são válidas apenas no Azure DevOps Server 2020 e versões posteriores e dependem da versão v3.0-preview ou posterior. Nós encorajamos você a usar essas consultas e nos fornecer feedback.

Pré-requisitos

  • Para visualizar dados do Google Analytics e consultar o serviço, você precisa ser membro de um projeto com acesso Básico ou superior. Por padrão, todos os membros do projeto recebem permissões para consultar o Google Analytics e definir exibições do Google Analytics.
  • Para saber mais sobre outros pré-requisitos relacionados à ativação de serviços e recursos e atividades gerais de controle de dados, consulte Permissões e pré-requisitos para acessar o Google Analytics.

Nota

Este artigo pressupõe que você leu Visão geral de relatórios de exemplo usando consultas OData e tem uma compreensão básica do Power BI.

Consultas de amostra

Os relatórios de tendência de estágio, tarefa ou falha de trabalho podem ser criados consultando o PipelineRunActivityResults conjunto de entidades.

Nota

Para determinar as propriedades disponíveis para fins de filtro ou relatório, consulte Referência de metadados para Pipelines do Azure. Você pode filtrar suas consultas ou retornar propriedades usando qualquer um dos Property valores em um EntityType ou NavigationPropertyBinding Path valores disponíveis com um EntitySet. Cada EntitySet um corresponde a um EntityTypearquivo . Para saber mais sobre o tipo de dados de cada valor, revise os metadados fornecidos para o .EntityType

Tendência de falha por estágio

Para exibir a tendência de falha por estágio para um pipeline específico a partir de uma data especificada, use as consultas a seguir.

Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter consulta em branco de dados>. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Cadeias de caracteres de substituição e detalhamento de consulta

Substitua as seguintes cadeias de caracteres por seus valores. Não inclua parênteses com a {} sua substituição. Por exemplo, se o nome da sua organização for "Fabrikam", substitua {organization} por Fabrikam, não {Fabrikam}.

  • {organization} - Nome da sua organização
  • {project} - O nome do seu projeto de equipa
  • {pipelinename} - O nome do seu pipeline. Exemplo: Fabrikam hourly build pipeline
  • {startdate} - A data para iniciar o seu relatório. Formato: AAAA-MM-DDZ. Exemplo: 2021-09-01Z representa 1º de setembro de 2021. Não coloque entre aspas ou parênteses e use dois dígitos para ambos, mês e data.

Detalhamento da consulta

A tabela a seguir descreve cada parte da consulta.

Parte da consulta

Descrição


$apply=filter(

Cláusula inicial filter() .

Pipeline/PipelineName eq '{pipelinename}'

Retornar resultados de tarefas para um pipeline específico.

and PipelineRunCompletedOn/Date ge {startdate}

Retornar resultados de tarefas para execução de pipeline na data especificada ou após ela.

and PipelineRunOutcome eq 'Failed'

Retornar resultados da tarefa onde o resultado da compilação falhar.

and TaskOutcome eq 'Failed'

Retornar resultados da tarefa quando o resultado da tarefa falhar.

)

Cláusula de fechamento filter .

/groupby(

Cláusula inicial groupby() .

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

Agrupe por data de conclusão da execução do pipeline, ID da compilação e nome do estágio.

aggregate (FailedCount with sum as FailedCount))

Para cada dia, construa ID e palco; Conte o número total de falhas. Será o número total de falhas de tarefas e não falhas de estágio.

/groupby(

Cláusula inicial groupby() .

(PipelineRunCompletedOn/Date, PipelineJob/StageName ),

Grupo por dia e nome artístico.

aggregate

Cláusula inicial aggregate .

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

Para cada dia, some o número de vezes que um estágio falhou e, em seguida, feche a aggregate cláusula.

Tendência de falha no sentido da tarefa

Para exibir a tendência de falha no sábio da tarefa, use as consultas a seguir.

Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter consulta em branco de dados>. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Tendência de fracasso no trabalho

Para exibir a tendência de falha no trabalho, use as seguintes consultas.

Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter consulta em branco de dados>. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

(Opcional) Renomear consulta

Você pode renomear o rótulo de consulta padrão, Query1, para algo mais significativo. Basta inserir um novo nome no painel Configurações de consulta.

Captura de ecrã das opções do menu de consulta do Power BI, consulta de mudança de nome.

Expandir colunas no Power Query Editor

Antes de criar o relatório, você precisará expandir as duas colunas a seguir. Para saber como expandir itens de trabalho, consulte Transformar dados do Analytics para gerar relatórios do Power BI.

  • Expandir PipelineJob para PipelineJob.StageName
  • Expandir PipelineRunCompletedOn para PipelineRunCompletedOn.Date

Alterar o tipo de dados da coluna

No menu Transformar, altere o tipo de dados da FailedStageCount coluna para Número inteiro. Para saber como, consulte Transformar um tipo de dados de coluna.

(Opcional) Renomear campos de coluna

Você pode renomear campos de coluna para aqueles que são mais fáceis de usar. Por exemplo, você pode renomear a coluna Pipeline.PipelineName para Pipeline Name, ou TotalCount para Total Count. Para saber como, consulte Renomear campos de coluna.

Feche a consulta e aplique as alterações

Depois de concluir todas as suas transformações de dados, escolha Fechar & Aplicar no menu Início para salvar a consulta e retornar à guia Relatório no Power BI.

Captura de ecrã da opção Fechar e Aplicar do Power Query Editor.

Criar o relatório de gráfico de colunas empilhadas

  1. No Power BI, em Visualizações, escolha o relatório Gráfico de colunas empilhadas. O exemplo a seguir pressupõe que ninguém renomeou nenhuma coluna.

    Captura de tela das seleções de campos de visualização para falhas em estágio Relatório de gráfico de colunas empilhadas.

  2. Adicione PipelineRunCompletedOn.Date ao X-Axis, clique com o botão direito do mouse nele e selecione PipelineRunCompletedOn.Date, em vez de Date Hierarchy.

  3. Adicionar FailedStagedCount ao eixo Y Clique com o botão direito do mouse nele e verifique se Soma está selecionado.

  4. Adicionar PipelineJob.StageName à legenda.

  5. Para alterar o título, a legenda ou outros elementos visuais do relatório, selecione o ícone Formatar o pincel visual no painel Visualizações e ajuste uma ou mais configurações.

Seu relatório deve ser semelhante à imagem a seguir.

Captura de tela do relatório de coluna empilhada de falhas de estágio do Power BI Pipelines.