Перейти к содержимому

Мониторить запуски конвейеров

Эта страница — обо всём, что происходит после старта запуска: как его найти, как прочитать, что делал каждый шаг, и как снова сдвинуть с места сбойный запуск. О том, как запустить конвейер, см. Запустить конвейер вручную.

  1. Нажмите Конвейеры в боковой панели рабочего пространства. Этот экран — очередь запусков рабочего пространства: все запуски, сначала самые новые.
  2. Фильтруйте через левую панель. Фильтров ровно три, у каждого — живой счётчик: Все, Выполняется, Ошибка.
  3. Перемещайтесь по таблице клавишами ↑/↓ (или j/k) и нажмите Enter, чтобы открыть выбранный запуск. Щелчок по строке делает то же самое.

В каждой строке есть значок того, как запуск начался (воспроизведение — для ручного; значок файла — для наблюдения за графом кода; иначе — автоматический триггер). Во всплывающей подсказке указан триггер — Вручную, PR опубликован, Изменение файла и так далее, — а для запуска по наблюдению ещё и какие файлы изменились. Дальше идут название конвейера, значок состояния, активная длительность (или позиция в очереди для запуска в состоянии queued) и сколько времени прошло с начала этой попытки. Активная длительность не учитывает простои на остановку и перезапуск, поэтому это не всё время по часам.

Фильтра для завершённых, приостановленных или отменённых запусков нет; нет фильтра по шаблону, нет временного окна и нет представления с историей запусков отдельного шаблона. Чтобы сравнить запуски одного шаблона, приходится искать его название глазами по всей очереди.

Страница запуска состоит из трёх частей, идущих одна под другой.

Строка метаданных содержит время начала, активную длительность, прогресс по шагам («3 из 7 шагов»), сводку о сбое с названием сломавшегося шага и его причиной, а также действия Повторить и Удалить.

Хронологическая диаграмма показывает по одной полосе на шаг, с его длительностью и — для шагов агентов — стоимостью в центах. У шага, который повторяли, после длительности стоит суффикс ×N; это единственное место, где видны счётчики попыток.

Холст графа рисует шаблон с текущим состоянием каждого узла. Если выбрать узел, откроется его панель шага.

Состояние Значение
Ожидание Создан, ещё не начат
В очереди Допущен, но удерживается: лимит параллельных запусков этого шаблона исчерпан; строк шагов ещё нет
Выполняется Выполняется
Приостановлен Ждёт чего-то внешнего — это нормально, а не зависание
Завершён Успешно завершён
Ошибка Завершился с ошибкой
Отменён Остановлен пользователем или системой

У шагов есть те же состояния, кроме В очереди, плюс Пропущен — для ветки, по которой не пошёл маршрутизатор (и её теперь недостижимых потомков).

Приостановлен — состояние, в котором шаг агента проводит большую часть жизни: отправленный в работу агент или шлюз подтверждения удерживает шаг, пока его работа не завершится. Две страховки движка проваливают весь запуск, а не возобновляют его: шаг, приостановленный дольше 24 часов (extras.awaitApproval — тело orchestration.awaitApproval — исключение; human.gate — нет), и неидемпотентный шаг, который выполнялся, когда сервер остановился.

Выберите узел на холсте. Панель шага показывает по порядку:

  • Врезку Ошибка, если шаг завершился с ошибкой, или врезку Пропущен с причиной, если шаг был пропущен.
  • Начато, Завершено и длительность.
  • Ветка — индекс ветки, для параллельных ветвей.
  • Открыть диалог — переход к разговору, в котором выполнялся шаг. Разговоры конвейеров скрыты из боковой панели, поэтому это единственный способ туда попасть.
  • Вход и Выход в виде сворачиваемого JSON.
  • Активность агента — по одной плитке на каждый запуск агента, отправленный этим шагом, с состоянием, сводкой, длительностью и стоимостью.

Для шага агента Выход — это структурированный payload, который агент отправил через submit_output, а не его текст. Трассировка рассуждений находится в Активности агента и в разговоре, который открывается по Открыть диалог.

Для шага bash Выход — это обрезанный stdout, который скрипт записал при завершении с кодом 0. Завершение с ненулевым кодом проваливает шаг, а сообщением об ошибке становится хвост stderr.

  1. Прочитайте сводку о сбое в строке метаданных: в ней назван сбойный шаг. Сообщение есть во врезке Ошибка на панели шага.
  2. Проверьте Вход шага: чаще всего причина в отсутствующем или неправильно написанном ключе состояния. Шаг агента с промптом сразу завершается сбоем и называет неразрешённые заполнители; шаг bash подставляет на их место пустые строки и всё равно выполняется, и это обычно всплывает на следующем шаге.
  3. Для шага агента откройте Открыть диалог и посмотрите, что агент на самом деле сделал.
  4. Нажмите Повторить в строке метаданных. Завершённые и пропущенные шаги сохраняют свои выходы; всё остальное удаляется и выполняется заново, а запуск снова переходит в состояние «выполняется». Отсчёт длительности начинается заново для этой попытки.

Частые причины, которые стоит проверить в первую очередь:

  • Таймаут — шаг превысил свой Таймаут (мс). Помните, что значение поля задаётся в миллисекундах.
  • Ошибка скрипта — команда bash завершилась с ненулевым кодом или bash отсутствует в PATH на хосте сервера.
  • Проверка схемы — payload submit_output агента не соответствует схеме выхода шага.
  • Неразрешённый заполнитель — {{key}}, на который ссылался шаг агента с промптом, так и не был записан выше по графу. Ошибка перечисляет все неразрешённые ключи.
  • Незарегистрированное тело — шаг, чей ключ тела не зарегистрирован, выдаёт предупреждение при загрузке шаблона и затем просто никогда не выполняется.

Выберите выполняющийся шаг и нажмите кнопку Прервать выполнение в заголовке панели шага. Она убивает процесс шага, помечает шаг как сбойный и тем самым проваливает весь запуск — вместе с ним закрываются все открытые соседние ветви.

На этом экране нет элемента управления для отмены запуска. pipeline.cancel существует как RPC-операция, и движок её реализует, но ничто в интерфейсе конвейеров её не вызывает; Прервать выполнение на шаге или Удалить на запуске — единственные доступные способы остановки.

Стоимость показывается по шагам: в правом столбце хронологической диаграммы и на каждой плитке в разделе Активность агента. На странице сведений нет итога по запуску, а в очереди запусков нет столбца стоимости, поэтому, чтобы сравнить стоимость двух запусков, придётся сложить их шаги.