Перейти до вмісту

Моніторити запуски конвеєрів

Це сторінка про все, що відбувається після старту запуску: як його знайти, як прочитати, що зробив кожен крок, і як знову зрушити запуск, що зазнав збою. Щоб почати запуск, дивіться Запустити конвеєр вручну.

  1. Натисніть Конвеєри на бічній панелі робочого простору. Цей екран — черга запусків робочого простору: усі запуски, найновіші першими.
  2. Скористайтеся лівою панеллю для фільтрування. Є рівно три фільтри, кожен із живим лічильником: Усі, Виконується, Помилка.
  3. Рухайтеся таблицею за допомогою ↑/↓ (або j/k) і натисніть Enter, щоб відкрити запуск у фокусі. Клік по рядку дає той самий результат.

Кожен рядок показує піктограму того, як запуск розпочався (значок відтворення — для ручного запуску; значок файлу — для спостереження за графом коду; інакше — автоматичний тригер). Підказка називає тригер — Вручну, PR опубліковано, Зміна файлу тощо — а для запуску за спостереженням ще й те, які файли змінилися. Далі — назва конвеєра, індикатор стану, активна тривалість (або позиція в черзі для запуску зі станом queued) і те, скільки часу минуло від початку цієї спроби. Активна тривалість не враховує проміжки простою від зупинки й перезапуску, тож це не проміжок реального часу.

Немає фільтра для завершених, призупинених чи скасованих запусків, немає фільтра за шаблоном, немає часового вікна й немає перегляду історії запусків за шаблоном. Щоб порівняти запуски одного шаблону, доводиться переглядати чергу в пошуках його назви.

Сторінка запуску складається з трьох частин, розташованих одна над одною.

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

Каскадна діаграма часу дає по одній смузі на крок із його тривалістю та — для кроків-агентів — вартістю в центах. Крок, який повторювали, показує суфікс ×N після своєї тривалості; цей суфікс — єдине місце, де видно кількість спроб.

Полотно графа малює шаблон із поточним станом кожного вузла. Вибір вузла відкриває його панель кроку.

Стан Значення
Очікування Створено, ще не розпочато
У черзі Прийнято, але утримано: межу паралельності цього шаблону вичерпано; рядків кроків ще немає
Виконується Виконується
Призупинено Очікує на щось зовнішнє — це нормально, а не застрягання
Завершено Успішно завершено
Помилка Завершився з помилкою
Скасовано Зупинено користувачем або системою

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

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

Виберіть вузол на полотні. Панель кроку показує в такому порядку:

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

Для кроку-агента Вихід — це структуроване корисне навантаження, яке агент подав через submit_output, а не його текст. Трасування міркувань зберігається в розділі Активність агента та в розмові, яку відкриває Переглянути розмову.

Для кроку bash Вихід — це обрізаний stdout, який скрипт записав під час виходу з кодом 0. Ненульовий код виходу призводить до збою кроку, а хвіст stderr стає повідомленням про помилку.

  1. Прочитайте підсумок збою на смузі метаданих; він називає крок, що зазнав збою. Блок Помилка на панелі кроку містить повідомлення.
  2. Перевірте Вхід кроку — найпоширеніша причина — відсутній або неправильно написаний ключ стану. Крок промпт-агента одразу зазнає збою й називає нерозв’язані плейсхолдери; крок bash підставляє замість них порожні рядки й усе одно виконується, що зазвичай виявляється на наступному кроці.
  3. Для кроку-агента відкрийте Переглянути розмову і прочитайте, що агент насправді зробив.
  4. Натисніть Повторити на смузі метаданих. Завершені та пропущені кроки зберігають свої виходи; усе інше видаляється й виконується заново, а запуск повертається в стан виконання. Відлік тривалості починається заново для цієї спроби.

Поширені причини, які варто перевірити насамперед:

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

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

На цьому екрані немає елемента керування для скасування запуску. pipeline.cancel існує як RPC-операція, і рушій її реалізує, але ніщо в інтерфейсі конвеєрів її не викликає; Завершити запущені для кроку або Видалити для запуску — це єдині доступні способи зупинки.

Вартість показується для кожного кроку — у правій колонці каскадної діаграми часу та на кожній плитці в розділі Активність агента. На сторінці деталей немає підсумку за запуском, а в черзі запусків немає колонки вартості, тож щоб порівняти вартість двох запусків, доведеться додати їхні кроки.