Ir al contenido

Supervisar ejecuciones de pipeline

Esta página cubre todo lo que viene después de que una ejecución haya arrancado: encontrarla, leer qué ha hecho cada paso y volver a poner en marcha una ejecución que ha fallado. Para iniciar una, consulta Ejecutar un pipeline manualmente.

  1. Haz clic en Pipelines en la barra lateral del espacio de trabajo. La pantalla es la cola de ejecuciones del espacio de trabajo: todas las ejecuciones, de la más reciente a la más antigua.
  2. Usa la barra izquierda para filtrar. Hay exactamente tres filtros, cada uno con un recuento en vivo: Todos, Running y Failed.
  3. Recorre la tabla con ↑/↓ (o j/k) y pulsa Enter para abrir la ejecución enfocada. Hacer clic en una fila hace lo mismo.

Cada fila muestra un glifo de cómo se inició la ejecución (un play para las manuales, un glifo de archivo para una vigilancia del grafo de código y, en los demás casos, el disparador automático). La información sobre herramientas nombra el disparador —Manual, PR publicada, Cambio de archivo y similares— y, en una ejecución de vigilancia, qué archivos han cambiado. Después vienen el nombre del pipeline, una insignia de estado, la duración activa (o la posición en la cola, en una ejecución queued) y cuánto tiempo hace que arrancó este intento. La duración activa excluye los huecos de parada y reinicio en reposo, así que no es el tiempo real transcurrido.

No hay filtro para las ejecuciones completadas, suspendidas o canceladas, ni filtro por plantilla, ni ventana temporal, ni vista del historial de ejecuciones de una plantilla. Para comparar las ejecuciones de una plantilla hay que recorrer la cola buscando su nombre.

La página de una ejecución tiene tres partes apiladas.

La franja de metadatos lleva la hora de inicio, la duración activa, el progreso de pasos («3 de 7 pasos»), un resumen del fallo que nombra el paso que se rompió y por qué, y las acciones Reintentar y Eliminar.

La cascada de tiempos da una barra por paso, con su duración y —en los pasos de agente— su coste en céntimos. Un paso que se ha reintentado muestra un sufijo ×N después de su duración; ese sufijo es el único sitio donde se ve el número de intentos.

El lienzo del grafo dibuja la plantilla con el estado en vivo de cada nodo. Seleccionar un nodo abre su panel de paso.

Estado Significado
Pending Creada, aún no iniciada
En cola Admitida pero retenida: el tope de ejecuciones en paralelo de esta plantilla está lleno; todavía no hay filas de pasos
Running En ejecución
Suspended Esperando algo externo — normal, no está atascada
Completed Terminada correctamente
Failed Terminada con un error
Cancelled Detenida por un usuario o por el sistema

Los pasos tienen esos estados menos En cola, más Skipped, para una rama que un enrutador no tomó (y sus descendientes, ya inalcanzables).

Suspended es donde un paso de agente pasa la mayor parte de su vida: un agente despachado o una compuerta de aprobación retiene el paso hasta que llega su trabajo. Dos redes de seguridad del motor hacen fallar toda la ejecución en lugar de reanudarla: un paso suspendido más de 24 horas (extras.awaitApproval —el cuerpo orchestration.awaitApproval— queda exento; human.gate no) y un paso no idempotente que estaba en curso cuando se detuvo el servidor.

Selecciona un nodo del lienzo. El panel de paso muestra, en este orden:

  • Un aviso Error cuando el paso ha fallado, o un aviso Omitido con el motivo cuando se ha omitido.
  • Iniciado, Finalizado y la duración.
  • Rama — el índice de rama, en las ramas paralelas.
  • Ver conversación — salta a la conversación en la que se ejecutó el paso. Las conversaciones de pipeline están ocultas en la barra lateral, así que esta es la única forma de entrar.
  • Entrada y Salida, como JSON plegable.
  • Actividad del agente — una tarjeta por cada ejecución de agente que despachó el paso, con su estado, su resumen, su duración y su coste.

En un paso de agente, la Salida es la carga útil estructurada que el agente envió con submit_output, no su texto. El rastro de razonamiento vive en Actividad del agente y en la conversación que hay detrás de Ver conversación.

En un paso bash, la Salida es el stdout recortado que el script escribió al salir con código 0. Una salida distinta de cero hace fallar el paso, con el final de stderr como mensaje de error.

  1. Lee el resumen del fallo en la franja de metadatos; nombra el paso que ha fallado. El aviso Error del panel de paso contiene el mensaje.
  2. Comprueba la Entrada del paso — una clave de estado ausente o mal escrita es la causa más habitual. Un paso de agente de prompt falla directamente y nombra los marcadores sin resolver; un paso bash los sustituye por cadenas vacías y se ejecuta igualmente, lo que suele aflorar un paso más tarde.
  3. En un paso de agente, abre Ver conversación y lee lo que hizo el agente en realidad.
  4. Pulsa Reintentar en la franja de metadatos. Los pasos completados y omitidos conservan sus salidas; todo lo demás se elimina y se vuelve a ejecutar, y la ejecución regresa a Running. El reloj de duración se reinicia para este intento.

Causas habituales que conviene comprobar primero:

  • Tiempo de espera agotado — el paso superó su Tiempo de espera (ms). Recuerda que el campo está en milisegundos.
  • Error del script — el comando bash salió con un código distinto de cero, o bash no está en el PATH del host del servidor.
  • Validación del esquema — la carga útil que el agente envió con submit_output no satisfizo el esquema de salida del paso.
  • Marcador sin resolver — un {{key}} al que hacía referencia un paso de agente de prompt nunca se escribió aguas arriba. El error nombra cada clave sin resolver.
  • Cuerpo no registrado — un paso cuyo bodyKey no está registrado avisa al cargar la plantilla y después simplemente nunca se ejecuta.

Selecciona el paso en ejecución y pulsa el botón Detener en ejecución en la cabecera del panel de paso. Esto mata el proceso del paso, marca el paso como fallido y, por tanto, hace fallar toda la ejecución: cada rama hermana abierta se cierra con él.

En esta pantalla no hay ningún control para cancelar la ejecución. pipeline.cancel existe como operación RPC y el motor la implementa, pero nada de la interfaz de pipelines la llama; Detener en ejecución en un paso, o Eliminar en la ejecución, son los únicos gestos de parada disponibles.

El coste se muestra por paso, en la columna derecha de la cascada y en cada tarjeta de Actividad del agente. No hay un total de la ejecución en la página de detalle ni una columna de coste en la cola de ejecuciones, así que comparar el coste de dos ejecuciones implica sumar sus pasos.