С появлением ИИ-агентов количество PR выросло до небес, а нагрузка на CI еще никогда не была столь высокoй. Nx Agents — это противодействующая сила, которая не дает CI превратиться в узкое место: задачи распределяются автоматически, а крупные e2e-тесты разбиваются на части и перераспределяются, что повышает как скорость, так и эффективность вычислений.
Но когда в CI выполняются сотни задач по сотням проектов, становится трудно отслеживать, какие задачи выполнялись медленно, на какой машине они запускались и что их блокировало.
Именно поэтому мы представляем режим таймлайна.
Режим таймлайна
Режим таймлайна позволяет одним взглядом оценить весь процесс выполнения и все его задачи.
Вот запуск из моего собственного монорепозитория:
Вам не нужно читать ни одного названия задачи, чтобы увидеть проблему. В начале есть блок работы, второй блок — гораздо позже, а посередине — длинный отрезок, на котором большинству машин делать нечего. Такая картина получилась из-за моего скрипта CI: он запускал nx affected один раз для подмножества проектов, а затем снова для другого подмножества, поэтому вторая группа не могла запуститься, пока первая полностью не завершилась.
Рефакторинг этой конфигурации уже приводит к значительно более оптимизированному запуск:
Теперь работа распределена равномерно по всему запуску. В самом конце все еще остается несколько отстающих задач — это то, на что стоит обратить внимание в следующий раз.
Просмотр неудачных задач и их попыток
Неудачные задачи выделяются красным цветом и сохраняют свое положение на таймлайне, поэтому вы можете видеть, на каком этапе они завершились с ошибкой и что еще происходило в этот момент. При нажатии на задачу открывается панель с метаданными задачи, каждой попыткой и выводом терминала для каждой попытки.
В данном случае первая попытка спецификации Playwright столкнулась с таймаутом завершения работы воркера, а повторная попытка прошла успешно. Обе попытки на месте, их легко отследить, и у каждой есть собственный вывод.
Изучение прошлых запусков
В случае сбоя задачи (но не только) вы можете использовать вкладку «История» для проверки предыдущих запусков.
Это даст вам представление о том, был ли это единичный сбой или повторяющаяся проблема. Вы также можете увидеть, стала ли задача выполняться медленнее и начала ли она затрагивать файлы, к которым раньше никогда не обращалась.
Почему задача выполнилась с опозданием
Задачи, отстающие в конце запуска, обычно представляют наибольший интерес. Вот сбалансированный запуск, где группа задач в самом конце обведена красным кругом:
На панели есть вкладка «Зависимости», в которой перечислены вышестоящие задачи, которых ждала данная задача, и нижестоящие задачи, которые ждали ее.
Обычно это сразу объясняет задержку планирования. Иногда цепочка зависимостей вполне обоснованна, и с этим ничего не поделаешь. Иногда она указывает на проект, от которого зависят все остальные, и перемещение его ближе к началу графа сокращает весь конвейер.
Фильтрация конкретных задач
Переключение с «Все задачи» (All tasks) на «По агентам» (Per agent) превращает каждого агента в отдельную дорожку. В сочетании с поисковой строкой это отличный способ увидеть, как распределялась работа по одному проекту. Здесь я отфильтровал результаты до одного e2e-проекта в своем репозитории:
Каждая полоса — это один файл спецификации, распределенный по различным Nx Agents. Это работа Atomizer.
Просмотр данных об использовании Nx Agent
Клик по агенту, а не по задаче, открывает панель самой машины: шаги рабочего процесса, которые она выполняла, с указанием их продолжительности, а также графики использования ЦП и памяти за все время ее работы.
Для получения полной детализации по-прежнему доступен режим использования ресурсов, о котором мы недавно писали. Он опускается до уровня отдельных процессов и доступен прямо из панели агента.
Наблюдение за запуском в реальном времени
Таймлайн отрисовывается в реальном времени. Откройте выполнение конвейера, пока оно еще продолжается, и задачи будут появляться по мере их планирования.
Попробуйте
Если вы уже используете Nx Cloud, опробуйте режим таймлайна на собственных запусках. Скоро мы сделаем его по умолчанию.
Кроме того, вы можете зайти в раздел запусков Nx Cloud репозитория Nx на GitHub. Найдите запуск и нажмите "Timeline View" на боковой панели.
Попробуйте Nx Cloud бесплатно
Если вы рассматриваете это решение для крупной организации и хотите обсудить детали внедрения, вы можете связаться с нами.
Узнать больше
- Распределение выполнения задач с помощью Nx Agents
- Разделение e2e-задач с помощью Atomizer
- Использование ресурсов
- Сообщество Nx в Discord
- Канал Nx на YouTube









