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

Аналитика сборок Bazel

Каждое завершённое выполнение build, test и других команд Bazel отображается на панели **Вызовы** проекта: тип команды, код завершения, время начала и окончания, длительность, а также попадания в кэш, промахи, загрузки и выгрузки, которые Bazel отнёс к этому же вызову.

Данные о вызовах передаются через протокол событий сборки Bazel. Настройка подключает его автоматически при запуске tuist bazel setup; дополнительные флаги не требуются.

Что показывает панель#

Каждый вызов записывает:

  • Команду, которую выполнил Bazel, её код выхода, время начала и окончания, а также общую длительность.
  • Количество действий, целей и пакетов.
  • Ограниченную временную шкалу сборки и сводку критического пути.
  • Попадания в кэш, промахи, загрузки и выгрузки, отнесённые к вызову.
  • Строки журнала прогресса, зафиксированные во время выполнения, в порядке исполнения.
  • Версию Bazel, ветку git и коммит, когда Bazel их сообщает, а также признак того, что запуск произошёл в CI.

Активность кэша, которую Bazel не может отнести к завершённому вызову (например, если команда прервана в процессе выполнения), всё равно отображается на странице Обзор проекта как необработанное наблюдение удалённого кэша. Она не рассматривается как доказательство успешности команды, её длительности или результатов тестов.

Пользовательские метаданные#

Привязывайте данные в формате «ключ-значение» к вызовам, чтобы сравнивать запуски разных команд, оборудования или рабочих процессов. Значения отображаются на странице деталей каждого вызова, а также доступны через API и инструменты Model Context Protocol.

Задавайте метаданные с помощью встроенного флага Bazel --build_metadata:

bash
bazel build --build_metadata=TICKET=TUIST-123 --build_metadata=RUNNER=macos-14 //...

Или задайте их один раз для каждого этапа в вашем .bazelrc:

plaintext
build:ci --build_metadata=RUNNER=macos-14

Каждый вызов может содержать до 20 пользовательских записей. Ключи могут содержать до 50 символов, значения — до 500 символов. Записи, превышающие эти ограничения, отбрасываются перед сохранением вызова, поэтому неверная запись не мешает записать остальную часть отчёта.

Контекстные ключи, которые Tuist извлекает из среды сборки, такие как CI, GIT_BRANCH и GIT_COMMIT, не сохраняются как пользовательские значения, поскольку они уже заполняют основные поля вызова.

Пользовательские метаданные видны участникам проекта на панели управления, а также через API и инструменты Model Context Protocol. Не используйте их для учётных данных, токенов доступа или других конфиденциальных данных.

Отключение#

Поток протокола событий сборки содержит аргументы командной строки, переменные окружения и вывод команды. Tuist сохраняет только перечисленные выше поля завершённых команд и отбрасывает остальные, но если вы предпочитаете вообще не отправлять поток событий, повторно запустите настройку с помощью:

bash
tuist bazel setup --no-build-insights

Сгенерированный файл .bazelrc.tuist затем настраивает только удалённый кэш. Вызовы перестают отображаться на панели управления, а наблюдения кэша остаются на странице Обзор.

Хранение данных#

Tuist хранит вызовы Bazel и их журналы в течение 90 дней. Полную политику см. в разделе хранение данных.