# Аналитика сборок Bazel {#bazel-build-insights}

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

Данные о вызовах передаются через [протокол событий сборки](https://bazel.build/remote/bep) Bazel. Настройка подключает его автоматически при запуске `tuist bazel setup`; дополнительные флаги не требуются.

## Что показывает панель {#what-the-dashboard-shows}

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

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

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

## Пользовательские метаданные {#custom-metadata}

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

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

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

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

```text
build:ci --build_metadata=RUNNER=macos-14
```

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

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

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

## Отключение {#opting-out}

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

```bash
tuist bazel setup --no-build-insights
```

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

## Хранение данных {#data-retention}

Tuist хранит вызовы Bazel и их журналы в течение 90 дней. Полную политику см. в разделе <.localized_link href="/guides/server/data-retention">хранение данных</.localized_link>.
