Трейсы, доступ и удаление
Какие данные сохраняет Cloud trace, кто их видит и как их удалить.
Cloud trace сохраняет данные, которые runtime бота отправил для диагностики: форму исполнения, attributes, payload, tool input/output и exception упавшего span. Платформа не определяет, какие значения разработчик считает ПДн или секретом.
Что сохраняется
Платформа сохраняет:
- имя и статус runtime span;
- модель и провайдер;
- число входных и выходных токенов;
- задержка модели и общая длительность;
- номер итерации агентного цикла;
- имя и статус инструмента;
- имя воркфлоу;
- HTTP status и категория ошибки;
- имя, code, message и stack runtime exception;
- канал и alias интеграции;
- полные сохранённые attributes span и platform payload;
- tool input/output;
- LLM instructions, messages, tools и response;
- conversation, user и message correlation IDs.
Типизированные metadata остаются удобной проекцией для фильтров и интерфейса, но не заменяют и не очищают сохранённые attributes/payload. Hosted store не является архивом всего OTLP envelope: resource/scope metadata, events и status message вне этого контракта не сохраняются.
Ответственность за содержимое
Содержимое трейса принадлежит разработчику бота. Если runtime отправил текст сообщения, документ, prompt, token или ПДн, значение будет сохранено и доступно авторизованным участникам workspace. Платформа не редактирует и не скрывает такие поля.
Не отправляйте в telemetry данные, которые не должны храниться. Если они уже попали в trace store, удалите трейсы бота.
Лимиты ingestion
Один OTLP-запрос может содержать до 16 resourceSpans, 64 scopeSpans и 256
spans. Размер body ограничен 48 MiB, число attributes одного resource или span —
64. Превышение лимита возвращает 413 без частичной записи.
Отдельные хранилища
Сообщения, event payloads и application logs хранятся отдельно и имеют собственные правила доступа и retention. Удаление трейсов не удаляет эти данные.
Не записывайте чувствительные данные в console.log() и произвольные события.
Trace store не очищает хранилища, которыми управляет код бота.
Локальная диагностика
Inspector внутри brt dev и hosted trace API показывают сохранённые
attributes/payload, включая tool input/output. Доступ к ним следует считать
эквивалентным доступу к runtime-логам.
Считайте локальный trace чувствительным артефактом:
- не коммитьте дампы;
- не отправляйте их в общий telemetry endpoint;
- удаляйте после диагностики;
- перед публикацией проверяйте содержимое вручную.
Чтение через CLI
brt traces --conversation-id "$CONVERSATION_ID"Cloud API требует ограниченную область: conversation, точный trace ID либо
workflow/action вместе с обязательным since. Списки используют pageSize и
nextToken. Фильтры по status, workflow, action и времени применяются до
пагинации.
brt conversations list показывает ограниченные метаданные. brt conversations show <id> строит компактный timeline. brt traces печатает tool
input/output и runtime exception; с --verbose — stack и полные
attributes/payload без тяжёлого LLM-контента. Флаг --include-llm добавляет
сохранённые instructions, messages, tools и model response в human- и JSON-вывод.
Флаг управляет только отображением: runtime и hosted ingestion сохраняют эти
поля независимо от него.
Hosted evals
Eval store сохраняет только операционные метаданные: ID, tags, статусы,
assertion kind, score, duration, stable error code/phase и opaque correlation
conversationId/traceId. Prompts, сообщения, model responses, evidence,
stack trace и raw errors в сам eval store не попадают. Entry хранит
conversationId/traceId, по которым exception читается из trace store.
Каждый eval run становится недоступен через 30 дней. Фоновая очистка удаляет истёкшие runs и связанные результаты.
Эта же проекция используется на экране Evals в консоли.
Инспектор показывает вердикты, тайминги и ссылку на conversation trace, но не
имеет скрытого доступа к содержимому диалога. CLI печатает эквивалентную команду
brt traces --conversation-id <id>.
Доступ
Production-запрос получает область из ключа бота. Dev-запрос использует PAT и проверенный dev target. Консоль дополнительно проверяет членство пользователя в воркспейсе и принадлежность бота.
Глобальный переключатель Production / Development меняет bot scope всех
разделов проекта. Связь окружений используется только для выбора runtime и не
расширяет чтение одного bot_id на данные другого.
Не передавайте workspace authority через произвольный query-параметр. Scope определяется токеном и выбранным target.
Retention
Трейсы предназначены для диагностики, а не для постоянного хранения прикладных данных. Не стройте бизнес-логику на наличии trace row.
Если проекту нужен собственный журнал, создайте таблицу с явной схемой, retention и правилами доступа.
Owner или admin workspace может удалить все трейсы выбранного бота:
DELETE /v1/admin/workspaces/{workspaceId}/bots/{botId}/tracesОперационный trace-maintenance продолжает поддерживать batch-удаление по сроку
хранения. Оба механизма удаляют trace rows физически и не затрагивают другие
боты.