Saltar para o conteúdo

Monitorizar execuções de pipeline

Esta página cobre tudo o que acontece depois de uma execução arrancar: encontrá-la, ler o que cada passo fez e pôr uma execução falhada a andar outra vez. Para iniciar uma, consulte Executar um pipeline manualmente.

  1. Clique em Pipelines na barra lateral do espaço de trabalho. O ecrã é a fila de execuções do espaço de trabalho — todas as execuções, das mais recentes para as mais antigas.
  2. Utilize a barra da esquerda para filtrar. Existem exatamente três filtros, cada um com uma contagem em direto: Todos, Running, Failed.
  3. Percorra a tabela com ↑/↓ (ou j/k) e prima Enter para abrir a execução em foco. Clicar numa linha faz o mesmo.

Cada linha mostra um glifo de como a execução arrancou (play para a execução manual; um glifo de ficheiro para uma vigilância do grafo de código; caso contrário, o disparador automático). A dica nomeia o disparador — Manual, PR publicada, Alteração de ficheiro, e assim por diante — e, no caso de uma execução de vigilância, que ficheiros mudaram. Depois vêm o nome do pipeline, um distintivo de estado, a duração ativa (ou a posição na fila, no caso de uma execução queued) e há quanto tempo esta tentativa arrancou. A duração ativa exclui os intervalos de inatividade entre paragens e reinícios, pelo que não é o tempo total decorrido.

Não existe um filtro para execuções concluídas, suspensas ou canceladas, nem um filtro por modelo, nem uma janela temporal, nem uma vista de histórico de execuções por modelo. Comparar execuções de um mesmo modelo obriga a percorrer a fila à procura do respetivo nome.

A página de uma execução tem três partes empilhadas.

A faixa de metadados apresenta a hora de início, a duração ativa, o progresso dos passos («3 de 7 etapas»), um resumo da falha que indica o passo que falhou e porquê, e as ações Tentar novamente e Eliminar.

A cascata de tempos dá uma barra por passo, com a respetiva duração e — nos passos de agente — o respetivo custo em cêntimos. Um passo que sofreu nova tentativa mostra um sufixo ×N depois da duração; esse sufixo é o único sítio onde o número de tentativas aparece.

O canvas do grafo desenha o modelo com o estado em direto de cada nó. Selecionar um nó abre o painel do passo.

Estado Significado
Pending Criada, ainda não iniciada
Na fila Admitida mas retida: o limite de execuções em paralelo deste modelo está cheio; ainda não há linhas de passo
Running Em execução
Suspended À espera de algo externo — normal, não está bloqueado
Completed Terminada com êxito
Failed Terminada com um erro
Cancelled Parada por um utilizador ou pelo sistema

Os passos têm estes estados menos Na fila, mais Skipped, para um ramo que um router não seguiu (e os respetivos descendentes, agora inalcançáveis).

Suspended é o estado onde um passo de agente passa a maior parte da sua vida: um agente despachado ou um portão de aprovação retém o passo até o respetivo trabalho ficar concluído. Duas redes de segurança do motor fazem falhar a execução inteira em vez de a retomarem: um passo suspenso há mais de 24 horas (extras.awaitApproval — o corpo orchestration.awaitApproval — está isento; human.gate não está) e um passo não idempotente que estava em curso quando o servidor parou.

Selecione um nó no canvas. O painel do passo mostra, por ordem:

  • Um destaque Erro quando o passo falhou, ou um destaque Ignorado com o motivo quando foi ignorado.
  • Iniciado, Concluído e a duração.
  • Ramo — o índice do ramo, para ramos paralelos.
  • Ver conversa — salta para a conversa em que o passo foi executado. As conversas de pipeline estão ocultas na barra lateral, pelo que este é o único caminho para lá entrar.
  • Entrada e Saída, como JSON recolhível.
  • Atividade do agente — um cartão por execução de agente que o passo despachou, com o estado, o resumo, a duração e o custo.

Para um passo de agente, a Saída é o payload estruturado que o agente submeteu com submit_output, e não o seu texto. O rasto de raciocínio vive na Atividade do agente e na conversa por trás de Ver conversa.

Para um passo bash, a Saída é o stdout aparado que o script escreveu ao sair com o código 0. Uma saída com um código diferente de zero faz falhar o passo, com o fim do stderr como mensagem de erro.

  1. Leia o resumo da falha na faixa de metadados; indica o passo que falhou. O destaque Erro do painel do passo tem a mensagem.
  2. Verifique a Entrada do passo — uma chave de estado em falta ou mal escrita é a causa mais comum. Um passo prompt-agent falha de imediato e nomeia os marcadores não resolvidos; um passo bash substitui-os por cadeias vazias e executa na mesma, o que normalmente só se manifesta um passo depois.
  3. Para um passo de agente, abra Ver conversa e leia o que o agente fez realmente.
  4. Prima Tentar novamente na faixa de metadados. Os passos concluídos e ignorados mantêm as respetivas saídas; todo o resto é eliminado e executado de novo, e a execução volta ao estado Running. O relógio da duração recomeça nesta tentativa.

Causas comuns que vale a pena verificar primeiro:

  • Tempo limite — o passo excedeu o seu Tempo limite (ms). Lembre-se de que o campo está em milissegundos.
  • Erro de script — o comando bash terminou com um código diferente de zero, ou o bash não está no PATH do anfitrião do servidor.
  • Validação de esquema — o payload submit_output do agente não satisfez o esquema de saída do passo.
  • Marcador não resolvido — um {{key}} referenciado por um passo prompt-agent nunca foi escrito a montante. O erro nomeia todas as chaves não resolvidas.
  • Corpo não registado — um passo cuja chave de corpo não está registada produz um aviso ao carregar o modelo e depois nunca chega a ser executado.

Selecione o passo em execução e prima o botão Encerrar em execução no cabeçalho do painel do passo. Isto mata o processo do passo, marca o passo como falhado e, por conseguinte, faz falhar a execução inteira — todos os ramos irmãos abertos são encerrados com ele.

Não existe nenhum controlo de cancelamento de execução neste ecrã. pipeline.cancel existe como operação RPC e o motor implementa-a, mas nada na interface dos pipelines a invoca; Encerrar em execução num passo, ou Eliminar na execução, são os únicos gestos de paragem disponíveis.

O custo é indicado por passo, na coluna da direita da cascata e em cada cartão abaixo de Atividade do agente. Não há um total por execução na página de detalhe nem uma coluna de custo na fila de execuções, pelo que comparar o custo de duas execuções implica somar os respetivos passos.