137| `OTEL_LOG_TOOL_CONTENT` | Включить логирование содержимого инструмента в [событии span `tool.output`](#tool-output-span-event) (по умолчанию: отключено). Атрибуты span переносят содержимое инструмента под [их собственные шлюзы](#new-context-gates). Требует [трассировку](#traces-beta). Содержимое усекается на лимите содержимого (60 КБ по умолчанию) | `1` для включения |137| `OTEL_LOG_TOOL_CONTENT` | Включить логирование содержимого инструмента в [событии span `tool.output`](#tool-output-span-event) (по умолчанию: отключено). Атрибуты span переносят содержимое инструмента под [их собственные шлюзы](#new-context-gates). Требует [трассировку](#traces-beta). Содержимое усекается на лимите содержимого (60 КБ по умолчанию) | `1` для включения |
138| `OTEL_LOG_MANAGED_SETTINGS` | Добавить скрытые управляемые параметры и дайджест SHA-256 параметров перед скрытием на события [managed settings resolved](#managed-settings-resolved-event) (по умолчанию: отключено). Значение в параметрах проекта или локальных параметрах не включает его. Требует Claude Code v2.1.274 или позже | `1` для включения |138| `OTEL_LOG_MANAGED_SETTINGS` | Добавить скрытые управляемые параметры и дайджест SHA-256 параметров перед скрытием на события [managed settings resolved](#managed-settings-resolved-event) (по умолчанию: отключено). Значение в параметрах проекта или локальных параметрах не включает его. Требует Claude Code v2.1.274 или позже | `1` для включения |
139| `OTEL_LOG_RAW_API_BODIES` | Выдать полный запрос и ответ JSON API Anthropic Messages как события логов `api_request_body` / `api_response_body` (по умолчанию: отключено). Тела включают всю историю разговора. Включение этого подразумевает согласие на всё, что раскрыли бы `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` и `OTEL_LOG_TOOL_CONTENT` | `1` для встроенных тел, усечённых на лимите содержимого (60 КБ по умолчанию), или `file:<dir>` для неусечённых тел на диске с указателем `body_ref` в событии |139| `OTEL_LOG_RAW_API_BODIES` | Выдать полный запрос и ответ JSON API Anthropic Messages как события логов `api_request_body` / `api_response_body` (по умолчанию: отключено). Тела включают всю историю разговора. Включение этого подразумевает согласие на всё, что раскрыли бы `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` и `OTEL_LOG_TOOL_CONTENT` | `1` для встроенных тел, усечённых на лимите содержимого (60 КБ по умолчанию), или `file:<dir>` для неусечённых тел на диске с указателем `body_ref` в событии |
140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Лимит содержимого: максимальная длина атрибутов, содержащих содержимое, таких как ответы модели, содержимое инструмента, системные подсказки и тела сырого API, включая маркер усечения, в единицах кода UTF-16 (по умолчанию: 61440, т.е. 60 КБ). По умолчанию размер рассчитан для бэкендов, которые ограничивают значения атрибутов на 64 КБ; увеличивайте его только если ваш бэкенд принимает большие значения, или уменьшайте, чтобы сократить объём телеметрии. Когда лимит атрибута OpenTelemetry SDK, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` или один из его вариантов logrecord и span, установлен ниже, Claude Code усекает на этом меньшем значении, чтобы маркер `[TRUNCATED ...]` оставался в пределах лимита SDK. Требует Claude Code v2.1.214 или позже | `262144` |140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Лимит содержимого: максимальная длина атрибутов с содержимым, таких как ответы модели, содержимое инструмента, системные промпты и сырые тела API, включая маркер усечения, в единицах кода UTF-16 (по умолчанию: 61440, т.е. 60 КБ). Значение по умолчанию рассчитано на бэкенды, которые ограничивают значения атрибутов 64 КБ; увеличивайте его, только если ваш бэкенд принимает большие значения, или уменьшайте, чтобы сократить объём телеметрии. Когда лимит атрибута OpenTelemetry SDK, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` или один из его вариантов для logrecord и span, установлен ниже, Claude Code усекает по этому меньшему значению, чтобы маркер `[TRUNCATED ...]` оставался в пределах лимита SDK | `262144` |
141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Предпочтение временности метрик (по умолчанию: `delta`). Установите на `cumulative`, если ваш бэкенд ожидает кумулятивную временность | `delta`, `cumulative` |141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Предпочтение временности метрик (по умолчанию: `delta`). Установите на `cumulative`, если ваш бэкенд ожидает кумулятивную временность | `delta`, `cumulative` |
142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Интервал обновления динамических заголовков (по умолчанию: 1740000ms / 29 минут) | `900000` |142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Интервал обновления динамических заголовков (по умолчанию: 1740000ms / 29 минут) | `900000` |
143 143
144Для протоколов `http/protobuf` и `http/json` Claude Code отправляет каждый запрос экспорта с заголовком `Content-Length`. До v2.1.212 версии Claude Code от v2.1.191 и позже отправляли эти запросы с кодированием передачи по частям; Azure Monitor и другие конечные точки, требующие объявленной длины, отклоняли их с ошибками `411 Length Required` или `400`.144Для протоколов `http/protobuf` и `http/json` Claude Code отправляет каждый запрос экспорта с заголовком `Content-Length`.
145 145
146<h3 id="mtls-authentication">146<h3 id="mtls-authentication">
147 Аутентификация mTLS147 Аутентификация mTLS
202 202
203Входящий контекст трассировки также применяется к [событиям](#events). В сеансах Agent SDK и `-p` с установленным `TRACEPARENT` каждая запись логов OTLP события содержит значения `trace_id` и `span_id`, которые присоединяют её к трассировке вашего приложения, даже когда экспортер трассировок не настроен, поэтому ваш бэкенд логирования может коррелировать события с остальной частью трассировки.203Входящий контекст трассировки также применяется к [событиям](#events). В сеансах Agent SDK и `-p` с установленным `TRACEPARENT` каждая запись логов OTLP события содержит значения `trace_id` и `span_id`, которые присоединяют её к трассировке вашего приложения, даже когда экспортер трассировок не настроен, поэтому ваш бэкенд логирования может коррелировать события с остальной частью трассировки.
204 204
205Запись, выданная во время активного взаимодействия, содержит ID span взаимодействия, даже когда Claude Code выдаёт её вне асинхронного контекста span, такого как обратный вызов подсказки разрешения или для записи, буферизованной при запуске и экспортированной позже. Запись, выданная без активного span взаимодействия, содержит ID входящего `TRACEPARENT` напрямую. До v2.1.214 записи, выданные вне асинхронного контекста span, содержали ID входящего `TRACEPARENT` вместо ID span. До v2.1.212 записи событий, выданные вне активного span, не содержали `trace_id` или `span_id`.205Запись, выданная во время активного взаимодействия, содержит ID span взаимодействия, даже когда Claude Code выдаёт её вне асинхронного контекста span, например в обратном вызове запроса разрешения или для записи, буферизованной при запуске и экспортированной позже. Запись, выданная без активного span взаимодействия, содержит ID входящего `TRACEPARENT` напрямую.
206 206
207<h4 id="span-hierarchy">207<h4 id="span-hierarchy">
208 Иерархия span208 Иерархия span
328| Атрибут | Описание | Контролируется |328| Атрибут | Описание | Контролируется |
329| - | - | - |329| - | - | - |
330| `duration_ms` | Время, потраченное на ожидание решения разрешения | |330| `duration_ms` | Время, потраченное на ожидание решения разрешения | |
331| `decision` | `accept` или `reject` | |331| `decision` | `accept`, `reject` или `cancelled`, где `cancelled` означает, что Claude Code перестал ожидать решения о разрешении для вызова инструмента и не запустил его | |
332| `source` | Источник решения, соответствующий [событию Tool decision](#tool-decision-event) | |332| `source` | Для `accept` или `reject` — источник решения, например `config`, `hook` или `user_temporary`, со значениями, описанными в разделе [событие Tool decision](#tool-decision-event). Для `cancelled` — то, что завершило ожидание до принятия какого-либо решения, например `user_abort` | |
333
334Решение `cancelled` с `source` `user_abort` означает, что сообщение, требующее немедленной доставки, прервало ход, пока запрос разрешения или проверка [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) ещё ожидали завершения. Например, во время проверки авторежима у пользователя было сообщение в очереди, и он [отправил его немедленно](/docs/ru/interactive-mode#when-claude-code-sends-what-you-queued).
333 335
334**`claude_code.tool.execution`**336**`claude_code.tool.execution`**
335 337
616 Стандартные атрибуты618 Стандартные атрибуты
617</h3>619</h3>
618 620
619Все метрики и события имеют эти стандартные атрибуты:621Все метрики и события содержат следующие стандартные атрибуты:
620 622
621| Атрибут | Описание | Управляется |623| Атрибут | Описание | Чем управляется |
622| - | - | - |624| - | - | - |
623| `session.id` | Уникальный идентификатор сеанса | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |625| `session.id` | Уникальный идентификатор сессии | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |
624| `ccr.session.id` | Идентификатор облачного сеанса, значение `CLAUDE_CODE_REMOTE_SESSION_ID`, в сеансах, которые работают в [облачной среде](/docs/ru/cloud-environments) | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |626| `ccr.session.id` | Идентификатор облачной сессии, значение `CLAUDE_CODE_REMOTE_SESSION_ID`, в сессиях, которые выполняются в [облачном окружении](/docs/ru/cloud-environments) | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |
625| `app.version` | Текущая версия Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (по умолчанию: false) |627| `app.version` | Текущая версия Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (по умолчанию: false) |
626| `app.entrypoint` | Способ запуска сеанса, например `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` или `claude-in-slack` для сеансов Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (по умолчанию: false) |628| `app.entrypoint` | Способ запуска сессии, например `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` или `claude-in-slack` для сессий Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (по умолчанию: false) |
627| `organization.id` | UUID организации (при аутентификации) | Всегда включается, если доступно |629| `organization.id` | UUID организации (при аутентификации) | Всегда включается, если доступен |
628| `user.account_uuid` | UUID учётной записи (при аутентификации) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |630| `user.account_uuid` | UUID аккаунта (при аутентификации) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |
629| `user.account_id` | ID учётной записи в формате с тегом, соответствующий API администратора Anthropic (при аутентификации), например `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |631| `user.account_id` | ID аккаунта в формате с тегом, соответствующем административным API Anthropic (при аутентификации), например `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |
630| `user.id` | Случайный анонимный идентификатор, созданный при первом запуске и сохранённый в `~/.claude.json`. Он не содержит личной информации и не является производным от вашей учётной записи Claude. Удаление файла создаёт новое несвязанное значение при следующем запуске. | Всегда включается |632| `user.id` | Случайный анонимный идентификатор, создаваемый при первом запуске и сохраняемый в `~/.claude.json`. Он не содержит персональной информации и не выводится из вашего аккаунта Claude. Удаление файла приводит к появлению нового, не связанного с прежним значения при следующем запуске. | Всегда включается |
631| `user.email` | Адрес электронной почты пользователя, из вашего входа или, в [облачном сеансе](/docs/ru/claude-code-on-the-web), из учётных данных самого сеанса | Всегда включается, если доступно |633| `user.email` | Адрес электронной почты пользователя, полученный при входе или, в [облачной сессии](/docs/ru/claude-code-on-the-web), из собственных учётных данных сессии | Всегда включается, если доступен |
632| `terminal.type` | Тип терминала, например `iTerm.app`, `vscode`, `cursor` или `tmux` | Всегда включается при обнаружении |634| `terminal.type` | Тип терминала, например `iTerm.app`, `vscode`, `cursor` или `tmux` | Всегда включается, если определён |
633| Ключи из `OTEL_RESOURCE_ATTRIBUTES` | Пользовательские атрибуты, которые вы устанавливаете, например `department` или `team.id`. См. [Поддержка многокомандной организации](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (по умолчанию: true) |635| Ключи из `OTEL_RESOURCE_ATTRIBUTES` | Заданные вами пользовательские атрибуты, например `department` или `team.id`. См. [Поддержка организаций с несколькими командами](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (по умолчанию: true) |
634| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Идентификатор репозитория сеанса, полученный из его удалённого хранилища `origin`. См. [Атрибуты репозитория](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (по умолчанию: false). Требуется Claude Code v2.1.269 или позже |636| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Идентификация репозитория сессии, выведенная из его удалённого репозитория `origin`. См. [Атрибуты репозитория](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (по умолчанию: false). Требуется Claude Code v2.1.269 или новее |
635 637
636В сеансах, подписанных на [шлюз приложений Claude](/docs/ru/claude-apps-gateway) через `/login`, CLI помечает экспорты аутентифицированной идентификацией: `user.id` — это субъект IdP, `user.email` — это адрес электронной почты входа, и `user.groups` содержит членство в группе IdP в виде строки, разделённой запятыми. Каждый экспорт также содержит `identity.source: gateway-oidc`. Идентификация шлюза применяется последней, поэтому ключи `user.*` и `identity.*`, установленные через `OTEL_RESOURCE_ATTRIBUTES`, игнорируются в сеансах шлюза.638В сессиях, в которых выполнен вход в [шлюз приложений Claude](/docs/ru/claude-apps-gateway) через `/login`, CLI помечает экспортируемые данные аутентифицированной идентичностью: `user.id` — это субъект IdP, `user.email` — адрес электронной почты, с которым выполнен вход, а `user.groups` содержит членство в группах IdP в виде строки с разделителями-запятыми. Каждый экспорт также содержит `identity.source: gateway-oidc`. Идентичность шлюза применяется последней, поэтому ключи `user.*` и `identity.*`, заданные через `OTEL_RESOURCE_ATTRIBUTES`, в таких сессиях игнорируются.
637 639
638<Note>640<Note>
639 События, которые Claude Code записывает в лог до входа разработчика, не содержат идентичность шлюза. Когда Claude Code открывает сессию без входа в шлюз, например после того как [шлюз завершил сеанс входа](/docs/ru/errors#cloud-gateway-session-expired), события запуска, записанные до входа, содержат анонимный `user.id` и не содержат `identity.source`. К ним относятся [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) и [`mcp_server_connection`](#mcp-server-connection-event).641 События, которые Claude Code записывает в лог до входа разработчика, не содержат идентичности шлюза. Когда Claude Code открывает сессию без входа в шлюз, например после того как [шлюз завершил вход](/docs/ru/errors#cloud-gateway-session-expired), события запуска, записанные до входа, содержат анонимный `user.id` и не содержат `identity.source`. К ним относятся [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) и [`mcp_server_connection`](#mcp-server-connection-event).
640</Note>642</Note>
641 643
642Атрибуты идентичности для сессий Claude Desktop и Cowork, подключающихся через шлюз, описаны в [справочнике по `telemetry` шлюза](/docs/ru/claude-apps-gateway-config#telemetry).644Атрибуты идентичности для сессий Claude Desktop и Cowork, подключающихся через шлюз, описаны в [справочнике `telemetry` шлюза](/docs/ru/claude-apps-gateway-config#telemetry).
643 645
644События дополнительно включают следующие атрибуты. Они никогда не прикрепляются к метрикам, так как это вызовет неограниченную кардинальность:646События дополнительно содержат следующие атрибуты. Они никогда не добавляются к метрикам, поскольку привели бы к неограниченной кардинальности:
645 647
646* `prompt.id`: UUID, коррелирующий пользовательский запрос со всеми последующими событиями до следующего запроса. См. [Атрибуты корреляции событий](#event-correlation-attributes).648* `prompt.id`: UUID, связывающий промпт пользователя со всеми последующими событиями до следующего промпта. См. [Атрибуты корреляции событий](#event-correlation-attributes).
647* `workspace.host_paths`: каталоги рабочей области хоста, выбранные в приложении для рабочего стола, как массив строк649* `workspace.host_paths`: каталоги рабочего пространства хоста, выбранные в настольном приложении, в виде массива строк
648* `workflow.run_id`: идентификатор запуска с префиксом `wf_` в событиях API и инструментов, генерируемых агентами, которые относятся к запуску инструмента [Workflow](/docs/ru/workflows). Фильтрация событий по одному `workflow.run_id` позволяет восстановить API-запросы и результаты инструментов этого запуска. Идентификатор охватывает агентов, которых порождает скрипт workflow, а также любых агентов, порождённых ими, например вызовы скиллов. Он совпадает с идентификатором запуска, указанным в результате инструмента Workflow. Отсутствует во всех остальных событиях.650* `workflow.run_id`: идентификатор запуска с префиксом `wf_` в событиях API и инструментов, генерируемых агентами, которые относятся к запуску инструмента [Workflow](/docs/ru/workflows). Фильтрация событий по одному `workflow.run_id` позволяет восстановить API-запросы и результаты инструментов этого запуска. Идентификатор охватывает агентов, которых порождает скрипт workflow, а также любых агентов, которых порождают уже они, например при вызовах скиллов. Он совпадает с идентификатором запуска, сообщаемым в результате инструмента Workflow. Отсутствует во всех остальных событиях.
649* `workflow.name`: имя workflow, `meta.name` его скрипта, передаётся вместе с `workflow.run_id`. Имена встроенных workflow отображаются без изменений, когда запуск выполняет неизменённый встроенный скрипт. Пользовательские имена, включая отредактированные копии встроенных скриптов, заменяются на `custom`, если не задано `OTEL_LOG_TOOL_DETAILS=1`.651* `workflow.name`: имя workflow, `meta.name` его скрипта, генерируется вместе с `workflow.run_id`. Имена встроенных workflow отображаются как есть, когда запуск выполняет неизменённый встроенный скрипт. Имена, заданные пользователем, включая отредактированные копии встроенных скриптов, заменяются на `custom`, если не задано `OTEL_LOG_TOOL_DETAILS=1`.
650 652
651<h4 id="repository-attributes">653<h4 id="repository-attributes">
652 Атрибуты репозитория654 Атрибуты репозитория
653</h4>655</h4>
654 656
655Установите `OTEL_METRICS_INCLUDE_REPOSITORY=true`, чтобы помечать метрики и события идентификацией репозитория сеанса, чтобы общий сборщик мог атрибутировать использование по репозиторию. Требуется Claude Code v2.1.269 или позже.657Задайте `OTEL_METRICS_INCLUDE_REPOSITORY=true`, чтобы помечать метрики и события идентификацией репозитория сессии, — так общий коллектор сможет распределять использование по репозиториям. Требуется Claude Code v2.1.269 или новее.
656 658
657Claude Code получает эти атрибуты один раз за сеанс из удалённого хранилища `origin` репозитория. Когда удалённые хранилища HTTPS и SSH репозитория называют один и тот же хост и один и тот же путь, как это происходит на GitHub, GitLab и Bitbucket Cloud, оба производят идентичные значения:659Claude Code выводит эти атрибуты один раз за сессию из удалённого репозитория `origin`. Когда удалённые адреса HTTPS и SSH репозитория указывают на один и тот же хост и один и тот же путь, как на GitHub, GitLab и Bitbucket Cloud, оба дают одинаковые значения:
658 660
659| Атрибут | Значение |661| Атрибут | Значение |
660| - | - |662| - | - |
661| `vcs.repository.url.full` | URL браузера репозитория без `.git`, например `https://github.com/example-org/example-repo` |663| `vcs.repository.url.full` | URL репозитория для браузера без `.git`, например `https://github.com/example-org/example-repo` |
662| `vcs.owner.name` | Путь владельца или группы, например `example-org`; опускается, когда путь удалённого хранилища имеет один сегмент |664| `vcs.owner.name` | Путь владельца или группы, например `example-org`; не указывается, если путь удалённого репозитория состоит из одного сегмента |
663| `vcs.repository.name` | Простое имя репозитория, например `example-repo` |665| `vcs.repository.name` | Имя репозитория без пути, например `example-repo` |
664| `vcs.provider.name` | `github`, `gitlab`, `bitbucket` или `gitea`, когда Claude Code распознаёт хост удалённого хранилища или форму URL как один из этих поставщиков; опускается в противном случае |666| `vcs.provider.name` | `github`, `gitlab`, `bitbucket` или `gitea`, когда Claude Code распознаёт хост или форму URL удалённого репозитория как одного из этих провайдеров; в остальных случаях не указывается |
665 667
666Значения приводятся в нижний регистр, и учётные данные, строки запроса и фрагменты из URL удалённого хранилища никогда не отображаются в них. Атрибуты опускаются, когда сеанс не имеет удалённого хранилища `origin`, когда удалённое хранилище не имеет формы URL или когда единственный охватывающий репозиторий — это ваш домашний каталог.668Значения приводятся к нижнему регистру, а учётные данные, строки запроса и фрагменты из URL удалённого репозитория в них никогда не попадают. Атрибуты не указываются, если у сессии нет удалённого репозитория `origin`, если удалённый адрес не имеет формы URL или если единственным объемлющим репозиторием является ваш домашний каталог.
667 669
668Чтобы получить эти атрибуты из [облачного сеанса](/docs/ru/claude-code-on-the-web), установите переменные телеметрии, включая `OTEL_METRICS_INCLUDE_REPOSITORY`, в его [облачной среде](/docs/ru/cloud-environments#set-environment-variables). Также разрешите домен вашего сборщика в [сетевом доступе](/docs/ru/cloud-environments#network-access) среды.670Чтобы получать эти атрибуты из [облачной сессии](/docs/ru/claude-code-on-the-web), задайте переменные телеметрии, включая `OTEL_METRICS_INCLUDE_REPOSITORY`, в её [облачном окружении](/docs/ru/cloud-environments#set-environment-variables). Также разрешите домен вашего коллектора в настройках [сетевого доступа](/docs/ru/cloud-environments#network-access) окружения.
669 671
670Ключ `vcs.*`, который вы объявляете в [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support), заменяет полученное значение для этого ключа. Если вы объявляете `vcs.repository.url.full`, Claude Code никогда не читает удалённое хранилище и сообщает только объявленные вами ключи.672Ключ `vcs.*`, объявленный вами в [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support), заменяет выведенное значение для этого ключа. Если вы объявите `vcs.repository.url.full`, Claude Code вообще не читает удалённый репозиторий и сообщает только объявленные вами ключи.
671 673
672Если клоны HTTPS и SSH одного репозитория сообщают разные значения, например на самостоятельно размещённой установке, где URL клона HTTPS содержит префикс пути, которого не хватает URL SSH, объявите `vcs.repository.url.full` в `OTEL_RESOURCE_ATTRIBUTES` вместе со всеми остальными ключами `vcs.*`, которые вы хотите сообщить. Каждый клон затем сообщает идентификацию, которую вы объявляете.674Если клоны одного репозитория по HTTPS и SSH сообщают разные значения, например в самостоятельно размещённой установке, где URL клонирования по HTTPS содержит префикс пути, отсутствующий в URL SSH, объявите `vcs.repository.url.full` в `OTEL_RESOURCE_ATTRIBUTES` вместе со всеми остальными ключами `vcs.*`, которые хотите сообщать. Тогда каждый клон будет сообщать объявленную вами идентификацию.
673 675
674Атрибуты передаются только вашим собственным экспортёрам; телеметрия Anthropic отбрасывает каждый ключ `vcs.*`.676Атрибуты передаются только в ваши собственные экспортёры; телеметрия Anthropic отбрасывает все ключи `vcs.*`.
675 677
676<h3 id="metrics">678<h3 id="metrics">
677 Метрики679 Метрики
678</h3>680</h3>
679 681
680Claude Code экспортирует следующие метрики. Столбец Unit показывает строку единицы OpenTelemetry, прикреплённую к каждой метрике; метрики подсчёта не имеют никаких.682Claude Code экспортирует следующие метрики. В столбце «Единица» указана строка единицы измерения OpenTelemetry, прикреплённая к каждой метрике; у метрик-счётчиков её нет.
681 683
682| Имя метрики | Описание | Единица |684| Имя метрики | Описание | Единица |
683| - | - | - |685| - | - | - |
684| `claude_code.session.count` | Количество запущенных сеансов CLI | нет |686| `claude_code.session.count` | Количество запущенных сессий CLI | нет |
685| `claude_code.lines_of_code.count` | Количество изменённых строк кода | нет |687| `claude_code.lines_of_code.count` | Количество изменённых строк кода | нет |
686| `claude_code.pull_request.count` | Количество созданных запросов на слияние | нет |688| `claude_code.pull_request.count` | Количество созданных pull request | нет |
687| `claude_code.commit.count` | Количество созданных коммитов git | нет |689| `claude_code.commit.count` | Количество созданных git-коммитов | нет |
688| `claude_code.cost.usage` | Стоимость сеанса Claude Code | USD |690| `claude_code.cost.usage` | Стоимость сессии Claude Code | USD |
689| `claude_code.token.usage` | Количество использованных токенов | tokens |691| `claude_code.token.usage` | Количество использованных токенов | tokens |
690| `claude_code.code_edit_tool.decision` | Количество решений о разрешении инструмента редактирования кода | нет |692| `claude_code.code_edit_tool.decision` | Количество решений о разрешениях для инструментов редактирования кода | нет |
691| `claude_code.active_time.total` | Общее активное время | s |693| `claude_code.active_time.total` | Общее активное время | s |
692 694
693Когда `prometheus` — единственный экспортёр, указанный в `OTEL_METRICS_EXPORTER`, Claude Code опускает единицы `USD`, `tokens` и `s` из экспортированных метрик, чтобы скрейп оставался в действительном формате текста Prometheus. Имена метрик не меняются, и конфигурации, которые объединяют экспортёры, такие как `otlp,prometheus`, сохраняют единицы. До v2.1.216 скрейп Prometheus включал строки `# UNIT`, специфичные для OpenMetrics, которые некоторые скрейперы отклоняли.695Когда `prometheus` — единственный экспортёр, указанный в `OTEL_METRICS_EXPORTER`, Claude Code не указывает единицы `USD`, `tokens` и `s` в экспортируемых метриках, чтобы результат сбора оставался корректным текстовым форматом Prometheus. Имена метрик не меняются, а конфигурации, сочетающие экспортёры, например `otlp,prometheus`, сохраняют единицы. До v2.1.216 результат сбора Prometheus включал строки `# UNIT`, специфичные для OpenMetrics, которые некоторые сборщики отклоняли.
694 696
695<h3 id="metric-details">697<h3 id="metric-details">
696 Детали метрик698 Подробности метрик
697</h3>699</h3>
698 700
699Каждая метрика включает стандартные атрибуты, перечисленные выше. Метрики с дополнительными контекстно-специфичными атрибутами отмечены ниже.701Каждая метрика включает перечисленные выше стандартные атрибуты. Метрики с дополнительными атрибутами, зависящими от контекста, отмечены ниже.
700 702
701<h4 id="session-counter">703<h4 id="session-counter">
702 Счётчик сеансов704 Счётчик сессий
703</h4>705</h4>
704 706
705Увеличивается в начале каждого сеанса.707Увеличивается в начале каждой сессии.
706 708
707**Атрибуты**:709**Атрибуты**:
708 710
709* Все [стандартные атрибуты](#standard-attributes)711* Все [стандартные атрибуты](#standard-attributes)
710* `start_type`: Как был запущен сеанс. Один из `"fresh"`, `"resume"`, `"continue"` или `"agents_view"`. Значение `"agents_view"` идентифицирует процесс панели управления `claude agents`, локальный пользовательский интерфейс, а не разговорный сеанс. Фильтруйте по этому значению, чтобы отделить запуски процесса пользовательского интерфейса от разговорных сеансов в ваших панелях управления.712* `start_type`: Способ запуска сессии. Одно из значений `"fresh"`, `"resume"`, `"continue"` или `"agents_view"`. Значение `"agents_view"` обозначает процесс панели `claude agents` — локальный интерфейс, запускаемый пользователем, а не диалоговую сессию. Фильтруйте по этому значению, чтобы отделять запуски процессов интерфейса от диалоговых сессий на ваших дашбордах.
711 713
712<h4 id="lines-of-code-counter">714<h4 id="lines-of-code-counter">
713 Счётчик строк кода715 Счётчик строк кода
719 721
720* Все [стандартные атрибуты](#standard-attributes)722* Все [стандартные атрибуты](#standard-attributes)
721* `type`: (`"added"`, `"removed"`)723* `type`: (`"added"`, `"removed"`)
722* `model`: Идентификатор модели для модели, которая внесла изменение (например, "claude-sonnet-5")724* `model`: Идентификатор модели, внёсшей изменение (например, "claude-sonnet-5")
723 725
724<h4 id="pull-request-counter">726<h4 id="pull-request-counter">
725 Счётчик запросов на слияние727 Счётчик pull request
726</h4>728</h4>
727 729
728Увеличивается, когда Claude Code создаёт запрос на слияние или запрос на объединение через команду оболочки или инструмент MCP.730Увеличивается, когда Claude Code создаёт pull request или merge request с помощью shell-команды или инструмента MCP.
729 731
730**Атрибуты**:732**Атрибуты**:
731 733
735 Счётчик коммитов737 Счётчик коммитов
736</h4>738</h4>
737 739
738Увеличивается при создании коммитов git через Claude Code.740Увеличивается при создании git-коммитов через Claude Code.
739 741
740**Атрибуты**:742**Атрибуты**:
741 743
745 Счётчик стоимости747 Счётчик стоимости
746</h4>748</h4>
747 749
748Увеличивается после каждого запроса API.750Увеличивается после каждого API-запроса.
749 751
750Атрибуты `agent.name`, `skill.name`, `plugin.name`, `mcp_server.name` и `mcp_tool.name` по умолчанию скрывают некоторые имена в заполнитель `"custom"` или `"third-party"`. Если вы установите `OTEL_LOG_TOOL_DETAILS=1`, они вместо этого содержат реальные имена. До v2.1.273 счётчики стоимости и токенов и события `api_request`, `api_error` и `api_refusal` содержали скрытые значения даже с установленным `OTEL_LOG_TOOL_DETAILS=1`.752Атрибуты `agent.name`, `skill.name`, `plugin.name`, `mcp_server.name` и `mcp_tool.name` по умолчанию заменяют некоторые имена заполнителем `"custom"` или `"third-party"`. Если задать `OTEL_LOG_TOOL_DETAILS=1`, они содержат настоящие имена. До v2.1.273 счётчики стоимости и токенов, а также события `api_request`, `api_error` и `api_refusal` содержали скрытые значения даже при заданном `OTEL_LOG_TOOL_DETAILS=1`.
751 753
752**Атрибуты**:754**Атрибуты**:
753 755
754* Все [стандартные атрибуты](#standard-attributes)756* Все [стандартные атрибуты](#standard-attributes)
755* `model`: Идентификатор модели (например, "claude-sonnet-5")757* `model`: Идентификатор модели (например, "claude-sonnet-5")
756* `query_source`: Категория подсистемы, которая выдала запрос. Один из `"main"`, `"subagent"` или `"auxiliary"`758* `query_source`: Категория подсистемы, отправившей запрос. Одно из значений `"main"`, `"subagent"` или `"auxiliary"`
757* `speed`: `"fast"`, когда запрос использовал быстрый режим. Отсутствует в противном случае759* `speed`: `"fast"`, если запрос использовал быстрый режим. В остальных случаях отсутствует
758* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.760* `effort`: [Уровень effort](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, если Claude Code не отправляет уровень effort, например для модели, которая не поддерживает effort.
759* `agent.name`: Тип подагента, который выдал запрос. Встроенные имена агентов и агенты из официальных плагинов маркетплейса отображаются как есть. Другие определённые пользователем имена агентов заменяются на `"custom"`. Отсутствует, когда запрос не был выдан именованным типом подагента.761* `agent.name`: Тип субагента, отправившего запрос. Имена встроенных агентов и агентов из плагинов официального маркетплейса отображаются как есть. Другие имена агентов, определённых пользователем, заменяются на `"custom"`. Отсутствует, если запрос отправлен не именованным типом субагента.
760* `skill.name`: Навык, активный для запроса, установленный инструментом Skill или командой `/`, или унаследованный порождённым подагентом. Встроенные, связанные, определённые пользователем и официальные имена навыков маркетплейса отображаются как есть. Имена навыков плагинов третьих сторон заменяются на `"third-party"`. Отсутствует, когда нет активного навыка.762* `skill.name`: Скилл, активный для запроса, заданный инструментом Skill или командой `/` либо унаследованный порождённым субагентом. Имена встроенных, поставляемых в комплекте, определённых пользователем скиллов и скиллов плагинов официального маркетплейса отображаются как есть. Имена скиллов сторонних плагинов заменяются на `"third-party"`. Отсутствует, если активного скилла нет.
761* `plugin.name`: Владеющий плагин, когда активный навык или подагент предоставляется плагином. Имена официальных плагинов маркетплейса отображаются как есть. Имена плагинов третьих сторон заменяются на `"third-party"`. Отсутствует, когда ни навык, ни подагент не имеют владеющего плагина.763* `plugin.name`: Плагин-владелец, если активный скилл или субагент предоставлен плагином. Имена плагинов официального маркетплейса отображаются как есть. Имена сторонних плагинов заменяются на `"third-party"`. Отсутствует, если ни у скилла, ни у субагента нет плагина-владельца.
762* `marketplace.name`: Маркетплейс, из которого был установлен владеющий плагин. Выпускается только для официальных плагинов маркетплейса, даже с установленным `OTEL_LOG_TOOL_DETAILS=1`. Отсутствует в противном случае.764* `marketplace.name`: Маркетплейс, из которого установлен плагин-владелец. Генерируется только для плагинов официального маркетплейса, даже при заданном `OTEL_LOG_TOOL_DETAILS=1`. В остальных случаях отсутствует.
763* `mcp_server.name`: Сервер MCP, результат инструмента которого использовал этот запрос. Встроенные, проксированные claude.ai и официальные имена серверов реестра отображаются как есть. Имена серверов, настроенные пользователем, заменяются на `"custom"`. Отсутствует, когда запрос не использовал результат инструмента MCP. До v2.1.222 Claude Code устанавливал этот атрибут на каждый запрос после вызова инструмента MCP, а не только на запросы, которые использовали результат инструмента, поэтому панели управления, которые его агрегируют, показывают снижение после обновления.765* `mcp_server.name`: MCP-сервер, результат инструмента которого использовал этот запрос. Имена встроенных серверов, серверов, проксируемых через claude.ai, и серверов из официального реестра отображаются как есть. Имена серверов, настроенных пользователем, заменяются на `"custom"`. Отсутствует, если запрос не использовал результат инструмента MCP. До v2.1.222 Claude Code устанавливал этот атрибут для каждого запроса после вызова инструмента MCP, а не только для запросов, использовавших результат инструмента, поэтому на дашбордах, агрегирующих его, после обновления будет заметно снижение.
764* `mcp_tool.name`: Инструмент MCP, результат которого использовал этот запрос, с тем же скрытием и поведением версии, что и `mcp_server.name`. Отсутствует, когда запрос не использовал результат инструмента MCP.766* `mcp_tool.name`: Инструмент MCP, результат которого использовал этот запрос; скрытие и поведение в зависимости от версии такие же, как у `mcp_server.name`. Отсутствует, если запрос не использовал результат инструмента MCP.
765 767
766<h4 id="token-counter">768<h4 id="token-counter">
767 Счётчик токенов769 Счётчик токенов
768</h4>770</h4>
769 771
770Увеличивается после каждого запроса API.772Увеличивается после каждого API-запроса.
771 773
772**Атрибуты**:774**Атрибуты**:
773 775
774* Все [стандартные атрибуты](#standard-attributes)776* Все [стандартные атрибуты](#standard-attributes)
775* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`). Тип `"input"` не включает токены, прочитанные из кэша промптов или записанные в него, — они учитываются в `"cacheRead"` и `"cacheCreation"`. Тип `"cacheCreation"` учитывает записи в кэш с пятиминутным и часовым [временем жизни кэша](/docs/ru/prompt-caching#cache-lifetime) вместе.777* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`). Тип `"input"` не включает токены, прочитанные из кэша промптов или записанные в него, — они учитываются в `"cacheRead"` и `"cacheCreation"`. Тип `"cacheCreation"` учитывает записи в кэш с пятиминутным и часовым [временем жизни кэша](/docs/ru/prompt-caching#cache-lifetime) вместе.
776* `model`: Идентификатор модели (например, "claude-sonnet-5")778* `model`: Идентификатор модели (например, "claude-sonnet-5")
777* `query_source`: Категория подсистемы, которая выдала запрос. Один из `"main"`, `"subagent"` или `"auxiliary"`779* `query_source`: Категория подсистемы, отправившей запрос. Одно из значений `"main"`, `"subagent"` или `"auxiliary"`
778* `speed`: `"fast"`, когда запрос использовал быстрый режим. Отсутствует в противном случае780* `speed`: `"fast"`, если запрос использовал быстрый режим. В остальных случаях отсутствует
779* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу. См. [Счётчик стоимости](#cost-counter) для деталей.781* `effort`: [Уровень effort](/docs/ru/model-config#adjust-effort-level), применённый к запросу. Подробнее см. [Счётчик стоимости](#cost-counter).
780* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция навыка, плагина, агента и MCP для запроса. См. [Счётчик стоимости](#cost-counter) для определений и поведения скрытия.782* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция запроса к скиллу, плагину, агенту и MCP. Определения и правила скрытия см. в разделе [Счётчик стоимости](#cost-counter).
781 783
782<h4 id="code-edit-tool-decision-counter">784<h4 id="code-edit-tool-decision-counter">
783 Счётчик решений инструмента редактирования кода785 Счётчик решений для инструментов редактирования кода
784</h4>786</h4>
785 787
786Увеличивается, когда пользователь принимает или отклоняет использование инструмента Edit, Write или NotebookEdit.788Увеличивается, когда пользователь принимает или отклоняет использование инструментов Edit, Write или NotebookEdit.
787 789
788**Атрибуты**:790**Атрибуты**:
789 791
790* Все [стандартные атрибуты](#standard-attributes)792* Все [стандартные атрибуты](#standard-attributes)
791* `tool_name`: Имя инструмента (`"Edit"`, `"Write"`, `"NotebookEdit"`)793* `tool_name`: Имя инструмента (`"Edit"`, `"Write"`, `"NotebookEdit"`)
792* `decision`: Решение пользователя (`"accept"`, `"reject"`)794* `decision`: Решение пользователя (`"accept"`, `"reject"`)
793* `source`: Откуда пришло решение. Один из `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"` или `"user_reject"`. См. [Событие решения инструмента](#tool-decision-event) для того, что означает каждое значение.795* `source`: Источник решения. Одно из значений `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"` или `"user_reject"`. Значение каждого из них описано в разделе [Событие решения по инструменту](#tool-decision-event).
794* `language`: Язык программирования отредактированного файла, например `"TypeScript"`, `"Python"`, `"JavaScript"` или `"Markdown"`. Возвращает `"unknown"` для неизвестных расширений файлов.796* `language`: Язык программирования редактируемого файла, например `"TypeScript"`, `"Python"`, `"JavaScript"` или `"Markdown"`. Для нераспознанных расширений файлов возвращает `"unknown"`.
795 797
796<h4 id="active-time-counter">798<h4 id="active-time-counter">
797 Счётчик активного времени799 Счётчик активного времени
798</h4>800</h4>
799 801
800Отслеживает фактическое время, потраченное на активное использование Claude Code, исключая время простоя. Эта метрика увеличивается во время взаимодействия пользователя, такого как ввод текста и чтение ответов, и во время обработки CLI, такой как выполнение инструментов и генерация ответов AI.802Отслеживает фактическое время активного использования Claude Code, исключая время простоя. Эта метрика увеличивается во время взаимодействия с пользователем, например при вводе текста и чтении ответов, а также во время обработки в CLI, например при выполнении инструментов и генерации ответов ИИ.
801 803
802**Атрибуты**:804**Атрибуты**:
803 805
804* Все [стандартные атрибуты](#standard-attributes)806* Все [стандартные атрибуты](#standard-attributes)
805* `type`: `"user"` для взаимодействия с клавиатурой, `"cli"` для выполнения инструментов и ответов AI807* `type`: `"user"` для взаимодействий с клавиатурой, `"cli"` для выполнения инструментов и ответов ИИ
806 808
807<h3 id="events">809<h3 id="events">
808 События810 События
809</h3>811</h3>
810 812
811Claude Code экспортирует следующие события через логи/события OpenTelemetry (когда настроен `OTEL_LOGS_EXPORTER`):813Claude Code экспортирует следующие события через логи/события OpenTelemetry (если настроен `OTEL_LOGS_EXPORTER`):
812 814
813<h4 id="event-correlation-attributes">815<h4 id="event-correlation-attributes">
814 Атрибуты корреляции событий816 Атрибуты корреляции событий
815</h4>817</h4>
816 818
817Когда пользователь отправляет запрос, Claude Code может сделать несколько вызовов API и запустить несколько инструментов. Атрибут `prompt.id` позволяет вам связать все эти события с одним запросом, который их вызвал.819Когда пользователь отправляет промпт, Claude Code может выполнить несколько вызовов API и запустить несколько инструментов. Атрибут `prompt.id` позволяет связать все эти события с единственным промптом, который их вызвал.
818 820
819| Атрибут | Описание |821| Атрибут | Описание |
820| - | - |822| - | - |
821| `prompt.id` | Идентификатор UUID v4, связывающий все события, созданные при обработке одного пользовательского запроса |823| `prompt.id` | Идентификатор UUID v4, связывающий все события, созданные при обработке одного промпта пользователя |
822| `event.sequence` | Счётчик на основе 0 для упорядочивания событий, подсчитанный на процесс Claude Code, а не на сеанс |824| `event.sequence` | Счётчик с отсчётом от 0 для упорядочивания событий, ведущийся для каждого процесса Claude Code, а не для каждой сессии |
823| `message.uuid` | UUID сообщения, как сохранено в транскрипте сеанса, файлы `~/.claude/projects/*/*.jsonl`. Присутствует на `assistant_response`, на `api_response_body` и на `user_prompt`, кроме отправок команд, которые могут создавать ноль или много сообщений. На `assistant_response` и `api_response_body` это финальная запись транскрипта ответа, от которой цепочка `parentUuid` следующего хода. Требуется Claude Code v2.1.214 или позже, или v2.1.274 или позже на `api_response_body` |825| `message.uuid` | UUID сообщения в том виде, в каком оно сохранено в транскрипте сессии — файлах `~/.claude/projects/*/*.jsonl`. Присутствует в `assistant_response`, в `api_response_body` и в `user_prompt`, за исключением вызовов команд, которые могут породить ноль или много сообщений. В `assistant_response` и `api_response_body` это последняя запись ответа в транскрипте, от которой выстраивается цепочка `parentUuid` следующего хода. Для `api_response_body` требуется Claude Code v2.1.274 или новее |
824| `request_id` | Назначенный сервером ID запроса API, прочитанный из заголовка ответа `request-id`, например `req_011...`. На ответе без заголовка `request-id`, как на [Amazon Bedrock](/docs/ru/amazon-bedrock), значение поступает из заголовка `x-amzn-requestid` вместо этого. Присутствует на `api_request`, `api_error`, `api_refusal`, `assistant_response` и `api_response_body`, когда ответ содержит любой из этих заголовков. Совпадает с тем же атрибутом на диапазоне трассировки `llm_request`. Источник `x-amzn-requestid` требует Claude Code v2.1.282 или позже |826| `request_id` | Назначенный сервером ID API-запроса, считываемый из заголовка ответа `request-id`, например `req_011...`. Для ответа без заголовка `request-id`, как в [Amazon Bedrock](/docs/ru/amazon-bedrock), значение берётся из заголовка `x-amzn-requestid`. Присутствует в `api_request`, `api_error`, `api_refusal`, `assistant_response` и `api_response_body`, если ответ содержит любой из этих заголовков. Совпадает с одноимённым атрибутом в span трассировки `llm_request`. Источник `x-amzn-requestid` требует Claude Code v2.1.282 или новее |
825| `client_request_id` | Созданный клиентом UUID, отправленный как заголовок запроса `x-client-request-id`. Присутствует на `api_request` и `api_error` на подключениях API первой стороны; отсутствует на бэкендах поставщиков третьих сторон и когда запрос был повторён через резервный вариант без потоковой передачи. Связывает запрос с его ответом и остаётся доступным для сбоев, таких как тайм-ауты, которые никогда не создали серверный `request_id`. Совпадает с тем же атрибутом на диапазоне трассировки `llm_request`. Требуется Claude Code v2.1.214 или позже |827| `client_request_id` | Сгенерированный клиентом UUID, отправляемый в заголовке запроса `x-client-request-id`. Присутствует в `api_request` и `api_error` при прямых подключениях к API; отсутствует при использовании бэкендов сторонних провайдеров и когда запрос был повторён через непотоковый резервный вариант. Связывает запрос с его ответом и остаётся доступным при сбоях, например таймаутах, которые так и не дали серверный `request_id`. Совпадает с одноимённым атрибутом в span трассировки `llm_request` |
826 828
827Чтобы отследить всю деятельность, вызванную одним запросом, отфильтруйте события по определённому значению `prompt.id`. Это возвращает событие user\_prompt, любые события api\_request и любые события tool\_result, которые произошли при обработке этого запроса.829Чтобы отследить всю активность, вызванную одним промптом, отфильтруйте события по конкретному значению `prompt.id`. Так вы получите событие user\_prompt, все события api\_request и все события tool\_result, произошедшие при обработке этого промпта.
828 830
829`event.sequence` начинается с 0 каждый раз, когда процесс Claude Code запускается, и считает вверх в течение жизни этого процесса. Он продолжает считать через `/clear`, который назначает новый `session.id`. Если вы [возобновляете сеанс без ветвления](/docs/ru/how-claude-code-works#resume-or-fork-sessions), сеанс сохраняет свой `session.id`, но берёт свои значения `event.sequence` из процесса, который его возобновил, поэтому в одном сеансе более позднее событие может содержать более низкое значение, чем более раннее, или повторить одно. Чтобы упорядочить события сеанса, отсортируйте по `event.timestamp` и используйте `event.sequence` для упорядочивания событий, которые имеют одну и ту же временную метку.831`event.sequence` начинается с 0 при каждом запуске процесса Claude Code и увеличивается на протяжении жизни этого процесса. Счёт продолжается и после `/clear`, который назначает новый `session.id`. Если вы [возобновите сессию без ответвления](/docs/ru/how-claude-code-works#resume-or-fork-sessions), сессия сохранит свой `session.id`, но будет получать значения `event.sequence` от процесса, который её возобновил, поэтому в пределах одной сессии более позднее событие может иметь меньшее значение, чем более раннее, или повторять его. Чтобы упорядочить события сессии, сортируйте по `event.timestamp`, а `event.sequence` используйте для упорядочивания событий с одинаковой меткой времени.
830 832
831Для восстановления на уровне сообщений каждый класс событий содержит ключ, который совпадает с полем в транскрипте сеанса. Формат записи транскрипта [внутренний для Claude Code](/docs/ru/sessions#where-transcripts-are-stored) и меняется между версиями, поэтому конвейер, который объединяет эти поля, может сломаться при любом выпуске; рассматривайте объединения как специфичные для версии, а не как стабильный контракт:833Для восстановления на уровне сообщений каждый класс событий содержит ключ, совпадающий с полем в транскрипте сессии. Формат записей транскрипта является [внутренним для Claude Code](/docs/ru/sessions#where-transcripts-are-stored) и меняется от версии к версии, поэтому конвейер, выполняющий соединение по этим полям, может сломаться в любом релизе; рассматривайте такие соединения как зависящие от версии, а не как стабильный контракт:
832 834
833* `message.uuid` на `user_prompt`, `assistant_response` и `api_response_body`835* `message.uuid` в `user_prompt`, `assistant_response` и `api_response_body`
834* `request_id` на событиях API, сохранённых как `requestId` на записях помощника транскрипта836* `request_id` в событиях API, сохраняемый как `requestId` в записях ассистента в транскрипте
835* `tool_use_id` на событиях `tool_result` и `tool_decision`837* `tool_use_id` в событиях `tool_result` и `tool_decision`
836 838
837<h4 id="user-prompt-event">839<h4 id="user-prompt-event">
838 Событие пользовательского запроса840 Событие промпта пользователя
839</h4>841</h4>
840 842
841Записывается в лог при отправке промпта, в том числе на ходах, которые Claude Code начинает самостоятельно.843Записывается в лог при отправке промпта, включая ходы, которые Claude Code начинает самостоятельно.
842 844
843**Имя события**: `claude_code.user_prompt`845**Имя события**: `claude_code.user_prompt`
844 846
846 848
847* Все [стандартные атрибуты](#standard-attributes)849* Все [стандартные атрибуты](#standard-attributes)
848* `event.name`: `"user_prompt"`850* `event.name`: `"user_prompt"`
849* `event.timestamp`: Временная метка ISO 8601851* `event.timestamp`: Метка времени ISO 8601
850* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)852* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
851* `prompt_length`: Длина запроса853* `prompt_length`: Длина промпта
852* `prompt`: Содержание запроса. Скрыто по умолчанию. Установите `OTEL_LOG_USER_PROMPTS=1`, чтобы включить его854* `prompt`: Содержимое промпта. По умолчанию скрыто. Задайте `OTEL_LOG_USER_PROMPTS=1`, чтобы включить его
853* `prompt_text`: то же значение, что и `prompt`, скрываемое по тому же условию. Бэкенд, который хранит имена атрибутов с точками как вложенные объекты, читает `prompt.id` как `id` внутри объекта с именем `prompt` и может потерять строку промпта. В таком случае читайте `prompt_text`. Требуется Claude Code v2.1.287 или новее855* `prompt_text`: То же значение, что и `prompt`, скрываемое по тому же условию. Бэкенд, который хранит имена атрибутов с точками как вложенные объекты, читает `prompt.id` как `id` внутри объекта с именем `prompt` и может потерять строку промпта. В этом случае читайте `prompt_text`. Требуется Claude Code v2.1.287 или новее
854* `message.uuid`: UUID результирующего пользовательского сообщения, совпадающий с сохранённой записью транскрипта. Отсутствует при отправке команд, которые могут создавать ноль или много сообщений. Требуется Claude Code v2.1.214 или позже856* `message.uuid`: UUID итогового сообщения пользователя, совпадающий с сохранённой записью транскрипта. Отсутствует при вызовах команд, которые могут породить ноль или много сообщений.
855* `command_name`: Имя команды, когда запрос вызывает одну. Встроенные и связанные имена команд, такие как `compact` или `debug`, выпускаются как есть; псевдонимы, такие как `reset`, выпускаются как введено, а не как каноническое имя. Пользовательские, плагины и имена команд MCP сворачиваются в `custom` или `mcp`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`857* `command_name`: Имя команды, если промпт вызывает команду. Имена встроенных и поставляемых в комплекте команд, например `compact` или `debug`, передаются как есть; псевдонимы, например `reset`, передаются в том виде, в каком они введены, а не каноническим именем. Имена пользовательских команд, команд плагинов и MCP сводятся к `custom` или `mcp`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
856* `command_source`: Происхождение команды, если присутствует: `builtin`, `custom` или `mcp`. Команды, предоставленные плагинами, сообщаются как `custom`858* `command_source`: Происхождение команды, если она есть: `builtin`, `custom` или `mcp`. Команды, предоставляемые плагинами, сообщаются как `custom`
857 859
858<h4 id="assistant-response-event">860<h4 id="assistant-response-event">
859 Событие ответа помощника861 Событие ответа ассистента
860</h4>862</h4>
861 863
862Логируется после каждого запроса к API, который возвращает текстовое содержимое от модели. Включаются только текстовые блоки ответа; блоки размышлений и блоки использования инструментов исключаются.864Записывается в лог после каждого API-запроса, который возвращает текстовое содержимое от модели. Включаются только текстовые блоки ответа; блоки размышлений и блоки использования инструментов исключаются.
863 865
864**Имя события**: `claude_code.assistant_response`866**Имя события**: `claude_code.assistant_response`
865 867
867 869
868* Все [стандартные атрибуты](#standard-attributes)870* Все [стандартные атрибуты](#standard-attributes)
869* `event.name`: `"assistant_response"`871* `event.name`: `"assistant_response"`
870* `event.timestamp`: Временная метка ISO 8601872* `event.timestamp`: Метка времени ISO 8601
871* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)873* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
872* `response_length`: Длина текста ответа в символах874* `response_length`: Длина текста ответа в символах
873* `response`: Текст ответа, усечённый на пределе содержания (60 КБ по умолчанию). Скрыт в `<REDACTED>` по умолчанию. Установите `OTEL_LOG_ASSISTANT_RESPONSES=1`, чтобы включить его. Когда `OTEL_LOG_ASSISTANT_RESPONSES` не установлен, `OTEL_LOG_USER_PROMPTS` управляет им вместо этого, поэтому установите `OTEL_LOG_ASSISTANT_RESPONSES=0`, чтобы сохранить ответы скрытыми, пока логирование запросов включено875* `response`: Текст ответа, усечённый до лимита содержимого (по умолчанию 60 КБ). По умолчанию заменяется на `<REDACTED>`. Задайте `OTEL_LOG_ASSISTANT_RESPONSES=1`, чтобы включить его. Если `OTEL_LOG_ASSISTANT_RESPONSES` не задана, управление берёт на себя `OTEL_LOG_USER_PROMPTS`, поэтому задайте `OTEL_LOG_ASSISTANT_RESPONSES=0`, чтобы ответы оставались скрытыми при включённом логировании промптов
874* `model`: Идентификатор модели (например, "claude-sonnet-5")876* `model`: Идентификатор модели (например, "claude-sonnet-5")
875* `request_id`: ID запроса API, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)877* `request_id`: ID API-запроса, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
876* `message.uuid`: UUID финальной записи транскрипта ответа. Ответ API сохраняется как одна запись транскрипта на блок содержания; это последняя, от которой цепочка `parentUuid` следующего хода. Требуется Claude Code v2.1.214 или позже878* `message.uuid`: UUID последней записи ответа в транскрипте. Ответ API сохраняется как одна запись транскрипта на каждый блок содержимого; это последняя из них, от которой выстраивается цепочка `parentUuid` следующего хода.
877* `query_source`: Подсистема, которая выдала запрос, например `"repl_main_thread"`, `"compact"` или имя подагента879* `query_source`: Подсистема, отправившая запрос, например `"repl_main_thread"`, `"compact"` или имя субагента
878 880
879<h4 id="tool-result-event">881<h4 id="tool-result-event">
880 Событие результата инструмента882 Событие результата инструмента
881</h4>883</h4>
882 884
883Регистрируется, когда инструмент завершает выполнение. Не выпускается, если вызов инструмента был отклонён; см. [Событие решения инструмента](#tool-decision-event) для отклонений.885Записывается в лог, когда инструмент завершает выполнение. Не генерируется, если вызов инструмента был отклонён; отклонения описаны в разделе [Событие решения по инструменту](#tool-decision-event).
884 886
885**Имя события**: `claude_code.tool_result`887**Имя события**: `claude_code.tool_result`
886 888
888 890
889* Все [стандартные атрибуты](#standard-attributes)891* Все [стандартные атрибуты](#standard-attributes)
890* `event.name`: `"tool_result"`892* `event.name`: `"tool_result"`
891* `event.timestamp`: Временная метка ISO 8601893* `event.timestamp`: Метка времени ISO 8601
892* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)894* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
893* `tool_name`: Имя инструмента895* `tool_name`: Имя инструмента
894* `tool_use_id`: Уникальный идентификатор для этого вызова инструмента. Совпадает с `tool_use_id`, переданным в hooks, позволяя корреляцию между событиями OTel и данными, захваченными hooks.896* `tool_use_id`: Уникальный идентификатор этого вызова инструмента. Совпадает с `tool_use_id`, передаваемым хукам, что позволяет сопоставлять события OTel с данными, собранными хуками.
895* `success`: `"true"` или `"false"`897* `success`: `"true"` или `"false"`
896* `duration_ms`: Время выполнения в миллисекундах898* `duration_ms`: Время выполнения в миллисекундах
897* `error_type`: Строка категории ошибки, когда инструмент не удался, например `"Error:ENOENT"` или `"ShellError"`899* `error_type`: Строка категории ошибки, если инструмент завершился сбоем, например `"Error:ENOENT"` или `"ShellError"`
898* `error` (когда `OTEL_LOG_TOOL_DETAILS=1`): Полное сообщение об ошибке, когда инструмент не удался900* `error` (при `OTEL_LOG_TOOL_DETAILS=1`): Полное сообщение об ошибке, если инструмент завершился сбоем
899* `decision_type`: Всегда `"accept"`, так как это событие выпускается только после запуска инструмента. Отклонённые вызовы не создают результат инструмента901* `decision_type`: Всегда `"accept"`, поскольку это событие генерируется только после запуска инструмента. Отклонённые вызовы не дают результата инструмента
900* `decision_source`: Откуда пришло решение о разрешении. Один из `"config"`, `"hook"`, `"user_permanent"` или `"user_temporary"`. См. [Событие решения инструмента](#tool-decision-event) для того, что означает каждое значение. Источники, только для отклонения, `"user_abort"` и `"user_reject"` никогда не появляются на этом событии.902* `decision_source`: Источник решения о разрешении. Одно из значений `"config"`, `"hook"`, `"user_permanent"` или `"user_temporary"`. Значение каждого из них описано в разделе [Событие решения по инструменту](#tool-decision-event). Источники `"user_abort"` и `"user_reject"`, используемые только при отклонении, в этом событии никогда не встречаются.
901* `tool_input_size_bytes`: Размер сериализованного в JSON входа инструмента в байтах903* `tool_input_size_bytes`: Размер входных данных инструмента в формате JSON в байтах
902* `tool_result_size_bytes`: Размер результата инструмента в байтах904* `tool_result_size_bytes`: Размер результата инструмента в байтах
903* `mcp_server_scope`: Идентификатор области сервера MCP (для инструментов MCP)905* `mcp_server_scope`: Идентификатор области действия MCP-сервера (для инструментов MCP)
904* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (когда `OTEL_LOG_TOOL_DETAILS=1`): идентификация коммита успешного запуска `git commit` инструментом Bash или PowerShell. `vcs.ref.head.revision` — это SHA коммита, `vcs.ref.head.name` — это ветка, на которую он был закоммичен, и `vcs.ref.head.type` — это `branch`. Имя и тип опускаются, когда коммит был сделан на отсоединённой HEAD. Требуется Claude Code v2.1.269 или позже906* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (при `OTEL_LOG_TOOL_DETAILS=1`): идентификация коммита для успешного `git commit`, выполненного инструментом Bash или PowerShell. `vcs.ref.head.revision` — SHA коммита, `vcs.ref.head.name` — ветка, в которой он сделан, а `vcs.ref.head.type` — `branch`. Имя и тип не указываются, если коммит сделан на отсоединённом HEAD. Требуется Claude Code v2.1.269 или новее
905* `tool_parameters` (когда `OTEL_LOG_TOOL_DETAILS=1`): Строка JSON, содержащая параметры, специфичные для инструмента. Для встроенных серверов Claude Desktop в сеансах, которыми владеет Claude Desktop, пара `mcp_server_name`/`mcp_tool_name` включается даже с отключённым флагом, то же исключение, созданное хостом, как [Событие решения инструмента](#tool-decision-event), требующее Claude Code v2.1.214 или позже. Параметры варьируются по инструменту:907* `tool_parameters` (при `OTEL_LOG_TOOL_DETAILS=1`): Строка JSON с параметрами, специфичными для инструмента. Для встроенных серверов Claude Desktop в сессиях, которыми владеет Claude Desktop, пара `mcp_server_name`/`mcp_tool_name` включается даже при выключенном флаге — то же исключение для имён, заданных хостом, что и в [Событии решения по инструменту](#tool-decision-event). Параметры зависят от инструмента:
906 * Для инструмента Bash: включает `bash_command`, `full_command`, `timeout`, `description` и `dangerouslyDisableSandbox`, плюс `git_commit_id` и `git_branch`, когда команда `git commit` успешна. `git_commit_id` — это полный SHA коммита, когда коммит является HEAD рабочего каталога сеанса, и сокращённый SHA git в противном случае. `git_branch` — это ветка, на которую он был закоммичен, опускается на отсоединённой HEAD908 * Для инструмента Bash: включает `bash_command`, `full_command`, `timeout`, `description` и `dangerouslyDisableSandbox`, а также `git_commit_id` и `git_branch`, когда команда `git commit` выполнена успешно. `git_commit_id` — полный SHA коммита, если коммит является HEAD рабочего каталога сессии, и сокращённый SHA git в остальных случаях. `git_branch` — ветка, в которой сделан коммит; не указывается при отсоединённом HEAD
907 * Для инструмента рабочей области приложения для рабочего стола, который также сообщает `tool_name` как `Bash`: включает только `bash_command`, `full_command` и `timeout`909 * Для инструмента Bash рабочего пространства в настольном приложении, который также сообщает `tool_name` как `Bash`: включает только `bash_command`, `full_command` и `timeout`
908 * Для инструментов MCP: включает `mcp_server_name`, `mcp_tool_name`910 * Для инструментов MCP: включает `mcp_server_name`, `mcp_tool_name`
909 * Для инструмента Skill: включает `skill_name`911 * Для инструмента Skill: включает `skill_name`
910 * Для инструмента Agent или устаревшего инструмента Task: включает `subagent_type`912 * Для инструмента Agent или устаревшего инструмента Task: включает `subagent_type`
911* `tool_input` (когда `OTEL_LOG_TOOL_DETAILS=1`): Сериализованные в JSON аргументы инструмента. Отдельные значения свыше 512 символов усекаются, и полная нагрузка ограничена примерно 4 К символами. Применяется ко всем инструментам, включая инструменты MCP.913* `tool_input` (при `OTEL_LOG_TOOL_DETAILS=1`): Аргументы инструмента в формате JSON. Отдельные значения длиннее 512 символов усекаются, а общий объём данных ограничен \~4 тыс. символов. Применяется ко всем инструментам, включая инструменты MCP.
912 914
913<h4 id="api-request-event">915<h4 id="api-request-event">
914 Событие запроса API916 Событие API-запроса
915</h4>917</h4>
916 918
917Регистрируется для каждого запроса API к Claude.919Записывается в лог для каждого API-запроса к Claude.
918 920
919**Имя события**: `claude_code.api_request`921**Имя события**: `claude_code.api_request`
920 922
922 924
923* Все [стандартные атрибуты](#standard-attributes)925* Все [стандартные атрибуты](#standard-attributes)
924* `event.name`: `"api_request"`926* `event.name`: `"api_request"`
925* `event.timestamp`: Временная метка ISO 8601927* `event.timestamp`: Метка времени ISO 8601
926* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)928* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
927* `model`: Используемая модель (например, "claude-sonnet-5")929* `model`: Использованная модель (например, "claude-sonnet-5")
928* `cost_usd`: Предполагаемая стоимость в USD930* `cost_usd`: Оценочная стоимость в USD
929* `cost_usd_micros`: Предполагаемая стоимость в миллионных долях доллара США, выпущенная как целое число931* `cost_usd_micros`: Оценочная стоимость в миллионных долях доллара США, передаётся как целое число
930* `duration_ms`: Длительность запроса в миллисекундах932* `duration_ms`: Длительность запроса в миллисекундах
931* `input_tokens`: количество входных токенов, исключая токены, прочитанные из кэша промптов или записанные в него933* `input_tokens`: Количество входных токенов, без учёта токенов, прочитанных из кэша промптов или записанных в него
932* `output_tokens`: Количество выходных токенов934* `output_tokens`: Количество выходных токенов
933* `cache_read_tokens`: Количество токенов, прочитанных из кэша935* `cache_read_tokens`: Количество токенов, прочитанных из кэша
934* `cache_creation_tokens`: Количество токенов, использованных для создания кэша936* `cache_creation_tokens`: Количество токенов, использованных для создания кэша
935* `request_id`: ID запроса API, например `"req_011..."`, описанный в [Атрибуты корреляции событий](#event-correlation-attributes).937* `request_id`: ID API-запроса, например `"req_011..."`, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes).
936* `client_request_id`: Созданный клиентом UUID, отправленный как заголовок запроса `x-client-request-id`; см. таблицу [атрибутов корреляции событий](#event-correlation-attributes) для того, когда он присутствует. Требуется Claude Code v2.1.214 или позже938* `client_request_id`: Сгенерированный клиентом UUID, отправляемый в заголовке запроса `x-client-request-id`; когда он присутствует, см. в таблице [атрибутов корреляции событий](#event-correlation-attributes)
937* `speed`: `"fast"` или `"normal"`, указывающий, был ли активен быстрый режим939* `speed`: `"fast"` или `"normal"`, указывает, был ли активен быстрый режим
938* `query_source`: Подсистема, которая выдала запрос, например `"repl_main_thread"`, `"compact"` или имя подагента940* `query_source`: Подсистема, отправившая запрос, например `"repl_main_thread"`, `"compact"` или имя субагента
939* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.941* `effort`: [Уровень effort](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, если Claude Code не отправляет уровень effort, например для модели, которая не поддерживает effort.
940* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция навыка, плагина, агента и MCP для запроса. См. [Счётчик стоимости](#cost-counter) для определений и поведения скрытия.942* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция запроса к скиллу, плагину, агенту и MCP. Определения и правила скрытия см. в разделе [Счётчик стоимости](#cost-counter).
941 943
942<h4 id="api-error-event">944<h4 id="api-error-event">
943 Событие ошибки API945 Событие ошибки API
944</h4>946</h4>
945 947
946Регистрируется, когда запрос API к Claude не удаётся.948Записывается в лог, когда API-запрос к Claude завершается сбоем.
947 949
948**Имя события**: `claude_code.api_error`950**Имя события**: `claude_code.api_error`
949 951
951 953
952* Все [стандартные атрибуты](#standard-attributes)954* Все [стандартные атрибуты](#standard-attributes)
953* `event.name`: `"api_error"`955* `event.name`: `"api_error"`
954* `event.timestamp`: Временная метка ISO 8601956* `event.timestamp`: Метка времени ISO 8601
955* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)957* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
956* `model`: Используемая модель (например, "claude-sonnet-5")958* `model`: Использованная модель (например, "claude-sonnet-5")
957* `error`: Сообщение об ошибке959* `error`: Сообщение об ошибке
958* `status_code`: Код состояния HTTP как число. Отсутствует для ошибок, не связанных с HTTP, таких как сбои соединения.960* `status_code`: Код состояния HTTP в виде числа. Отсутствует для ошибок, не связанных с HTTP, например сбоев подключения.
959* `duration_ms`: Длительность запроса в миллисекундах961* `duration_ms`: Длительность запроса в миллисекундах
960* `attempt`: количество выполненных попыток, включая исходный запрос. Когда счёт начинается заново, описано в разделе [Обнаружение исчерпания повторных попыток](#detect-retry-exhaustion)962* `attempt`: Количество выполненных попыток, включая первоначальный запрос. Когда счёт начинается заново, описано в разделе [Обнаружение исчерпания повторных попыток](#detect-retry-exhaustion)
961* `request_id`: ID запроса API, например `"req_011..."`, описанный в [Атрибуты корреляции событий](#event-correlation-attributes).963* `request_id`: ID API-запроса, например `"req_011..."`, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes).
962* `client_request_id`: Созданный клиентом UUID, отправленный как заголовок запроса `x-client-request-id`. Доступен даже при сбое, таком как тайм-аут или ошибка соединения, которые никогда не создали серверный `request_id`; см. таблицу [атрибутов корреляции событий](#event-correlation-attributes) для того, когда он присутствует. Требуется Claude Code v2.1.214 или позже964* `client_request_id`: Сгенерированный клиентом UUID, отправляемый в заголовке запроса `x-client-request-id`. Доступен, даже если сбой, например таймаут или ошибка подключения, так и не дал серверный `request_id`; когда он присутствует, см. в таблице [атрибутов корреляции событий](#event-correlation-attributes).
963* `speed`: `"fast"` или `"normal"`, указывающий, был ли активен быстрый режим965* `speed`: `"fast"` или `"normal"`, указывает, был ли активен быстрый режим
964* `query_source`: Подсистема, которая выдала запрос, например `"repl_main_thread"`, `"compact"` или имя подагента966* `query_source`: Подсистема, отправившая запрос, например `"repl_main_thread"`, `"compact"` или имя субагента
965* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.967* `effort`: [Уровень effort](/docs/ru/model-config#adjust-effort-level), применённый к запросу. Отсутствует, если Claude Code не отправляет уровень effort, например для модели, которая не поддерживает effort.
966* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция навыка, плагина, агента и MCP для запроса. См. [Счётчик стоимости](#cost-counter) для определений и поведения скрытия.968* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция запроса к скиллу, плагину, агенту и MCP. Определения и правила скрытия см. в разделе [Счётчик стоимости](#cost-counter).
967 969
968<h4 id="api-refusal-event">970<h4 id="api-refusal-event">
969 Событие отказа API971 Событие отказа API
970</h4>972</h4>
971 973
972Регистрируется, когда запрос API возвращает `stop_reason: "refusal"`. Отказы поступают на успешный поток ответов, а не как ошибка HTTP, поэтому событие `api_error` не срабатывает для них. Это событие позволяет вам отслеживать частоту отказов и группировать отказы по тем же атрибутам, что и `api_request` и `api_error`.974Записывается в лог, когда API-запрос возвращает `stop_reason: "refusal"`. Отказы приходят в успешном потоке ответа, а не в виде ошибки HTTP, поэтому событие `api_error` для них не срабатывает. Это событие позволяет отслеживать частоту отказов и группировать их по тем же атрибутам, что и `api_request` и `api_error`.
973 975
974**Имя события**: `claude_code.api_refusal`976**Имя события**: `claude_code.api_refusal`
975 977
977 979
978* Все [стандартные атрибуты](#standard-attributes)980* Все [стандартные атрибуты](#standard-attributes)
979* `event.name`: `"api_refusal"`981* `event.name`: `"api_refusal"`
980* `event.timestamp`: Временная метка ISO 8601982* `event.timestamp`: Метка времени ISO 8601
981* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)983* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
982* `model`: Идентификатор модели из запроса984* `model`: Идентификатор модели из запроса
983* `request_id`: ID запроса API, например `"req_011..."`, описанный в [Атрибуты корреляции событий](#event-correlation-attributes).985* `request_id`: ID API-запроса, например `"req_011..."`, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes).
984* `query_source`: Подсистема, которая выдала запрос, например `"repl_main_thread"`, `"compact"` или имя подагента. См. [`api_request`](#api-request-event) для определений.986* `query_source`: Подсистема, отправившая запрос, например `"repl_main_thread"`, `"compact"` или имя субагента. Определения см. в [`api_request`](#api-request-event).
985* `speed`: Либо `"fast"`, когда активен [Быстрый режим](/docs/ru/fast-mode), либо `"normal"`987* `speed`: Либо `"fast"`, когда активен [быстрый режим](/docs/ru/fast-mode), либо `"normal"`
986* `attempt`: Номер попытки повтора. Первая попытка — это `1`.988* `attempt`: Номер повторной попытки. Первая попытка — `1`.
987* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.989* `effort`: [Уровень effort](/docs/ru/model-config#adjust-effort-level), применённый к запросу. Отсутствует, если Claude Code не отправляет уровень effort, например для модели, которая не поддерживает effort.
988* `server_fallback_hop`: `true`, когда резервный вариант модели на стороне сервера API уже повторил этот отказ на другой модели, поэтому пользователь не видел этот конкретный отказ. `false`, когда запрос закончился отказом. Один ход может выпустить как событие `true` hop, так и более позднее событие `false` final, когда модель резервного варианта также отказывает.990* `server_fallback_hop`: `true`, когда серверный резервный вариант модели в API уже повторил этот отказ на другой модели, так что пользователь не увидел этот конкретный отказ. `false`, когда запрос завершился отказом. Один ход может сгенерировать как событие перехода с `true`, так и последующее итоговое событие с `false`, если резервная модель тоже отказывает.
989* `has_category`: `true`, когда ответ API содержал `stop_details.category` из `"cyber"`, `"bio"`, `"frontier_llm"` или `"reasoning_extraction"`. `false`, когда ответ не содержал категорию или значение вне этого набора. Отсутствует, когда `server_fallback_hop` — это `true`, потому что hop блоки не содержат `stop_details`.991* `has_category`: `true`, когда ответ API содержал `stop_details.category` со значением `"cyber"`, `"bio"`, `"frontier_llm"` или `"reasoning_extraction"`. `false`, когда ответ не содержал категории или содержал значение вне этого набора. Отсутствует, когда `server_fallback_hop` равно `true`, поскольку блоки перехода не содержат `stop_details`.
990* `has_explanation`: `true`, когда ответ API содержал `stop_details.explanation`, в противном случае `false`. Отсутствует, когда `server_fallback_hop` — это `true`.992* `has_explanation`: `true`, когда ответ API содержал `stop_details.explanation`, иначе `false`. Отсутствует, когда `server_fallback_hop` равно `true`.
991* `category`: Значение `stop_details.category` из ответа API. Один из `"cyber"`, `"bio"`, `"frontier_llm"` или `"reasoning_extraction"`. Присутствует только, когда установлен `OTEL_LOG_TOOL_DETAILS=1` и `has_category` — это `true`.993* `category`: Значение `stop_details.category` из ответа API. Одно из значений `"cyber"`, `"bio"`, `"frontier_llm"` или `"reasoning_extraction"`. Присутствует, только если задано `OTEL_LOG_TOOL_DETAILS=1` и `has_category` равно `true`.
992* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция навыка, плагина, агента и MCP для запроса. См. [Счётчик стоимости](#cost-counter) для определений и поведения скрытия.994* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Атрибуция запроса к скиллу, плагину, агенту и MCP. Определения и правила скрытия см. в разделе [Счётчик стоимости](#cost-counter).
993 995
994<h4 id="api-request-body-event">996<h4 id="api-request-body-event">
995 Событие тела запроса API997 Событие тела API-запроса
996</h4>998</h4>
997 999
998Регистрируется для каждой попытки запроса API, когда установлен `OTEL_LOG_RAW_API_BODIES`. Одно событие выпускается на попытку, поэтому повторные попытки с отрегулированными параметрами каждая создают своё собственное событие.1000Записывается в лог для каждой попытки API-запроса, если задана `OTEL_LOG_RAW_API_BODIES`. На каждую попытку генерируется одно событие, поэтому повторные попытки со скорректированными параметрами порождают собственные события.
999 1001
1000**Имя события**: `claude_code.api_request_body`1002**Имя события**: `claude_code.api_request_body`
1001 1003
1003 1005
1004* Все [стандартные атрибуты](#standard-attributes)1006* Все [стандартные атрибуты](#standard-attributes)
1005* `event.name`: `"api_request_body"`1007* `event.name`: `"api_request_body"`
1006* `event.timestamp`: Временная метка ISO 86011008* `event.timestamp`: Метка времени ISO 8601
1007* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1009* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1008* `body`: Сериализованные в JSON параметры запроса Messages API, такие как системный запрос, сообщения и инструменты, усечённые на пределе содержания (60 КБ по умолчанию). Содержание расширенного мышления в предыдущих ходах помощника скрыто. Выпускается только в встроенном режиме (`OTEL_LOG_RAW_API_BODIES=1`).1010* `body`: Параметры запроса Messages API в формате JSON, например системный промпт, сообщения и инструменты, усечённые до лимита содержимого (по умолчанию 60 КБ). Содержимое расширенного мышления в предыдущих ходах ассистента скрывается. Генерируется только во встроенном режиме (`OTEL_LOG_RAW_API_BODIES=1`).
1009* `body_ref`: Абсолютный путь к файлу `<dir>/<uuid>.request.json`, содержащему неусечённое тело. Выпускается только в режиме файла (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).1011* `body_ref`: Абсолютный путь к файлу `<dir>/<uuid>.request.json`, содержащему неусечённое тело. Генерируется только в файловом режиме (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).
1010* `body_length`: Неусечённая длина тела. Байты UTF-8, когда `OTEL_LOG_RAW_API_BODIES=file:<dir>`, или единицы кода UTF-16, когда `=1`1012* `body_length`: Длина неусечённого тела. В байтах UTF-8 при `OTEL_LOG_RAW_API_BODIES=file:<dir>` или в кодовых единицах UTF-16 при `=1`
1011* `body_truncated`: `"true"`, когда произошло встроенное усечение. Отсутствует в режиме файла и когда усечение не произошло.1013* `body_truncated`: `"true"`, если произошло встроенное усечение. Отсутствует в файловом режиме и если усечения не было.
1012* `model`: Идентификатор модели из параметров запроса1014* `model`: Идентификатор модели из параметров запроса
1013* `query_source`: Подсистема, которая выдала запрос (например, `"compact"`)1015* `query_source`: Подсистема, отправившая запрос (например, `"compact"`)
1014* `request_body_id`: UUID, который идентифицирует тело запроса этой попытки. Событие [`api_response_body`](#api-response-body-event) для попытки, которая успешна, содержит то же значение, поэтому вы можете связать ответ с точным запросом, который его создал. Требуется Claude Code v2.1.274 или позже1016* `request_body_id`: UUID, идентифицирующий тело запроса этой попытки. [Событие `api_response_body`](#api-response-body-event) для успешной попытки содержит то же значение, поэтому вы можете сопоставить ответ с тем самым запросом, который его породил. Требуется Claude Code v2.1.274 или новее
1015 1017
1016<h4 id="api-response-body-event">1018<h4 id="api-response-body-event">
1017 Событие тела ответа API1019 Событие тела ответа API
1018</h4>1020</h4>
1019 1021
1020Регистрируется для каждого успешного ответа API, когда установлен `OTEL_LOG_RAW_API_BODIES`.1022Записывается в лог для каждого успешного ответа API, если задана `OTEL_LOG_RAW_API_BODIES`.
1021 1023
1022В режиме файла (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code также добавляет одну строку JSON в `<dir>/index.jsonl` для каждого успешного ответа с полями `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file` и `response_file`. Прочитайте его, чтобы найти файлы запроса и ответа за данным сообщением транскрипта без запроса к вашему бэкенду телеметрии. Файл индекса требует Claude Code v2.1.274 или позже.1024В файловом режиме (`OTEL_LOG_RAW_API_BODIES=file:<dir>`) Claude Code также добавляет одну строку JSON в `<dir>/index.jsonl` для каждого успешного ответа с полями `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file` и `response_file`. Читайте его, чтобы найти файлы запроса и ответа, стоящие за конкретным сообщением транскрипта, не обращаясь к бэкенду телеметрии. Файл индекса требует Claude Code v2.1.274 или новее.
1023 1025
1024**Имя события**: `claude_code.api_response_body`1026**Имя события**: `claude_code.api_response_body`
1025 1027
1027 1029
1028* Все [стандартные атрибуты](#standard-attributes)1030* Все [стандартные атрибуты](#standard-attributes)
1029* `event.name`: `"api_response_body"`1031* `event.name`: `"api_response_body"`
1030* `event.timestamp`: Временная метка ISO 86011032* `event.timestamp`: Метка времени ISO 8601
1031* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1033* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1032* `body`: Сериализованный в JSON ответ Messages API, включая id, блоки содержания, использование и причину остановки, усечённый на пределе содержания (60 КБ по умолчанию). Содержание расширенного мышления скрыто. Выпускается только в встроенном режиме (`OTEL_LOG_RAW_API_BODIES=1`).1034* `body`: Ответ Messages API в формате JSON, включая id, блоки содержимого, использование и причину остановки, усечённый до лимита содержимого (по умолчанию 60 КБ). Содержимое расширенного мышления скрывается. Генерируется только во встроенном режиме (`OTEL_LOG_RAW_API_BODIES=1`).
1033* `body_ref`: Абсолютный путь к файлу `<dir>/<request_id>.response.json`, содержащему неусечённое тело. Выпускается только в режиме файла (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).1035* `body_ref`: Абсолютный путь к файлу `<dir>/<request_id>.response.json`, содержащему неусечённое тело. Генерируется только в файловом режиме (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).
1034* `body_length`: Неусечённая длина тела. Байты UTF-8, когда `OTEL_LOG_RAW_API_BODIES=file:<dir>`, или единицы кода UTF-16, когда `=1`1036* `body_length`: Длина неусечённого тела. В байтах UTF-8 при `OTEL_LOG_RAW_API_BODIES=file:<dir>` или в кодовых единицах UTF-16 при `=1`
1035* `body_truncated`: `"true"`, когда произошло встроенное усечение. Отсутствует в режиме файла и когда усечение не произошло.1037* `body_truncated`: `"true"`, если произошло встроенное усечение. Отсутствует в файловом режиме и если усечения не было.
1036* `model`: Идентификатор модели1038* `model`: Идентификатор модели
1037* `query_source`: Подсистема, которая выдала запрос1039* `query_source`: Подсистема, отправившая запрос
1038* `request_id`: ID запроса API, например `"req_011..."`, описанный в [Атрибуты корреляции событий](#event-correlation-attributes).1040* `request_id`: ID API-запроса, например `"req_011..."`, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes).
1039* `request_body_id`: `request_body_id` события [`api_request_body`](#api-request-body-event), на которое отвечает этот ответ. Требуется Claude Code v2.1.274 или позже1041* `request_body_id`: `request_body_id` [события `api_request_body`](#api-request-body-event), на которое отвечает этот ответ. Требуется Claude Code v2.1.274 или новее
1040* `message.id`: ID сообщения, который API назначил ответу, поле `id` тела ответа. Требуется Claude Code v2.1.274 или позже1042* `message.id`: ID сообщения, назначенный ответу API, — поле `id` тела ответа. Требуется Claude Code v2.1.274 или новее
1041* `message.uuid`: UUID финальной записи транскрипта ответа. Вместе с `request_body_id` он связывает сообщение транскрипта с телами запроса и ответа позади него. Требуется Claude Code v2.1.274 или позже1043* `message.uuid`: UUID последней записи ответа в транскрипте. Вместе с `request_body_id` связывает сообщение транскрипта с телами запроса и ответа, стоящими за ним. Требуется Claude Code v2.1.274 или новее
1042 1044
1043<h4 id="tool-decision-event">1045<h4 id="tool-decision-event">
1044 Событие решения инструмента1046 Событие решения по инструменту
1045</h4>1047</h4>
1046 1048
1047Регистрируется, когда принимается решение о разрешении инструмента (принять/отклонить).1049Записывается в лог, когда принимается решение о разрешении для инструмента (принять/отклонить).
1048 1050
1049**Имя события**: `claude_code.tool_decision`1051**Имя события**: `claude_code.tool_decision`
1050 1052
1052 1054
1053* Все [стандартные атрибуты](#standard-attributes)1055* Все [стандартные атрибуты](#standard-attributes)
1054* `event.name`: `"tool_decision"`1056* `event.name`: `"tool_decision"`
1055* `event.timestamp`: Временная метка ISO 86011057* `event.timestamp`: Метка времени ISO 8601
1056* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1058* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1057* `tool_name`: Имя инструмента (например, "Read", "Edit", "Write", "NotebookEdit")1059* `tool_name`: Имя инструмента (например, "Read", "Edit", "Write", "NotebookEdit")
1058* `tool_use_id`: Уникальный идентификатор для этого вызова инструмента. Совпадает с `tool_use_id`, переданным в hooks, позволяя корреляцию между событиями OTel и данными, захваченными hooks.1060* `tool_use_id`: Уникальный идентификатор этого вызова инструмента. Совпадает с `tool_use_id`, передаваемым хукам, что позволяет сопоставлять события OTel с данными, собранными хуками.
1059* `decision`: Либо `"accept"`, либо `"reject"`1061* `decision`: Либо `"accept"`, либо `"reject"`
1060* `tool_source`: Всегда присутствует. Происхождение инструмента как закрытый набор значений, созданных CLI. Требуется Claude Code v2.1.214 или позже1062* `tool_source`: Присутствует всегда. Происхождение инструмента в виде закрытого набора значений, заданных CLI:
1061 * `"builtin"`: собственные инструменты CLI1063 * `"builtin"`: собственные инструменты CLI
1062 * `"mcp"`: серверы MCP в целом1064 * `"mcp"`: MCP-серверы в целом
1063 * `"sdk_host_builtin_mcp"`: встроенный в процесс сервер, встроенный в сам Claude Desktop, в сеансе, которым владеет Claude Desktop. Claude Desktop владеет сеансом, который он запустил из одной из своих собственных точек входа, `claude-desktop`, `claude-desktop-3p` или `local-agent`, когда этот сеанс не является вложенным дочерним; вложенные сеансы, включая сеансы, которые сам Claude Code порождает, сообщают эти серверы как `"mcp"`1065 * `"sdk_host_builtin_mcp"`: внутрипроцессный сервер, встроенный в сам Claude Desktop, в сессии, которой владеет Claude Desktop. Claude Desktop владеет сессией, которую запустил из одной из своих точек входа — `claude-desktop`, `claude-desktop-3p` или `local-agent`, — если эта сессия не является вложенной дочерней; вложенные сессии, включая сессии, которые порождает сам Claude Code, сообщают эти серверы как `"mcp"`
1064* `source`: Откуда пришло решение:1066* `source`: Источник решения:
1065 * `"config"`: Решено автоматически без запроса, на основе параметров проекта, правил разрешения или запрета в личных параметрах пользователя, политики, управляемой предприятием, флагов `--allowedTools` или `--disallowedTools`, активного режима разрешения, предоставления области действия сеанса из более раннего запроса в том же интерактивном сеансе CLI или потому что инструмент по своей природе безопасен. Событие не указывает, какой из этих источников совпал. Claude Code также сообщает `"config"`, когда сам запрос подсказки разрешения не удаётся, например когда обратный вызов [`canUseTool`](/docs/ru/agent-sdk/typescript#canusetool) Agent SDK или инструмент [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) возвращает недействительный результат, или когда входной поток закрывается во время ожидания запроса. До v2.1.216 Claude Code сообщал эти сбои как `"user_reject"`.1067 * `"config"`: Решение принято автоматически без запроса одним из следующих источников:
1066 * `"hook"`: Hook `PreToolUse` или `PermissionRequest` вернул решение.1068
1067 * `"user_permanent"`: Выпускается, когда пользователь выбрал "Да, и больше не спрашивать для ..." в подсказке разрешения, которая сохраняет правило разрешения в его личные параметры. В интерактивном CLI это выпускается только для самого этого выбора; более поздние вызовы, которые совпадают с сохранённым правилом, выпускают `"config"` вместо этого. В сеансах Agent SDK или неинтерактивных `-p`, как исходный выбор, так и более поздние совпадения правил выпускают `"user_permanent"`. Рассматривается как принятие.1069 * Настройки проекта
1068 * `"user_temporary"`: Выпускается, когда пользователь выбрал "Да" в подсказке разрешения для одобрения в один раз, или выбрал опцию, которая предоставляет доступ на оставшуюся часть сеанса в подсказке редактирования или чтения файла. В интерактивном CLI это выпускается только для самого выбора; более поздние вызовы, разрешённые этим предоставлением области действия сеанса, выпускают `"config"` вместо этого. В сеансах Agent SDK или неинтерактивных `-p`, как выбор, так и более поздние совпадения выпускают `"user_temporary"`. Рассматривается как принятие.1070 * Правила разрешения или запрета в личных настройках пользователя
1069 * `"user_abort"`: Выпускается, когда пользователь отклонил подсказку разрешения без ответа. В сеансах Agent SDK и неинтерактивных `-p` это включает прерывание хода, пока запрос разрешения `canUseTool` или `--permission-prompt-tool` ожидает; до v2.1.216 Claude Code сообщал это прерывание как `"user_reject"`. Рассматривается как отклонение.1071 * Управляемая политика предприятия
1070 * `"user_reject"`: Выпускается, когда пользователь выбрал "Нет" при запросе. В интерактивном CLI это выпускается только для самого этого выбора; вызовы, которые совпадают с правилом запрета в личных параметрах пользователя, выпускают `"config"` вместо этого. В сеансах Agent SDK или неинтерактивных `-p` вызовы, которые совпадают с правилом запрета в личных параметрах, выпускают `"user_reject"`. Рассматривается как отклонение.1072 * Флаги `--allowedTools` или `--disallowedTools`
1071* `tool_parameters` (когда `OTEL_LOG_TOOL_DETAILS=1`): Строка JSON, содержащая параметры, специфичные для инструмента. Та же форма, что и [Событие результата инструмента](#tool-result-event), минус поля после выполнения, такие как `git_commit_id`. Значения могут отличаться от `tool_result` для принятого вызова, если решение о разрешении переписывает вход инструмента через `updatedInput`. Используйте этот атрибут, чтобы увидеть, какая команда была отклонена, когда `decision` — это `"reject"`.1073 * Активный режим разрешений
1072 * Для инструментов `"sdk_host_builtin_mcp"`: `mcp_server_name` и `mcp_tool_name` включаются даже когда `OTEL_LOG_TOOL_DETAILS` отключён, потому что приложение хоста определяет эти имена; без них отклонённый вызов одного из этих встроенных серверов был бы неатрибутируемым в потоке по умолчанию. Для серверов MCP, настроенных пользователем, `tool_name` события всегда является буквальным `"mcp_tool"`, и имена сервера и инструмента появляются только в `tool_parameters` с включённым флагом; содержание аргумента требует флага везде. Требуется Claude Code v2.1.214 или позже1074 * Классификатор авторежима, вердикт которого то же событие записывает в `classifier_verdict`
1073 * Для инструмента Bash: включает `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Инструмент bash рабочей области приложения для рабочего стола также сообщает `tool_name` как `Bash`, но включает только `bash_command`, `full_command` и `timeout`1075 * Разрешение на оставшуюся часть сессии, выданное при более раннем запросе разрешения в той же интерактивной сессии CLI
1076 * Изначальная безопасность инструмента
1077
1078 Значение `source` не указывает, какой из этих источников сработал.
1079
1080 Claude Code также сообщает `"config"`, когда сбой происходит в самом запросе разрешения. Например, этот запрос завершается сбоем, когда обратный вызов [`canUseTool`](/docs/ru/agent-sdk/typescript#canusetool) в Agent SDK или инструмент [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) возвращает недопустимый результат либо когда входной поток закрывается, пока запрос ожидает ответа. До v2.1.216 Claude Code сообщал об этих сбоях как `"user_reject"`.
1081 * `"hook"`: Решение вернул хук `PreToolUse` или `PermissionRequest`.
1082 * `"user_permanent"`: Генерируется, когда пользователь выбрал "Yes, and don't ask again for ..." в запросе разрешения, что сохраняет правило разрешения в его личных настройках. В интерактивном CLI генерируется только для самого этого выбора; последующие вызовы, соответствующие сохранённому правилу, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` и первоначальный выбор, и последующие совпадения с правилом генерируют `"user_permanent"`. Считается принятием.
1083 * `"user_temporary"`: Генерируется, когда пользователь выбрал "Yes" в запросе разрешения для однократного подтверждения или выбрал вариант, предоставляющий доступ на оставшуюся часть сессии, в запросе на редактирование или чтение файла. В интерактивном CLI генерируется только для самого выбора; последующие вызовы, разрешённые этим разрешением на уровне сессии, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` и выбор, и последующие совпадения генерируют `"user_temporary"`. Считается принятием.
1084 * `"user_abort"`: Генерируется, когда пользователь закрыл запрос разрешения, не ответив. В сессиях Agent SDK и неинтерактивных сессиях `-p` сюда относится прерывание хода, пока ожидает ответа запрос разрешения `canUseTool` или `--permission-prompt-tool`; до v2.1.216 Claude Code сообщал о таком прерывании как `"user_reject"`. Считается отклонением.
1085 * `"user_reject"`: Генерируется, когда пользователь выбрал "No" в ответ на запрос. В интерактивном CLI генерируется только для самого этого выбора; вызовы, соответствующие правилу запрета в личных настройках пользователя, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` вызовы, соответствующие правилу запрета в личных настройках, генерируют `"user_reject"`. Считается отклонением.
1086* `classifier_verdict`: Вердикт [классификатора](/docs/ru/permission-modes#how-the-classifier-evaluates-actions) авторежима для вызова или причина, по которой Claude Code отклонил вызов, если вердикт не был получен. Требуется Claude Code v2.1.301 или новее
1087
1088 * `"allow"`: классификатор одобрил вызов
1089 * `"block"`: классификатор заблокировал вызов. Проверка классификатором, завершившаяся сбоем на полпути, тоже может закончиться `"block"`, поэтому частичный сбой классификатора может проявляться как увеличение числа блокировок, а не как `"unavailable"`
1090 * `"no_verdict"`: проверка выполнилась, но [не дала пригодного вердикта](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action), поэтому Claude Code отклонил вызов. Отклонение не означает, что классификатор счёл вызов небезопасным
1091 * `"unavailable"`: запрос к классификатору завершился сбоем, например из-за ограничения частоты запросов, таймаута или ошибки подключения, поэтому Claude Code отклонил вызов. При [серверной проверке классификатором](/docs/ru/permission-modes#server-side-classifier-review) это значение также помечает вызов, отклонённый потому, что [сервер не вернул вердикт безопасности](/docs/ru/errors#the-server-returned-no-safety-verdict)
1092
1093 Атрибут также появляется в вызовах режима планирования, когда [классификатор проверяет команды в режиме планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode). Атрибут отсутствует в следующих случаях:
1094
1095 * Вызов был решён [правилом разрешений](/docs/ru/permissions#manage-permissions) на разрешение или запрет
1096 * Claude Code одобрил вызов в авторежиме, не обращаясь к классификатору
1097 * Пользователь ответил на запрос, который Claude Code показал после [повторных блокировок](/docs/ru/permission-modes#repeated-block-thresholds)
1098 * В запуске `-p` без `--permission-prompt-tool` Claude Code отклонил вызов после повторных блокировок, потому что некому было ответить на запрос. Такое событие сообщает `decision` как `"reject"` и `source` как `"config"`
1099* `classifier_category` (при `OTEL_LOG_TOOL_DETAILS=1`): Имя [встроенного правила](/docs/ru/auto-mode-config#inspect-the-defaults-and-your-effective-config), которое назвал классификатор, заблокировав вызов, в нижнем регистре с подчёркиваниями, например `"data_exfiltration"` для правила Data Exfiltration. Требуется Claude Code v2.1.301 или новее. Атрибут присутствует, когда выполняются все следующие условия:
1100 * `classifier_verdict` равно `"block"`
1101 * Claude Code отправил запрос классификатору сам, а не использовал [серверную проверку классификатором](/docs/ru/permission-modes#server-side-classifier-review)
1102 * Классификатор назвал ровно одно правило, и это встроенное правило, а не написанное вами
1103* `permission_mode`: [Режим разрешений](/docs/ru/permission-modes), активный в момент начала проверки разрешения для этого вызова: `"default"`, `"plan"`, `"acceptEdits"`, `"bypassPermissions"`, `"dontAsk"` или `"auto"`. Ручной режим отображается как `"default"`. Вызов [субагента](/docs/ru/sub-agents#permission-modes) сообщает режим разрешений субагента, а не сессии. Требуется Claude Code v2.1.301 или новее
1104* `tool_parameters` (при `OTEL_LOG_TOOL_DETAILS=1`): Строка JSON с параметрами, специфичными для инструмента. Та же структура, что и в [Событии результата инструмента](#tool-result-event), за исключением полей, появляющихся после выполнения, например `git_commit_id`. Значения могут отличаться от `tool_result` для принятого вызова, если решение о разрешении переписывает входные данные инструмента через `updatedInput`. Используйте этот атрибут, чтобы увидеть, какая команда была отклонена, когда `decision` равно `"reject"`.
1105 * Для инструментов `"sdk_host_builtin_mcp"`: `mcp_server_name` и `mcp_tool_name` включаются, даже когда `OTEL_LOG_TOOL_DETAILS` выключена, поскольку эти имена определяет хост-приложение; без них отклонённый вызов одного из этих встроенных серверов было бы невозможно атрибутировать в потоке по умолчанию. Для MCP-серверов, настроенных пользователем, `tool_name` события всегда равно буквальному `"mcp_tool"`, а имена сервера и инструмента появляются только в `tool_parameters` при включённом флаге; для содержимого аргументов флаг требуется везде.
1106 * Для инструмента Bash: включает `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Инструмент bash рабочего пространства в настольном приложении также сообщает `tool_name` как `Bash`, но включает только `bash_command`, `full_command` и `timeout`
1074 * Для инструментов MCP: включает `mcp_server_name`, `mcp_tool_name`1107 * Для инструментов MCP: включает `mcp_server_name`, `mcp_tool_name`
1075 * Для инструмента Skill: включает `skill_name`1108 * Для инструмента Skill: включает `skill_name`
1076 * Для инструмента Agent или устаревшего инструмента Task: включает `subagent_type`1109 * Для инструмента Agent или устаревшего инструмента Task: включает `subagent_type`
1077 1110
1078<h4 id="permission-mode-changed-event">1111<h4 id="permission-mode-changed-event">
1079 Событие изменения режима разрешения1112 Событие изменения режима разрешений
1080</h4>1113</h4>
1081 1114
1082Регистрируется, когда режим разрешения меняется, например из цикла `Shift+Tab`, выхода из режима плана или проверки ворот автоматического режима.1115Записывается в лог при изменении режима разрешений, например при переключении через `Shift+Tab`, выходе из режима планирования или проверке шлюза авторежима.
1116
1117Чтобы сгруппировать вызовы инструментов по режиму разрешений, в котором проверялся каждый из них, используйте `permission_mode` в [Событии решения по инструменту](#tool-decision-event).
1083 1118
1084**Имя события**: `claude_code.permission_mode_changed`1119**Имя события**: `claude_code.permission_mode_changed`
1085 1120
1087 1122
1088* Все [стандартные атрибуты](#standard-attributes)1123* Все [стандартные атрибуты](#standard-attributes)
1089* `event.name`: `"permission_mode_changed"`1124* `event.name`: `"permission_mode_changed"`
1090* `event.timestamp`: Временная метка ISO 86011125* `event.timestamp`: Метка времени ISO 8601
1091* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1126* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1092* `from_mode`: Предыдущий режим разрешения, например `"default"`, `"plan"`, `"acceptEdits"`, `"auto"` или `"bypassPermissions"`1127* `from_mode`: Предыдущий режим разрешений, например `"default"`, `"plan"`, `"acceptEdits"`, `"auto"` или `"bypassPermissions"`
1093* `to_mode`: Новый режим разрешения1128* `to_mode`: Новый режим разрешений
1094* `trigger`: причина изменения. Одно из значений: `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"` или `"auto_opt_in"`. Отсутствует для некоторых изменений, например когда SDK задаёт режим разрешений через [`setPermissionMode()`](/docs/ru/agent-sdk/typescript#query-object)1129* `trigger`: Причина изменения, например `"shift_tab"`, `"exit_plan_mode"` или `"auto_gate_denied"`. Отсутствует для некоторых изменений, например когда SDK задаёт режим разрешений через [`setPermissionMode()`](/docs/ru/agent-sdk/typescript#query-object)
1095 1130
1096<h4 id="auth-event">1131<h4 id="auth-event">
1097 Событие аутентификации1132 Событие аутентификации
1098</h4>1133</h4>
1099 1134
1100Регистрируется, когда `/login` или `/logout` завершается.1135Записывается в лог по завершении `/login` или `/logout`.
1101 1136
1102**Имя события**: `claude_code.auth`1137**Имя события**: `claude_code.auth`
1103 1138
1105 1140
1106* Все [стандартные атрибуты](#standard-attributes)1141* Все [стандартные атрибуты](#standard-attributes)
1107* `event.name`: `"auth"`1142* `event.name`: `"auth"`
1108* `event.timestamp`: Временная метка ISO 86011143* `event.timestamp`: Метка времени ISO 8601
1109* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1144* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1110* `action`: `"login"` или `"logout"`1145* `action`: `"login"` или `"logout"`
1111* `success`: `"true"` или `"false"`1146* `success`: `"true"` или `"false"`
1112* `auth_method`: Метод аутентификации, например `"oauth"`1147* `auth_method`: Метод аутентификации, например `"oauth"`
1113* `error_category`: Категориальный вид ошибки, когда действие не удалось. Необработанное сообщение об ошибке никогда не включается1148* `error_category`: Категория ошибки, если действие завершилось сбоем. Исходное сообщение об ошибке никогда не включается
1114* `status_code`: Код состояния HTTP как строка, когда действие не удалось с ошибкой HTTP1149* `status_code`: Код состояния HTTP в виде строки, если действие завершилось сбоем с ошибкой HTTP
1115 1150
1116<h4 id="mcp-server-connection-event">1151<h4 id="mcp-server-connection-event">
1117 Событие подключения сервера MCP1152 Событие подключения MCP-сервера
1118</h4>1153</h4>
1119 1154
1120Регистрируется, когда сервер MCP подключается, отключается или не может подключиться.1155Записывается в лог, когда MCP-сервер подключается, отключается или не может подключиться.
1121 1156
1122**Имя события**: `claude_code.mcp_server_connection`1157**Имя события**: `claude_code.mcp_server_connection`
1123 1158
1125 1160
1126* Все [стандартные атрибуты](#standard-attributes)1161* Все [стандартные атрибуты](#standard-attributes)
1127* `event.name`: `"mcp_server_connection"`1162* `event.name`: `"mcp_server_connection"`
1128* `event.timestamp`: Временная метка ISO 86011163* `event.timestamp`: Метка времени ISO 8601
1129* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1164* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1130* `status`: `"connected"`, `"failed"` или `"disconnected"`1165* `status`: `"connected"`, `"failed"` или `"disconnected"`
1131* `transport_type`: Транспорт сервера, например `"stdio"`, `"sse"` или `"http"`1166* `transport_type`: Транспорт сервера, например `"stdio"`, `"sse"` или `"http"`
1132* `server_scope`: Область, в которой настроен сервер, например `"user"`, `"project"` или `"local"`1167* `server_scope`: Область действия, на уровне которой настроен сервер, например `"user"`, `"project"` или `"local"`
1133* `duration_ms`: Длительность попытки подключения в миллисекундах1168* `duration_ms`: Длительность попытки подключения в миллисекундах
1134* `error_code`: Код ошибки, когда подключение не удалось1169* `error_code`: Код ошибки, если подключение не удалось
1135* `is_plugin`: `true`, когда сервер предоставляется плагином, `false` в противном случае1170* `is_plugin`: `true`, если сервер предоставлен плагином, иначе `false`
1136* `plugin_id_hash` (когда `is_plugin` — это `true`): Стабильный хеш имени плагина и маркетплейса для группировки событий по плагину без раскрытия имени. Claude Code вычисляет его, как описано в [событии загрузки плагина](#plugin-loaded-event)1171* `plugin_id_hash` (когда `is_plugin` равно `true`): Стабильный хеш имени плагина и маркетплейса для группировки событий по плагинам без раскрытия имени. Claude Code вычисляет его так, как описано в разделе [Событие загрузки плагина](#plugin-loaded-event)
1137* `plugin.name` (когда `is_plugin` — это `true`): Имя плагина, который предоставляет сервер. Для плагинов третьих сторон это буквальная строка `"third-party"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`; это защищает имена плагинов третьих сторон от появления в логах по умолчанию. Плагины из официальных источников Anthropic всегда идентифицируются по имени. Атрибуты `plugin_id_hash` и `plugin.name` передаются в ваш собственный бэкенд мониторинга и не отправляются в Anthropic1172* `plugin.name` (когда `is_plugin` равно `true`): Имя плагина, предоставляющего сервер. Для сторонних плагинов это буквальная строка `"third-party"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`; это защищает имена сторонних плагинов от попадания в логи по умолчанию. Плагины из официальных источников Anthropic всегда идентифицируются по имени. Атрибуты `plugin_id_hash` и `plugin.name` передаются в ваш собственный бэкенд мониторинга и не отправляются в Anthropic
1138* `server_name` (когда `OTEL_LOG_TOOL_DETAILS=1`): Настроенное имя сервера1173* `server_name` (при `OTEL_LOG_TOOL_DETAILS=1`): Настроенное имя сервера
1139* `error` (когда `OTEL_LOG_TOOL_DETAILS=1`): Полное сообщение об ошибке, когда подключение не удалось1174* `error` (при `OTEL_LOG_TOOL_DETAILS=1`): Полное сообщение об ошибке, если подключение не удалось
1140 1175
1141<h4 id="internal-error-event">1176<h4 id="internal-error-event">
1142 Событие внутренней ошибки1177 Событие внутренней ошибки
1143</h4>1178</h4>
1144 1179
1145Регистрируется, когда Claude Code перехватывает неожиданную внутреннюю ошибку. Записываются только имя класса ошибки и код в стиле errno. Сообщение об ошибке и трассировка стека никогда не включаются. Это событие не выпускается при работе с Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry или когда установлен `DISABLE_ERROR_REPORTING`.1180Записывается в лог, когда Claude Code перехватывает непредвиденную внутреннюю ошибку. Записываются только имя класса ошибки и код в стиле errno. Сообщение об ошибке и трассировка стека никогда не включаются. Это событие не генерируется при работе с Amazon Bedrock, Agent Platform от Google Cloud или Microsoft Foundry, а также если задана `DISABLE_ERROR_REPORTING`.
1146 1181
1147**Имя события**: `claude_code.internal_error`1182**Имя события**: `claude_code.internal_error`
1148 1183
1150 1185
1151* Все [стандартные атрибуты](#standard-attributes)1186* Все [стандартные атрибуты](#standard-attributes)
1152* `event.name`: `"internal_error"`1187* `event.name`: `"internal_error"`
1153* `event.timestamp`: Временная метка ISO 86011188* `event.timestamp`: Метка времени ISO 8601
1154* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1189* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1155* `error_name`: Имя класса ошибки, например `"TypeError"` или `"SyntaxError"`1190* `error_name`: Имя класса ошибки, например `"TypeError"` или `"SyntaxError"`
1156* `error_code`: Код errno Node.js, такой как `"ENOENT"`, если присутствует в ошибке1191* `error_code`: Код errno Node.js, например `"ENOENT"`, если он присутствует в ошибке
1157 1192
1158<h4 id="plugin-installed-event">1193<h4 id="plugin-installed-event">
1159 Событие установки плагина1194 Событие установки плагина
1160</h4>1195</h4>
1161 1196
1162Регистрируется, когда плагин завершает установку, как из команды CLI `claude plugin install`, так и из интерактивного пользовательского интерфейса `/plugin`.1197Записывается в лог, когда завершается установка плагина, как через команду CLI `claude plugin install`, так и через интерактивный интерфейс `/plugin`.
1163 1198
1164**Имя события**: `claude_code.plugin_installed`1199**Имя события**: `claude_code.plugin_installed`
1165 1200
1167 1202
1168* Все [стандартные атрибуты](#standard-attributes)1203* Все [стандартные атрибуты](#standard-attributes)
1169* `event.name`: `"plugin_installed"`1204* `event.name`: `"plugin_installed"`
1170* `event.timestamp`: Временная метка ISO 86011205* `event.timestamp`: Метка времени ISO 8601
1171* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1206* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1172* `marketplace.is_official`: `"true"`, если маркетплейс является официальным маркетплейсом Anthropic, `"false"` в противном случае1207* `marketplace.is_official`: `"true"`, если маркетплейс является официальным маркетплейсом Anthropic, иначе `"false"`
1173* `install.trigger`: `"cli"` или `"ui"`1208* `install.trigger`: `"cli"` или `"ui"`
1174* `plugin.name`: Имя установленного плагина. Для маркетплейсов третьих сторон это включается только когда установлен `OTEL_LOG_TOOL_DETAILS=1`1209* `plugin.name`: Имя установленного плагина. Для сторонних маркетплейсов включается только при `OTEL_LOG_TOOL_DETAILS=1`
1175* `plugin.version`: Версия плагина, когда объявлена в записи маркетплейса. Для маркетплейсов третьих сторон это включается только когда установлен `OTEL_LOG_TOOL_DETAILS=1`1210* `plugin.version`: Версия плагина, если она объявлена в записи маркетплейса. Для сторонних маркетплейсов включается только при `OTEL_LOG_TOOL_DETAILS=1`
1176* `marketplace.name`: Маркетплейс, из которого был установлен плагин. Для маркетплейсов третьих сторон это включается только когда установлен `OTEL_LOG_TOOL_DETAILS=1`1211* `marketplace.name`: Маркетплейс, из которого установлен плагин. Для сторонних маркетплейсов включается только при `OTEL_LOG_TOOL_DETAILS=1`
1177 1212
1178<h4 id="plugin-loaded-event">1213<h4 id="plugin-loaded-event">
1179 Событие загрузки плагина1214 Событие загрузки плагина
1180</h4>1215</h4>
1181 1216
1182Регистрируется один раз на включённый плагин при запуске сеанса. Используйте это событие для инвентаризации активных плагинов в вашем парке, как дополнение к `plugin_installed`, которое записывает само действие установки.1217Записывается в лог один раз для каждого включённого плагина при запуске сессии. Используйте это событие для инвентаризации активных плагинов в вашем парке в дополнение к `plugin_installed`, которое фиксирует само действие установки.
1183 1218
1184**Имя события**: `claude_code.plugin_loaded`1219**Имя события**: `claude_code.plugin_loaded`
1185 1220
1187 1222
1188* Все [стандартные атрибуты](#standard-attributes)1223* Все [стандартные атрибуты](#standard-attributes)
1189* `event.name`: `"plugin_loaded"`1224* `event.name`: `"plugin_loaded"`
1190* `event.timestamp`: Временная метка ISO 86011225* `event.timestamp`: Метка времени ISO 8601
1191* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1226* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1192* `plugin.name`: имя плагина. Для плагинов вне официального маркетплейса и встроенного пакета значение — это `"third-party"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`1227* `plugin.name`: имя плагина. Для плагинов вне официального маркетплейса и встроенного комплекта значение равно `"third-party"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
1193* `marketplace.name`: маркетплейс, из которого был установлен плагин, если известен. Скрыт в `"third-party"` при том же условии, что и `plugin.name`1228* `marketplace.name`: маркетплейс, из которого установлен плагин, если он известен. Заменяется на `"third-party"` при том же условии, что и `plugin.name`
1194* `plugin.version`: версия из манифеста плагина. Включается только когда имя не скрыто и манифест объявляет версию1229* `plugin.version`: версия из манифеста плагина. Включается, только если имя не скрыто и манифест объявляет версию
1195* `plugin.scope`: категория происхождения для плагина: `"official"`, `"community"`, `"org"`, `"user-local"` или `"default-bundle"`1230* `plugin.scope`: категория происхождения плагина: `"official"`, `"community"`, `"org"`, `"user-local"` или `"default-bundle"`
1196* `enabled_via`: как плагин стал включённым: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"` или `"user-install"`. Значение `"admin-install"` означает, что плагин установлен как обязательный или автоустановка для вашей организации в [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory). До v2.1.246 Claude Code сообщал эти плагины как `"user-install"` или `"seed-mount"`1231* `enabled_via`: способ включения плагина: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"` или `"user-install"`. Значение `"admin-install"` означает, что плагин задан как обязательный или автоматически устанавливаемый для вашей организации в [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory). До v2.1.246 Claude Code сообщал такие плагины как `"user-install"` или `"seed-mount"`
1197* `plugin_id_hash`: детерминированный хеш имени плагина и маркетплейса, отправляемый только вашему настроенному экспортёру. Позволяет вам считать отдельные плагины третьих сторон, загруженные в вашем парке, без записи их имён. Для [плагинов, синхронизированных из claude.ai](/docs/ru/plugins/loading#synced-plugins), Claude Code хеширует имя плагина с именем маркетплейса, которое claude.ai сообщает для плагина, или с `synced` в противном случае. До v2.1.246 Claude Code не использовал имя маркетплейса claude.ai сообщает в хеше1232* `plugin_id_hash`: детерминированный хеш имени плагина и маркетплейса, отправляемый только в настроенный вами экспортёр. Позволяет подсчитать количество различных сторонних плагинов, загруженных в вашем парке, без записи их имён. Для [плагинов, синхронизированных из claude.ai](/docs/ru/plugins/loading#synced-plugins), Claude Code хеширует имя плагина вместе с именем маркетплейса, которое claude.ai сообщает для плагина, или с `synced` в противном случае. До v2.1.246 Claude Code не использовал в хеше имя маркетплейса, сообщаемое claude.ai
1198* `has_hooks`: предоставляет ли плагин hooks1233* `has_hooks`: предоставляет ли плагин хуки
1199* `has_mcp`: предоставляет ли плагин серверы MCP1234* `has_mcp`: предоставляет ли плагин MCP-серверы
1200* `host_owned_mcp`: `true`, если хост SDK управляет MCP-подключениями этого плагина и Claude Code пропустил чтение конфигурации MCP-серверов плагина, иначе `false`1235* `host_owned_mcp`: `true`, когда хост SDK управляет подключениями MCP этого плагина и Claude Code пропустил чтение конфигурации MCP-серверов плагина, иначе `false`
1201* `skill_path_count`: количество каталогов навыков, которые объявляет плагин1236* `skill_path_count`: количество каталогов скиллов, объявленных плагином
1202* `command_path_count`: количество каталогов команд, которые объявляет плагин1237* `command_path_count`: количество каталогов команд, объявленных плагином
1203* `agent_path_count`: количество каталогов агентов, которые объявляет плагин1238* `agent_path_count`: количество каталогов агентов, объявленных плагином
1204* `safe_mode`: `"true"`, когда сеанс был запущен с [`--safe-mode`](/docs/ru/cli-reference), `"false"` в противном случае. В безопасном режиме это событие сообщает только настроенный инвентарь; команды, навыки, hooks и серверы MCP плагина не загружаются. Требуется Claude Code v2.1.169 или позже1239* `safe_mode`: `"true"`, если сессия запущена с [`--safe-mode`](/docs/ru/cli-reference), иначе `"false"`. В безопасном режиме это событие сообщает только настроенную инвентаризацию; команды, скиллы, хуки и MCP-серверы плагина не загружаются. Требуется Claude Code v2.1.169 или новее
1205 1240
1206<h4 id="skill-activated-event">1241<h4 id="skill-activated-event">
1207 Событие активации навыка1242 Событие активации скилла
1208</h4>1243</h4>
1209 1244
1210Регистрируется, когда навык вызывается, будь то Claude вызывает его через инструмент Skill или вы запускаете его как команду `/`.1245Записывается в лог при вызове скилла — независимо от того, вызывает ли его Claude через инструмент Skill или вы запускаете его как команду `/`.
1211 1246
1212**Имя события**: `claude_code.skill_activated`1247**Имя события**: `claude_code.skill_activated`
1213 1248
1215 1250
1216* Все [стандартные атрибуты](#standard-attributes)1251* Все [стандартные атрибуты](#standard-attributes)
1217* `event.name`: `"skill_activated"`1252* `event.name`: `"skill_activated"`
1218* `event.timestamp`: Временная метка ISO 86011253* `event.timestamp`: Метка времени ISO 8601
1219* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1254* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1220* `skill.name`: Имя навыка. Для определённых пользователем и навыков плагинов третьих сторон значение — это заполнитель `"custom_skill"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`1255* `skill.name`: Имя скилла. Для скиллов, определённых пользователем, и скиллов сторонних плагинов значение равно заполнителю `"custom_skill"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
1221* `invocation_trigger`: Как был вызван навык (`"user-slash"`, `"claude-proactive"` или `"nested-skill"`)1256* `invocation_trigger`: Способ вызова скилла (`"user-slash"`, `"claude-proactive"` или `"nested-skill"`)
1222* `skill.source`: Откуда был загружен навык (например, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)1257* `skill.source`: Откуда загружен скилл (например, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)
1223* `skill.kind`: `"workflow"`, когда навык является навыком рабочего процесса. Отсутствует в противном случае1258* `skill.kind`: `"workflow"`, если скилл является скиллом workflow. В остальных случаях отсутствует
1224* `plugin.name` (когда `OTEL_LOG_TOOL_DETAILS=1` или плагин из официального маркетплейса): Имя владеющего плагина, когда навык предоставляется плагином1259* `plugin.name` (при `OTEL_LOG_TOOL_DETAILS=1` или если плагин из официального маркетплейса): Имя плагина-владельца, если скилл предоставлен плагином
1225* `marketplace.name` (когда `OTEL_LOG_TOOL_DETAILS=1` или плагин из официального маркетплейса): Маркетплейс, из которого был установлен владеющий плагин, когда навык предоставляется плагином1260* `marketplace.name` (при `OTEL_LOG_TOOL_DETAILS=1` или если плагин из официального маркетплейса): Маркетплейс, из которого установлен плагин-владелец, если скилл предоставлен плагином
1226 1261
1227<h4 id="at-mention-event">1262<h4 id="at-mention-event">
1228 Событие упоминания @1263 Событие упоминания через @
1229</h4>1264</h4>
1230 1265
1231Регистрируется, когда Claude Code разрешает упоминание `@` в запросе. Не каждое упоминание выпускает событие: пути раннего выхода, такие как отказы в разрешении, файлы чрезмерного размера, вложения ссылок PDF и сбои перечисления каталогов, возвращаются без логирования.1266Записывается в лог, когда Claude Code разрешает `@`-упоминание в промпте. Не каждое упоминание генерирует событие: пути раннего выхода, например отказ в разрешении, слишком большие файлы, вложения-ссылки на PDF и сбои получения списка содержимого каталога, завершаются без записи в лог.
1232 1267
1233Каждый раз, когда Claude Code читает промпт, он записывает не более 100 событий с `mention_type`, равным `"agent"`, и 100 — с `"mcp_resource"`. Упоминания сверх любого из этих лимитов по-прежнему разрешаются, но не генерируют событий.1268Каждый раз, когда Claude Code читает промпт, он записывает в лог не более 100 событий с `mention_type`, равным `"agent"`, и 100 — с `"mcp_resource"`. Упоминания сверх любого из этих лимитов по-прежнему разрешаются, но событие не генерируют.
1234 1269
1235**Имя события**: `claude_code.at_mention`1270**Имя события**: `claude_code.at_mention`
1236 1271
1238 1273
1239* Все [стандартные атрибуты](#standard-attributes)1274* Все [стандартные атрибуты](#standard-attributes)
1240* `event.name`: `"at_mention"`1275* `event.name`: `"at_mention"`
1241* `event.timestamp`: Временная метка ISO 86011276* `event.timestamp`: Метка времени ISO 8601
1242* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1277* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1243* `mention_type`: Тип упоминания (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). Значение `"peer"` означает, что вы упомянули [один из ваших других сеансов Claude Code](/docs/ru/cross-session-messaging). Требуется Claude Code v2.1.232 или позже1278* `mention_type`: Тип упоминания (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). Значение `"peer"` означает, что вы упомянули [одну из других ваших сессий Claude Code](/docs/ru/cross-session-messaging). Требуется Claude Code v2.1.232 или новее
1244* `success`: Было ли упоминание успешно разрешено (`"true"` или `"false"`)1279* `success`: Успешно ли разрешено упоминание (`"true"` или `"false"`)
1245 1280
1246<h4 id="api-retries-exhausted-event">1281<h4 id="api-retries-exhausted-event">
1247 Событие исчерпания повторных попыток API1282 Событие исчерпания повторных попыток API
1248</h4>1283</h4>
1249 1284
1250Регистрируется один раз, когда запрос API не удаётся после более чем одной попытки. Выпускается вместе с финальным событием `api_error`.1285Записывается в лог один раз, когда API-запрос завершается сбоем после более чем одной попытки. Генерируется вместе с итоговым событием `api_error`.
1251 1286
1252**Имя события**: `claude_code.api_retries_exhausted`1287**Имя события**: `claude_code.api_retries_exhausted`
1253 1288
1255 1290
1256* Все [стандартные атрибуты](#standard-attributes)1291* Все [стандартные атрибуты](#standard-attributes)
1257* `event.name`: `"api_retries_exhausted"`1292* `event.name`: `"api_retries_exhausted"`
1258* `event.timestamp`: Временная метка ISO 86011293* `event.timestamp`: Метка времени ISO 8601
1259* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1294* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1260* `model`: Используемая модель1295* `model`: Использованная модель
1261* `error`: Финальное сообщение об ошибке1296* `error`: Итоговое сообщение об ошибке
1262* `status_code`: Код состояния HTTP как число. Отсутствует для ошибок, не связанных с HTTP.1297* `status_code`: Код состояния HTTP в виде числа. Отсутствует для ошибок, не связанных с HTTP.
1263* `total_attempts`: Общее количество попыток1298* `total_attempts`: Общее количество выполненных попыток
1264* `total_retry_duration_ms`: Общее время на стене во всех попытках1299* `total_retry_duration_ms`: Общее фактическое время по всем попыткам
1265* `speed`: `"fast"` или `"normal"`1300* `speed`: `"fast"` или `"normal"`
1266 1301
1267<h4 id="hook-registered-event">1302<h4 id="hook-registered-event">
1268 Событие регистрации hook1303 Событие регистрации хука
1269</h4>1304</h4>
1270 1305
1271Регистрируется один раз на настроенный hook при запуске сеанса. Используйте это событие для инвентаризации активных hooks в вашем парке, как дополнение к событиям `hook_execution_start` и `hook_execution_complete` на выполнение.1306Записывается в лог один раз для каждого настроенного хука при запуске сессии. Используйте это событие для инвентаризации активных хуков в вашем парке в дополнение к событиям `hook_execution_start` и `hook_execution_complete`, генерируемым при каждом выполнении.
1272 1307
1273**Имя события**: `claude_code.hook_registered`1308**Имя события**: `claude_code.hook_registered`
1274 1309
1276 1311
1277* Все [стандартные атрибуты](#standard-attributes)1312* Все [стандартные атрибуты](#standard-attributes)
1278* `event.name`: `"hook_registered"`1313* `event.name`: `"hook_registered"`
1279* `event.timestamp`: Временная метка ISO 86011314* `event.timestamp`: Метка времени ISO 8601
1280* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1315* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1281* `hook_event`: тип события hook, например `"PreToolUse"` или `"PostToolUse"`1316* `hook_event`: тип события хука, например `"PreToolUse"` или `"PostToolUse"`
1282* `hook_type`: тип реализации hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"` или `"agent"`1317* `hook_type`: тип реализации хука: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"` или `"agent"`
1283* `hook_source`: где определён hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"` или `"pluginHook"`1318* `hook_source`: где определён хук: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"` или `"pluginHook"`
1284* `safe_mode`: `"true"`, когда сеанс был запущен с [`--safe-mode`](/docs/ru/cli-reference), `"false"` в противном случае. Требуется Claude Code v2.1.169 или позже1319* `safe_mode`: `"true"`, если сессия запущена с [`--safe-mode`](/docs/ru/cli-reference), иначе `"false"`. Требуется Claude Code v2.1.169 или новее
1285* `hook_matcher` (когда `OTEL_LOG_TOOL_DETAILS=1`): строка сопоставления из конфигурации hook, когда она установлена1320* `hook_matcher` (при `OTEL_LOG_TOOL_DETAILS=1`): строка matcher из конфигурации хука, если она задана
1286* `plugin.name` (когда `hook_source` — это `"pluginHook"`): имя участвующего плагина. Для плагинов вне официального маркетплейса и встроенного пакета значение — это `"third-party"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`1321* `plugin.name` (когда `hook_source` равно `"pluginHook"`): имя плагина, предоставившего хук. Для плагинов вне официального маркетплейса и встроенного комплекта значение равно `"third-party"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
1287* `plugin_id_hash` (когда `hook_source` — это `"pluginHook"`): детерминированный хеш имени плагина и маркетплейса, отправляемый только вашему настроенному экспортёру. Позволяет вам считать отдельные участвующие плагины без записи их имён. Claude Code вычисляет его, как описано в [событии загрузки плагина](#plugin-loaded-event)1322* `plugin_id_hash` (когда `hook_source` равно `"pluginHook"`): детерминированный хеш имени плагина и маркетплейса, отправляемый только в настроенный вами экспортёр. Позволяет подсчитать количество различных плагинов, предоставивших хуки, без записи их имён. Claude Code вычисляет его так, как описано в разделе [Событие загрузки плагина](#plugin-loaded-event)
1288 1323
1289<h4 id="hook-execution-start-event">1324<h4 id="hook-execution-start-event">
1290 Событие начала выполнения hook1325 Событие начала выполнения хуков
1291</h4>1326</h4>
1292 1327
1293Регистрируется, когда один или несколько hooks начинают выполняться для события hook.1328Записывается в лог, когда для события хука начинают выполняться один или несколько хуков.
1294 1329
1295**Имя события**: `claude_code.hook_execution_start`1330**Имя события**: `claude_code.hook_execution_start`
1296 1331
1298 1333
1299* Все [стандартные атрибуты](#standard-attributes)1334* Все [стандартные атрибуты](#standard-attributes)
1300* `event.name`: `"hook_execution_start"`1335* `event.name`: `"hook_execution_start"`
1301* `event.timestamp`: Временная метка ISO 86011336* `event.timestamp`: Метка времени ISO 8601
1302* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1337* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1303* `hook_event`: Тип события hook, например `"PreToolUse"` или `"PostToolUse"`1338* `hook_event`: Тип события хука, например `"PreToolUse"` или `"PostToolUse"`
1304* `hook_name`: Полное имя hook, включая сопоставление, например `"PreToolUse:Write"`1339* `hook_name`: Полное имя хука, включая matcher, например `"PreToolUse:Write"`
1305* `num_hooks`: Количество совпадающих команд hook1340* `num_hooks`: Количество подходящих команд хуков
1306* `managed_only`: `"true"`, когда разрешены только hooks управляемой политики1341* `managed_only`: `"true"`, если разрешены только хуки управляемой политики
1307* `hook_source`: `"policySettings"` или `"merged"`1342* `hook_source`: `"policySettings"` или `"merged"`
1308* `safe_mode`: `"true"`, когда сеанс был запущен с [`--safe-mode`](/docs/ru/cli-reference), `"false"` в противном случае. Требуется Claude Code v2.1.169 или позже1343* `safe_mode`: `"true"`, если сессия запущена с [`--safe-mode`](/docs/ru/cli-reference), иначе `"false"`. Требуется Claude Code v2.1.169 или новее
1309* `hook_definitions`: Конфигурация hook, сериализованная в JSON. Включается только когда включены как детальная бета-трассировка, так и `OTEL_LOG_TOOL_DETAILS=1`1344* `hook_definitions`: Конфигурация хука в формате JSON. Включается, только если включены и подробная бета-трассировка, и `OTEL_LOG_TOOL_DETAILS=1`
1310 1345
1311<h4 id="hook-execution-complete-event">1346<h4 id="hook-execution-complete-event">
1312 Событие завершения выполнения hook1347 Событие завершения выполнения хуков
1313</h4>1348</h4>
1314 1349
1315Регистрируется, когда все hooks для события hook завершены.1350Записывается в лог, когда все хуки для события хука завершили работу.
1316 1351
1317**Имя события**: `claude_code.hook_execution_complete`1352**Имя события**: `claude_code.hook_execution_complete`
1318 1353
1320 1355
1321* Все [стандартные атрибуты](#standard-attributes)1356* Все [стандартные атрибуты](#standard-attributes)
1322* `event.name`: `"hook_execution_complete"`1357* `event.name`: `"hook_execution_complete"`
1323* `event.timestamp`: Временная метка ISO 86011358* `event.timestamp`: Метка времени ISO 8601
1324* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1359* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1325* `hook_event`: Тип события hook1360* `hook_event`: Тип события хука
1326* `hook_name`: Полное имя hook, включая сопоставление1361* `hook_name`: Полное имя хука, включая matcher
1327* `num_hooks`: Количество совпадающих команд hook1362* `num_hooks`: Количество подходящих команд хуков
1328* `num_success`: Количество, которое завершилось успешно1363* `num_success`: Количество успешно завершившихся
1329* `num_blocking`: Количество, которое вернуло решение блокировки1364* `num_blocking`: Количество вернувших блокирующее решение
1330* `num_non_blocking_error`: Количество, которое не удалось без блокировки1365* `num_non_blocking_error`: Количество завершившихся сбоем без блокировки
1331* `num_cancelled`: Количество отменено до завершения1366* `num_cancelled`: Количество отменённых до завершения
1332* `total_duration_ms`: Длительность на стене всех совпадающих hooks1367* `total_duration_ms`: Фактическая длительность выполнения всех подходящих хуков
1333* `stdout_chars`: Общее количество символов stdout в совпадающих hooks, которые успешно завершились. Требуется Claude Code v2.1.280 или позже1368* `stdout_chars`: Общее количество символов stdout по всем успешно выполненным подходящим хукам. Требуется Claude Code v2.1.280 или новее
1334* `additional_context_chars`: Общее количество символов `additionalContext`, возвращённых совпадающими hooks. Требуется Claude Code v2.1.280 или позже1369* `additional_context_chars`: Общее количество символов `additionalContext`, возвращённых подходящими хуками. Требуется Claude Code v2.1.280 или новее
1335* `system_message_chars`: Общее количество символов `systemMessage`, возвращённых совпадающими hooks. Требуется Claude Code v2.1.280 или позже1370* `system_message_chars`: Общее количество символов `systemMessage`, возвращённых подходящими хуками. Требуется Claude Code v2.1.280 или новее
1336* `initial_user_message_chars`: Общее количество символов `initialUserMessage`, возвращённых совпадающими hooks. Требуется Claude Code v2.1.280 или позже1371* `initial_user_message_chars`: Общее количество символов `initialUserMessage`, возвращённых подходящими хуками. Требуется Claude Code v2.1.280 или новее
1337* `num_outputs_persisted`: Количество выходов hook свыше [10 000-символьного лимита](/docs/ru/hooks#json-output), которые Claude Code сохранил в файл. Требуется Claude Code v2.1.280 или позже1372* `num_outputs_persisted`: Количество выводов хуков сверх [лимита в 10 000 символов](/docs/ru/hooks#json-output), которые Claude Code сохранил в файл. Требуется Claude Code v2.1.280 или новее
1338* `managed_only`: `"true"`, когда разрешены только hooks управляемой политики1373* `managed_only`: `"true"`, если разрешены только хуки управляемой политики
1339* `hook_source`: `"policySettings"` или `"merged"`1374* `hook_source`: `"policySettings"` или `"merged"`
1340* `safe_mode`: `"true"`, когда сеанс был запущен с [`--safe-mode`](/docs/ru/cli-reference), `"false"` в противном случае. Требуется Claude Code v2.1.169 или позже1375* `safe_mode`: `"true"`, если сессия запущена с [`--safe-mode`](/docs/ru/cli-reference), иначе `"false"`. Требуется Claude Code v2.1.169 или новее
1341* `hook_definitions`: Конфигурация hook, сериализованная в JSON. Включается только когда включены как детальная бета-трассировка, так и `OTEL_LOG_TOOL_DETAILS=1`1376* `hook_definitions`: Конфигурация хука в формате JSON. Включается, только если включены и подробная бета-трассировка, и `OTEL_LOG_TOOL_DETAILS=1`
1342 1377
1343<h4 id="hook-plugin-metrics-event">1378<h4 id="hook-plugin-metrics-event">
1344 Событие метрик hook плагина1379 Событие метрик хуков плагинов
1345</h4>1380</h4>
1346 1381
1347Регистрируется, когда hook плагина официального маркетплейса выпускает метрики на выполнение. Только плагины, установленные из официального маркетплейса Anthropic, могут выпускать эти. Плагины маркетплейса третьих сторон и настроенные пользователем hooks не выпускают в это событие. Используйте это событие для мониторинга поведения плагина, такого как поиск скоростей, затрат и длительностей из вашего собственного стека наблюдаемости.1382Записывается в лог, когда хук плагина из официального маркетплейса генерирует метрики для отдельного вызова. Генерировать их могут только плагины, установленные из официального маркетплейса Anthropic. Плагины из сторонних маркетплейсов и хуки, настроенные пользователем, в это событие данные не передают. Используйте это событие, чтобы отслеживать поведение плагинов, например частоту находок, затраты и длительность, в собственном стеке наблюдаемости.
1348 1383
1349**Имя события**: `claude_code.hook_plugin_metrics`1384**Имя события**: `claude_code.hook_plugin_metrics`
1350 1385
1352 1387
1353* Все [стандартные атрибуты](#standard-attributes)1388* Все [стандартные атрибуты](#standard-attributes)
1354* `event.name`: `"hook_plugin_metrics"`1389* `event.name`: `"hook_plugin_metrics"`
1355* `event.timestamp`: Временная метка ISO 86011390* `event.timestamp`: Метка времени ISO 8601
1356* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1391* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1357* `plugin_id`: идентификатор плагина в форме `<name>@<marketplace>`1392* `plugin_id`: идентификатор плагина в форме `<name>@<marketplace>`
1358* `hook_event`: тип события hook, который выпустил метрики1393* `hook_event`: тип события хука, сгенерировавшего метрики
1359* До 20 ключей метрик, переданных плагином. Имена соответствуют `^[a-z][a-z0-9_]{0,39}$`. Значения — логические или числовые.1394* До 20 ключей метрик, генерируемых плагином. Имена соответствуют `^[a-z][a-z0-9_]{0,39}$`. Значения — логические или числовые.
1360 1395
1361<h4 id="compaction-event">1396<h4 id="compaction-event">
1362 Событие компактирования1397 Событие сжатия контекста
1363</h4>1398</h4>
1364 1399
1365Регистрируется, когда компактирование разговора завершается.1400Записывается в лог по завершении сжатия контекста диалога.
1366 1401
1367**Имя события**: `claude_code.compaction`1402**Имя события**: `claude_code.compaction`
1368 1403
1370 1405
1371* Все [стандартные атрибуты](#standard-attributes)1406* Все [стандартные атрибуты](#standard-attributes)
1372* `event.name`: `"compaction"`1407* `event.name`: `"compaction"`
1373* `event.timestamp`: Временная метка ISO 86011408* `event.timestamp`: Метка времени ISO 8601
1374* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1409* `event.sequence`: счётчик процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1375* `trigger`: `"auto"` или `"manual"`1410* `trigger`: `"auto"` или `"manual"`
1376* `success`: `"true"` или `"false"`1411* `success`: `"true"` или `"false"`
1377* `duration_ms`: Длительность компактирования1412* `duration_ms`: Длительность сжатия контекста
1378* `pre_tokens`: Приблизительный счёт токенов до компактирования1413* `pre_tokens`: Приблизительное количество токенов до сжатия контекста
1379* `post_tokens`: Приблизительный счёт токенов после компактирования1414* `post_tokens`: Приблизительное количество токенов после сжатия контекста
1380* `error`: Сообщение об ошибке, когда компактирование не удалось1415* `error`: Сообщение об ошибке, если сжатие контекста завершилось сбоем
1381* `precompute_reuse`: задаётся, только если `trigger` равно `"manual"`, или для [сжатия при простое](/docs/ru/settings-reference#idlecompaction), которое передаёт `trigger` как `"auto"`. Автосжатие может подготовить сводку в фоновом режиме до заполнения контекстного окна, и этот атрибут фиксирует, использовало ли сжатие эту подготовленную сводку. `"hit"` означает, что она была использована; `"miss_custom_instructions"`, `"miss_hook"` и `"miss_not_ready"` указывают причину, по которой вместо этого была вычислена новая сводка1416* `precompute_reuse`: Задаётся, только когда `trigger` равно `"manual"`, или для [сжатия при простое](/docs/ru/settings-reference#idlecompaction), которое сообщает `trigger` как `"auto"`. Автосжатие может подготовить сводку в фоновом режиме до заполнения контекстного окна, и этот атрибут фиксирует, использовало ли сжатие контекста эту подготовленную сводку. `"hit"` означает, что она была использована повторно; `"miss_custom_instructions"`, `"miss_hook"` и `"miss_not_ready"` указывают причину, по которой вместо этого была вычислена новая сводка
1382 1417
1383<h4 id="subagent-completed-event">1418<h4 id="subagent-completed-event">
1384 Событие завершения подагента1419 Событие завершения субагента
1385</h4>1420</h4>
1386 1421
1387Регистрируется, когда [подагент](/docs/ru/sub-agents) завершает работу и возвращает свой результат в разговор, который его запустил. Используйте его для сворачивания использования инструментов и времени выполнения по типу подагента; для сворачивания токенов или стоимости используйте [счётчик токенов](#token-counter) и [счётчик стоимости](#cost-counter), отфильтрованные по `query_source` `"subagent"`, так как `total_tokens` этого события охватывает только финальный запрос. Категория `"subagent"` также считает запросы из hooks на основе агентов, которые не выпускают событие подагента.1422Записывается, когда [субагент](/docs/ru/sub-agents) завершает работу и возвращает результат в диалог, который его запустил. Используйте его для агрегирования использования инструментов и времени выполнения по типу субагента; для агрегирования токенов или стоимости используйте [счётчик токенов](#token-counter) и [счётчик стоимости](#cost-counter) с фильтром `query_source` `"subagent"`, поскольку `total_tokens` этого события охватывает только последний запрос. Категория `"subagent"` также учитывает запросы от хуков на основе агентов, которые не генерируют событие субагента.
1388 1423
1389**Имя события**: `claude_code.subagent_completed`1424**Имя события**: `claude_code.subagent_completed`
1390 1425
1392 1427
1393* Все [стандартные атрибуты](#standard-attributes)1428* Все [стандартные атрибуты](#standard-attributes)
1394* `event.name`: `"subagent_completed"`1429* `event.name`: `"subagent_completed"`
1395* `event.timestamp`: Временная метка ISO 86011430* `event.timestamp`: временная метка в формате ISO 8601
1396* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1431* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1397* `agent_type`: Тип подагента. Встроенные имена агентов и агенты из официальных плагинов маркетплейса отображаются как есть; другие имена агентов заменяются на `"custom"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`1432* `agent_type`: тип субагента. Имена встроенных агентов и агентов из плагинов официального маркетплейса отображаются как есть; имена других агентов заменяются на `"custom"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
1398* `agent.source`: Откуда пришло определение агента: `built-in`, `plugin` или источник параметров, который определил пользовательского агента, например `userSettings` или `projectSettings`1433* `agent.source`: откуда взято определение агента: `built-in`, `plugin` или источник настроек, определивший пользовательского агента, например `userSettings` или `projectSettings`
1399* `is_built_in`: Является ли подагент встроенным типом агента1434* `is_built_in`: является ли субагент встроенным типом агента
1400* `is_async`: Работал ли подагент в [фоне](/docs/ru/sub-agents#run-subagents-in-foreground-or-background)1435* `is_async`: выполнялся ли субагент в [фоновом режиме](/docs/ru/sub-agents#run-subagents-in-foreground-or-background)
1401* `total_tokens`: Объём токенов финального запроса API подагента: входные, создание кэша, чтение кэша и выходные токены этого одного запроса, примерно размер контекста подагента при завершении. Не сумма по всему запуску1436* `total_tokens`: объём токенов последнего API-запроса субагента: входные токены, токены создания кэша, чтения кэша и выходные токены этого одного запроса, что примерно соответствует размеру контекста субагента на момент завершения. Это не сумма за весь запуск
1402* `total_tool_uses`: Количество вызовов инструментов, которые подагент сделал во всём запуске1437* `total_tool_uses`: количество вызовов инструментов, сделанных субагентом за весь запуск
1403* `duration_ms`: Время выполнения в миллисекундах1438* `duration_ms`: время выполнения в миллисекундах
1404* `model`: Модель, на которую был разрешён подагент для запуска1439* `model`: модель, на которой было определено выполнять субагента
1405* `final_model`: Модель, которая создала финальный ответ подагента, отличающаяся от `model` после переключения во время запуска, такого как резервный вариант. Требуется Claude Code v2.1.212 или позже1440* `final_model`: модель, сформировавшая финальный ответ субагента; отличается от `model` после смены модели в ходе выполнения, например при переключении на резервный вариант
1406* `model_swapped`: Обслуживала ли более одной модели запросы подагента. Требуется Claude Code v2.1.212 или позже1441* `model_swapped`: обслуживала ли запросы субагента более чем одна модель
1407* `plugin_id_hash`, `plugin.name`: Присутствует для агентов, предоставляемых плагинами. Имена плагинов официального маркетплейса отображаются как есть; другие имена плагинов заменяются на `"third-party"`, если не установлен `OTEL_LOG_TOOL_DETAILS=1`1442* `plugin_id_hash`, `plugin.name`: присутствуют для агентов, предоставленных плагинами. Имена плагинов официального маркетплейса отображаются как есть; имена других плагинов заменяются на `"third-party"`, если не задано `OTEL_LOG_TOOL_DETAILS=1`
1408 1443
1409<h4 id="feedback-survey-event">1444<h4 id="feedback-survey-event">
1410 Событие опроса обратной связи1445 Событие опроса обратной связи
1411</h4>1446</h4>
1412 1447
1413Регистрируется, когда показывается или отвечается опрос качества сеанса. См. [Опросы качества сеанса](/docs/ru/data-usage#session-quality-surveys) для того, что опросы собирают и как их контролировать.1448Записывается, когда опрос о качестве сессии показан или на него дан ответ. Сведения о том, какие данные собирают опросы и как ими управлять, см. в разделе [Опросы о качестве сессии](/docs/ru/data-usage#session-quality-surveys).
1414 1449
1415**Имя события**: `claude_code.feedback_survey`1450**Имя события**: `claude_code.feedback_survey`
1416 1451
1418 1453
1419* Все [стандартные атрибуты](#standard-attributes)1454* Все [стандартные атрибуты](#standard-attributes)
1420* `event.name`: `"feedback_survey"`1455* `event.name`: `"feedback_survey"`
1421* `event.timestamp`: Временная метка ISO 86011456* `event.timestamp`: временная метка в формате ISO 8601
1422* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1457* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1423* `event_type`: Событие жизненного цикла опроса, например `"appeared"`, `"responded"` или `"transcript_prompt_appeared"`1458* `event_type`: событие жизненного цикла опроса, например `"appeared"`, `"responded"` или `"transcript_prompt_appeared"`
1424* `appearance_id`: Уникальный ID, связывающий события, выпущенные для одного экземпляра опроса1459* `appearance_id`: уникальный идентификатор, связывающий события, сгенерированные для одного экземпляра опроса
1425* `survey_type`: Какой опрос создал событие. `"session"` — это подсказка рейтинга "Как работает Claude?"1460* `survey_type`: какой опрос сгенерировал событие. `"session"` — это промпт с оценкой «How is Claude doing?»
1426* `response`: Выбор пользователя на событиях `responded`1461* `response`: выбор пользователя в событиях `responded`
1427* `enabled_via_override`: `true`, когда задана переменная [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ru/env-vars). Передаётся как логическое значение, а не строка. Присутствует в событиях опроса `session`. Фильтруйте по этому атрибуту, чтобы убедиться, что переопределение применено во всём парке машин1462* `enabled_via_override`: `true`, когда задана переменная [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ru/env-vars). Передаётся как Boolean, а не как строка. Присутствует в событиях опроса `session`. Фильтруйте по этому атрибуту, чтобы убедиться, что переопределение применено на всём парке машин
1428 1463
1429<h4 id="retention-sweep-event">1464<h4 id="retention-sweep-event">
1430 Событие развёртки удержания1465 Событие очистки по сроку хранения
1431</h4>1466</h4>
1432 1467
1433Регистрируется один раз за запуск развёртки очистки удержания, которая удаляет [транскрипты сеансов и другие данные приложения](/docs/ru/claude-directory#cleaned-up-automatically) старше параметра [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays). Claude Code запускает развёртку в фоне максимум один раз за сеанс, и запуск, который ничего не удаляет, всё равно выпускает событие. Если Claude Code запустил развёртку в любом сеансе на одной машине в последние 24 часа, он задерживает развёртку этого сеанса как минимум на 10 минут, поэтому сеанс, который выходит раньше, ничего не выпускает. Когда вы запускаете `claude -p` с `--bare`, Claude Code не запускает развёртку и ничего не выпускает.1468Записывается один раз за каждый запуск очистки по сроку хранения, которая удаляет [транскрипты сессий и другие данные приложения](/docs/ru/claude-directory#cleaned-up-automatically) старше значения настройки [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays). Claude Code выполняет очистку в фоновом режиме не чаще одного раза за сессию, и запуск, который ничего не удалил, всё равно генерирует событие. Если Claude Code выполнял очистку в любой сессии на той же машине в течение последних 24 часов, он откладывает очистку в этой сессии как минимум на 10 минут, поэтому сессия, завершившаяся раньше, ничего не генерирует. Когда вы запускаете `claude -p` с `--bare`, Claude Code не выполняет очистку и ничего не генерирует.
1434 1469
1435Как каждое событие OTel на этой странице, оно идёт только на бэкенд телеметрии, который вы настраиваете. Требуется Claude Code v2.1.227 или позже.1470Как и любое событие OTel на этой странице, оно отправляется только в настроенный вами бэкенд телеметрии. Требуется Claude Code v2.1.227 или новее.
1436 1471
1437Когда Claude Code не может безопасно определить период удержания, он приостанавливает развёртку и выпускает событие с `result`, установленным в `"skipped"` и `skip_reason`. Когда [управляемые параметры](/docs/ru/server-managed-settings) устанавливают `cleanupPeriodDays`, управляемое значение закрепляет период удержания и развёртка работает даже когда файл параметров в более низком приоритете сломан или недействителен. Когда сам `managed-settings.json` не может быть прочитан, Claude Code всё равно приостанавливает развёртку, если только [управляемый уровень](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) не поставляет `cleanupPeriodDays` откуда-то ещё, например из параметров, управляемых сервером, или из `managed-settings.d/` drop-in рядом с повреждённым файлом. Атрибуты счётчика удаления присутствуют только когда `result` — это `"complete"`.1472Когда Claude Code не может надёжно определить срок хранения, он приостанавливает очистку и генерирует событие с `result`, равным `"skipped"`, и атрибутом `skip_reason`. Когда [управляемые настройки](/docs/ru/server-managed-settings) задают `cleanupPeriodDays`, управляемое значение фиксирует срок хранения, и очистка выполняется, даже если файл настроек в области действия с более низким приоритетом повреждён или некорректен. Когда сам `managed-settings.json` не удаётся прочитать, Claude Code всё равно приостанавливает очистку, если только [управляемый уровень](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) не предоставляет `cleanupPeriodDays` из другого места, например из серверных управляемых настроек или из дополнительного файла `managed-settings.d/` рядом с повреждённым файлом. Атрибуты-счётчики удалений присутствуют, только когда `result` равен `"complete"`.
1438 1473
1439**Имя события**: `claude_code.retention_sweep`1474**Имя события**: `claude_code.retention_sweep`
1440 1475
1442 1477
1443* Все [стандартные атрибуты](#standard-attributes)1478* Все [стандартные атрибуты](#standard-attributes)
1444* `event.name`: `"retention_sweep"`1479* `event.name`: `"retention_sweep"`
1445* `event.timestamp`: Временная метка ISO 86011480* `event.timestamp`: временная метка в формате ISO 8601
1446* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1481* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1447* `result`: `"complete"`, когда развёртка работала, `"skipped"`, когда Claude Code её приостановил1482* `result`: `"complete"`, если очистка выполнена, `"skipped"`, если Claude Code её приостановил
1448* `period_days`: Значение `cleanupPeriodDays` из объединённых параметров, в днях, или `30`, когда ни один источник его не устанавливает. На пропущенных событиях значение, которое развёртка использовала бы, вычисленное из источников параметров, которые Claude Code мог прочитать1483* `period_days`: значение `cleanupPeriodDays` из объединённых настроек в днях или `30`, если ни один источник его не задаёт. В пропущенных событиях — значение, которое использовала бы очистка, вычисленное из источников настроек, которые Claude Code смог прочитать
1449* `used_default`: `"true"`, когда ни один читаемый источник параметров не устанавливает `cleanupPeriodDays`, `"false"` в противном случае. На полных событиях `"true"` означает, что применён 30-дневный стандарт1484* `used_default`: `"true"`, если ни один доступный для чтения источник настроек не задаёт `cleanupPeriodDays`, иначе `"false"`. В завершённых событиях `"true"` означает, что применено значение по умолчанию в 30 дней
1450* `skip_reason`: Почему Claude Code приостановил развёртку. Присутствует только когда `result` — это `"skipped"`:1485* `skip_reason`: почему Claude Code приостановил очистку. Присутствует, только когда `result` равен `"skipped"`:
1451 * `"user_source_disabled"`: Параметры пользователя исключены, например флагом [`--setting-sources`](/docs/ru/cli-reference#cli-flags) или опцией [`settingSources`](/docs/ru/agent-sdk/typescript#options) SDK, и ни один включённый источник не предоставляет `cleanupPeriodDays`1486 * `"user_source_disabled"`: пользовательские настройки исключены, например флагом [`--setting-sources`](/docs/ru/cli-reference#cli-flags) или параметром SDK [`settingSources`](/docs/ru/agent-sdk/typescript#options), и ни один включённый источник не предоставляет `cleanupPeriodDays`
1452 * `"settings_unknowable"`: Файл параметров не может быть прочитан или разобран, поэтому `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` может быть установлен в значение, которое Claude Code не может видеть1487 * `"settings_unknowable"`: файл настроек не удалось прочитать или разобрать, поэтому `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` может иметь значение, которое Claude Code не видит
1453 * `"settings_invalid_key_set"`: Параметры имеют ошибки валидации и `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` явно установлены, поэтому возврат к стандарту может удалить или сохранить файлы против этого параметра1488 * `"settings_invalid_key_set"`: в настройках есть ошибки валидации, и `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` задан явно, поэтому использование значения по умолчанию могло бы удалить или сохранить файлы вопреки этой настройке
1454* `transcripts_deleted`: Количество транскриптов сеансов, файлы верхнего уровня `~/.claude/projects/*/*.jsonl`, которые развёртка удалила1489* `transcripts_deleted`: количество транскриптов сессий — файлов верхнего уровня `~/.claude/projects/*/*.jsonl`, — удалённых очисткой
1455* `transcripts_exempted_desktop`: Количество транскриптов прошлого периода удержания, которые развёртка сохранила в соответствии с [правилом Claude Desktop и Cowork](/docs/ru/claude-directory#cleaned-up-automatically). Они не считаются в `files_past_cutoff`. Требуется Claude Code v2.1.248 или позже1490* `transcripts_exempted_desktop`: количество транскриптов с истёкшим сроком хранения, которые очистка сохранила согласно [правилу Claude Desktop и Cowork](/docs/ru/claude-directory#cleaned-up-automatically). Они не учитываются в `files_past_cutoff`. Требуется Claude Code v2.1.248 или новее
1456* `session_files_deleted`: Количество артефактов, которые развёртка файлов сеанса удалила: транскрипты плюс файлы-спутники для каждого сеанса, такие как боковые панели, записи и результаты инструментов1491* `session_files_deleted`: количество артефактов, удалённых очисткой файлов сессий: транскрипты плюс сопутствующие файлы каждой сессии, такие как sidecar-файлы, записи и результаты инструментов
1457* `artifacts_deleted`: Общее количество элементов, которые развёртка удалила в каталогах данных, которые она охватывает, включая файлы сеанса. Некоторые развёртки считают целое удалённое дерево каталогов как один элемент и несколько проходов очистки не вносят вклад в счётчик, поэтому рассматривайте значение как нижний предел, а не точный счёт файлов1492* `artifacts_deleted`: общее количество элементов, удалённых очисткой во всех охватываемых ею каталогах данных, включая файлы сессий. Некоторые очистки считают целое удалённое дерево каталогов одним элементом, а несколько проходов очистки не учитываются в счётчике, поэтому рассматривайте значение как нижнюю границу, а не как точное количество файлов
1458* `files_retained_fresh`: Файлы, проверенные и оставленные на месте, потому что они всё ещё находятся в пределах периода удержания. Только развёртки для каждого файла считают эти, поэтому значение — это нижний предел; ненулевое значение — это нормальное устойчивое состояние1493* `files_retained_fresh`: файлы, проверенные и оставленные на месте, поскольку срок их хранения ещё не истёк. Их учитывают только пофайловые очистки, поэтому значение является нижней границей; ненулевое значение — нормальное устойчивое состояние
1459* `files_past_cutoff`: файлы старше срока хранения, которые очистке не удалось удалить, например из-за ошибки прав доступа или из-за того, что файл открыт. Счётчик также включает каждую устаревшую папку, найденную очисткой в `skills/synced/` или `plugins/synced/`, независимо от того, перемещает ли она папку в корзину. Не считая этих папок, значение больше нуля означает, что файлы пережили настроенный срок хранения; ноль не доказывает обратного, поскольку неудачное удаление целого каталога учитывается в `error_count`1494* `files_past_cutoff`: файлы старше срока хранения, которые очистке не удалось удалить, например из-за ошибки прав доступа или из-за того, что файл открыт. Счётчик также включает каждую устаревшую папку, найденную очисткой в `skills/synced/` или `plugins/synced/`, независимо от того, переместила ли она папку в корзину. Не считая этих папок, значение больше нуля означает, что файлы пережили настроенный срок хранения; ноль не доказывает обратного, поскольку неудачное удаление целого каталога учитывается в `error_count`
1460* `error_count`: Количество ошибок, которые развёртка встретила при перечислении или удалении файлов1495* `error_count`: количество ошибок, возникших у очистки при получении списка или удалении файлов
1461 1496
1462<h4 id="managed-settings-resolved-event">1497<h4 id="managed-settings-resolved-event">
1463 Событие разрешения управляемых параметров1498 Событие определения управляемых настроек
1464</h4>1499</h4>
1465 1500
1466Регистрируется с [управляемыми параметрами](/docs/ru/managed-settings), которые разрешил сеанс: один раз при запуске сеанса, снова когда либо управляемые параметры, либо состояние [помощника политики](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program) меняется во время сеанса, и когда Claude Code отказывается запускаться или заканчивает сеанс по одной из причин, которые атрибут `error.type` перечисляет.1501Записывается с [управляемыми настройками](/docs/ru/managed-settings), определёнными для сессии: один раз при запуске сессии, повторно, когда в ходе сессии меняются управляемые настройки или состояние [вспомогательной программы политики](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program), а также когда Claude Code отказывается запускаться или завершает сессию по одной из причин, перечисленных в атрибуте `error.type`.
1467Используйте это событие, чтобы найти машины, работающие на неожиданном управляемом источнике, машины, чей помощник политики не работает, и причину, по которой машина отказалась запускаться.1502Используйте это событие, чтобы найти машины, работающие с неожиданным управляемым источником, машины, на которых вспомогательная программа политики завершается ошибкой, и причину, по которой машина отказалась запускаться.
1468Требуется Claude Code v2.1.274 или позже.1503Требуется Claude Code v2.1.274 или новее.
1469 1504
1470По умолчанию событие содержит управляемые источники и состояние помощника политики, но не сами параметры. Чтобы добавить скрытый атрибут `managed_settings.settings` и дайджест `managed_settings.resolved_sha256`, установите `OTEL_LOG_MANAGED_SETTINGS=1`:1505По умолчанию событие содержит управляемые источники и состояние вспомогательной программы политики, но не сами настройки. Чтобы добавить отредактированный атрибут `managed_settings.settings` и дайджест `managed_settings.resolved_sha256`, задайте `OTEL_LOG_MANAGED_SETTINGS=1`:
1471 1506
1472* Установите его в блоке `env` управляемых параметров, параметров пользователя или `--settings`, или в среде, в которой вы запускаете Claude Code. Значение в параметрах проекта или локальных параметрах не включает его, потому что клонированный репозиторий может их писать.1507* Задайте её в блоке `env` управляемых настроек, пользовательских настроек или `--settings`, либо в окружении, в котором вы запускаете Claude Code. Значение в настройках проекта или локальных настройках её не включает, поскольку клонированный репозиторий может их записывать.
1473* Параметры, управляемые сервером, могут установить его без отображения [диалога одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs), потому что переменная только добавляет вашу собственную скрытую политику организации к событию, которое ваша организация уже получает.1508* Серверные управляемые настройки могут задать её без показа [диалогового окна подтверждения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs), поскольку переменная лишь добавляет собственную отредактированную политику вашей организации в событие, которое ваша организация уже получает.
1474 1509
1475В интерактивном сеансе в папке, которую вы не [доверили](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не экспортирует событие отказа.1510В интерактивной сессии в папке, которой вы не [доверяете](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не экспортирует событие отказа.
1476 1511
1477**Имя события**: `claude_code.managed_settings_resolved`1512**Имя события**: `claude_code.managed_settings_resolved`
1478 1513
1480 1515
1481* Все [стандартные атрибуты](#standard-attributes)1516* Все [стандартные атрибуты](#standard-attributes)
1482* `event.name`: `"managed_settings_resolved"`1517* `event.name`: `"managed_settings_resolved"`
1483* `event.timestamp`: Временная метка ISO 86011518* `event.timestamp`: временная метка в формате ISO 8601
1484* `event.sequence`: счётчик на процесс для упорядочивания событий, описанный в [Атрибуты корреляции событий](#event-correlation-attributes)1519* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)
1485* `managed_settings.trigger`: `"startup"` для события запуска сеанса, `"change"`, когда управляемые параметры или состояние помощника политики изменились позже в сеансе, или `"refused"`, когда политика управляемых параметров остановила сеанс. Claude Code отправляет событие `change` только когда атрибут отличается от последнего события, которое он отправил, и изменённое значение параметра считается даже когда `OTEL_LOG_MANAGED_SETTINGS` отключён1520* `managed_settings.trigger`: `"startup"` для события запуска сессии, `"change"`, когда управляемые настройки или состояние вспомогательной программы политики изменились позже в ходе сессии, или `"refused"`, когда политика управляемых настроек остановила сессию. Claude Code отправляет событие `change`, только когда какой-либо атрибут отличается от последнего отправленного события, и изменённое значение настройки учитывается, даже когда `OTEL_LOG_MANAGED_SETTINGS` отключена
1486* `error.type`: почему Claude Code остановил сеанс. Присутствует только на событиях `refused`:1521* `error.type`: почему Claude Code остановил сессию. Присутствует только в событиях `refused`:
1487 * `"helper_failed"`: [запуск помощника политики не удался](/docs/ru/settings-reference#helper-failures)1522 * `"helper_failed"`: [запуск вспомогательной программы политики завершился ошибкой](/docs/ru/settings-reference#helper-failures)
1488 * `"policy_invalid"`: управляемые параметры содержат ошибку, которая останавливает Claude Code от запуска, или источник администратора не смог загрузиться, поэтому Claude Code не может проверить принудительный вход организации1523 * `"policy_invalid"`: управляемые настройки содержат ошибку, из-за которой Claude Code не может запуститься, или административный источник не удалось загрузить по причине, отличной от отказа в чтении, поэтому Claude Code не может проверить вход в организацию или принудительное применение провайдера
1489 *1524 * `"provider_not_allowed"`: сессия использовала бы API-провайдера или отправляла бы трафик провайдера на хост, которые не разрешены управляемым списком [`allowedProviders`](/docs/ru/settings-reference#allowedproviders). Требуется Claude Code v2.1.285 или новее
1490 * `"provider_not_allowed"`: сеанс будет использовать поставщика API или отправлять трафик поставщика на хост, который управляемый список [`allowedProviders`](/docs/ru/settings-reference#allowedproviders) не разрешает. Требуется Claude Code v2.1.285 или позже1525 * `"consent_rejected"`: пользователь отклонил [диалоговое окно подтверждения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs) для серверных управляемых настроек
1491 * `"consent_rejected"`: пользователь отклонил [диалог одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs) для параметров, управляемых сервером1526 * `"force_refresh_failed"`: не удалось получить настройки, которые требует [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh)
1492 * `"force_refresh_failed"`: выборка параметров, которую требует [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh), не удалась1527 * `"gateway_rejected"`: [шлюз Claude apps](/docs/ru/claude-apps-gateway) ответил на загрузку управляемых настроек кодом HTTP 403
1493 * `"gateway_rejected"`: [шлюз приложений Claude](/docs/ru/claude-apps-gateway) ответил на загрузку управляемых параметров с HTTP 403
1494 * `"version_below_minimum"`: эта версия Claude Code ниже [`requiredMinimumVersion`](/docs/ru/settings-reference#requiredminimumversion) или выше [`requiredMaximumVersion`](/docs/ru/settings-reference#requiredmaximumversion)1528 * `"version_below_minimum"`: эта версия Claude Code ниже [`requiredMinimumVersion`](/docs/ru/settings-reference#requiredminimumversion) или выше [`requiredMaximumVersion`](/docs/ru/settings-reference#requiredmaximumversion)
1495 * `"_OTHER"`: загрузка управляемых параметров шлюза приложений Claude не удалась по другой причине1529 * `"_OTHER"`: загрузка управляемых настроек шлюза Claude apps завершилась ошибкой по другой причине
1496* `managed_settings.sources`: каждый управляемый источник, который доставляет как минимум один [ключ политики](/docs/ru/managed-settings#how-claude-code-combines-managed-sources), в порядке убывания приоритета, включая источники, чьи ключи не вступают в силу в `first-wins`. Значения — это `"remote"`, `"plist"` или `"hklm"` для политики MDM или уровня ОС, `"file"` для файлов управляемых параметров и drop-ins, `"parent"`, когда [хост встраивания](/docs/ru/managed-settings#let-an-embedding-host-add-policy) поставляет параметры, и `"hkcu"` для [значения реестра Windows HKCU](/docs/ru/managed-settings#where-each-mechanism-stores-the-policy), когда Claude Code [его читает](/docs/ru/managed-settings#how-claude-code-combines-managed-sources). Источник, который содержит только ключи управления или который Claude Code не смог прочитать, не указан. Выпускается как массив строк, пусто, когда ни один управляемый источник не доставляет ключ политики1530* `managed_settings.sources`: каждый управляемый источник, который предоставляет хотя бы один [ключ политики](/docs/ru/managed-settings#how-claude-code-combines-managed-sources), в порядке убывания приоритета, включая источники, ключи которых не вступают в силу при `first-wins`. Возможные значения: `"remote"`, `"plist"` или `"hklm"` для политики MDM или уровня ОС, `"file"` для файлов управляемых настроек и дополнительных файлов, `"parent"`, когда настройки предоставляет [встраивающий хост](/docs/ru/managed-settings#let-an-embedding-host-add-policy), и `"hkcu"` для [значения реестра Windows HKCU](/docs/ru/managed-settings#where-each-mechanism-stores-the-policy), когда Claude Code [его читает](/docs/ru/managed-settings#how-claude-code-combines-managed-sources). Источник, который содержит только управляющие ключи или который Claude Code не смог прочитать, не указывается. Передаётся как массив строк; пуст, если ни один управляемый источник не предоставляет ключ политики
1497* `managed_settings.source_behavior`: значение [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior), которое Claude Code прочитал, `"first-wins"` или `"merge"`. `"first-wins"`, когда ни один источник не устанавливает ключ1531* `managed_settings.source_behavior`: значение [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior), прочитанное Claude Code: `"first-wins"` или `"merge"`. `"first-wins"`, если ни один источник не задаёт этот ключ
1498* `managed_settings.helper.state`: состояние помощника политики, который выбранный источник MDM или файла настраивает:1532* `managed_settings.helper.state`: состояние вспомогательной программы политики, настроенной выбранным источником MDM или файловым источником:
1499 * `"ok"`: выход помощника служит управляемыми параметрами1533 * `"ok"`: вывод вспомогательной программы используется в качестве управляемых настроек
1500 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"` или `"schema_rejected"`: последний запуск помощника не удался. [Сбои помощника](/docs/ru/settings-reference#helper-failures) описывает случаи1534 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"` или `"schema_rejected"`: последний запуск вспомогательной программы завершился ошибкой. Эти случаи описаны в разделе [Ошибки вспомогательной программы](/docs/ru/settings-reference#helper-failures)
1501 * `"none"`: помощник не настроен, или источник, который его настраивает, не является политикой MDM или файлом управляемых параметров1535 * `"none"`: вспомогательная программа не настроена, или источник, который её настраивает, не является политикой MDM или файлом управляемых настроек
1502* `managed_settings.helper.applied`: `"output"`, пока выход помощника служит управляемыми параметрами, `"none"`, когда он не служит1536* `managed_settings.helper.applied`: `"output"`, пока собственный вывод вспомогательной программы используется в качестве управляемых настроек, `"none"`, когда это не так
1503* `managed_settings.helper.entry`: `"policyHelper"`, когда Claude Code выбрал [`policyHelper`](/docs/ru/settings-reference#policyhelper). Отсутствует, когда он не выбрал помощника1537* `managed_settings.helper.entry`: `"policyHelper"`, когда Claude Code выбрал [`policyHelper`](/docs/ru/settings-reference#policyhelper). Отсутствует, если вспомогательная программа не выбрана
1504* `managed_settings.helper.path`: настроенный [`path`](/docs/ru/settings-reference#policyhelper-path) помощника. Присутствует всякий раз, когда Claude Code выбрал помощника, независимо от того, установлен ли `OTEL_LOG_MANAGED_SETTINGS`1538* `managed_settings.helper.path`: настроенный [`path`](/docs/ru/settings-reference#policyhelper-path) вспомогательной программы. Присутствует всякий раз, когда Claude Code выбрал вспомогательную программу, независимо от того, задана ли `OTEL_LOG_MANAGED_SETTINGS`
1505* `managed_settings.resolved_sha256` (когда `OTEL_LOG_MANAGED_SETTINGS=1`): SHA-256 разрешённых управляемых параметров перед скрытием, сериализованных как JSON с ключами, отсортированными рекурсивно и без пробелов. Машины с одинаковым дайджестом работают с одной и той же политикой. Claude Code отправляет дайджест только с opt-in, потому что короткая политика может быть восстановлена путём хеширования предположений. Отсутствует, когда управляемые параметры не разрешены, и на событиях `refused`1539* `managed_settings.resolved_sha256` (при `OTEL_LOG_MANAGED_SETTINGS=1`): SHA-256 определённых управляемых настроек до редактирования, сериализованных как JSON с рекурсивно отсортированными ключами и без пробелов. Машины с одинаковым дайджестом работают с одной и той же политикой. Claude Code отправляет дайджест только при явном включении, поскольку короткую политику можно восстановить, хешируя предполагаемые варианты. Отсутствует, если управляемые настройки не определены, а также в событиях `refused`
1506* `managed_settings.settings` (когда `OTEL_LOG_MANAGED_SETTINGS=1`): имена и форма разрешённых управляемых параметров как строка JSON со скрытыми значениями. Отсутствует на событиях `refused`. Claude Code строит её из своей схемы параметров:1540* `managed_settings.settings` (при `OTEL_LOG_MANAGED_SETTINGS=1`): имена и структура определённых управляемых настроек в виде строки JSON с отредактированными значениями. Отсутствует в событиях `refused`. Claude Code формирует его на основе своей схемы настроек:
1507 1541
1508 * Имя параметра, которое схема объявляет, экспортируется, и ключ, который она не объявляет, опускается1542 * Имя настройки, объявленное в схеме, экспортируется, а ключ, не объявленный в ней, опускается
1509 * Логические значения, числа и строковые значения, которые схема ограничивает фиксированным набором опций, например `permissions.defaultMode`, экспортируются как есть. `sandbox.network.httpProxyPort` и `sandbox.network.socksProxyPort` экспортируются как `"[REDACTED]"`1543 * Логические значения, числа и строковые значения, которые схема ограничивает фиксированным набором вариантов, например `permissions.defaultMode`, экспортируются как есть. `sandbox.network.httpProxyPort` и `sandbox.network.socksProxyPort` экспортируются как `"[REDACTED]"`
1510 * Каждая другая строка, такая как `model`, `apiKeyHelper`, каждое значение `env`, каждый URL и каждая команда, экспортируется как `"[REDACTED]"`1544 * Все остальные строки, например `model`, `apiKeyHelper`, каждое значение `env`, каждый URL и каждая команда, экспортируются как `"[REDACTED]"`
1511 * Имена записей карт, такие как имена переменных `env` и ID плагинов, экспортируются как есть. Параметр, чьи записи схема не типизирует, например `vimInsertModeRemaps`, экспортируется как одиночный `"[REDACTED]"`, и `sandbox.ignoreViolations` экспортируется как список его списков путей без шаблонов команд1545 * Имена записей в словарях, например имена переменных `env` и идентификаторы плагинов, экспортируются как есть. Настройка, записи которой схема не типизирует, например `vimInsertModeRemaps`, экспортируется как единое `"[REDACTED]"`, а `sandbox.ignoreViolations` экспортируется как список его списков путей без шаблонов команд
1512 * Список сохраняет свою длину, с каждой записью скрытой по тем же правилам1546 * Список сохраняет свою длину, а каждая запись редактируется по тем же правилам
1513 * Правило `permissions.allow`, `permissions.deny` или `permissions.ask` экспортируется как его имя инструмента со скрытым содержанием, например `Read([REDACTED])`, когда инструмент встроен в эту версию Claude Code или является ссылкой `mcp__`, такой как `mcp__jira__create_issue`. Любое другое правило экспортируется как `"[REDACTED]"`1547 * Правило `permissions.allow`, `permissions.deny` или `permissions.ask` экспортируется как имя инструмента с отредактированным содержимым, например `Read([REDACTED])`, если инструмент встроен в эту версию Claude Code или является ссылкой `mcp__`, например `mcp__jira__create_issue`. Любое другое правило экспортируется как `"[REDACTED]"`
1514 * Hooks следуют тем же правилам, поэтому поля с фиксированными опциями и числовые поля, такие как `type` и `timeout`, показываются, пока каждая команда, URL, `matcher` и условие `if` экспортируются как `"[REDACTED]"`1548 * Хуки подчиняются тем же правилам, поэтому поля с фиксированными вариантами и числовые поля, такие как `type` и `timeout`, отображаются, а каждая команда, URL, `matcher` и условие `if` экспортируются как `"[REDACTED]"`
1515 1549
1516 Например, управляемые параметры с `apiKeyHelper`, двумя переменными `env` и правилом запрета экспортируются как `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.1550 Например, управляемые настройки с `apiKeyHelper`, двумя переменными `env` и правилом запрета экспортируются как `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.
1517 1551
1518 Claude Code обрезает значение на 8 КБ UTF-8, и обрезанное значение не является действительным JSON1552 Claude Code обрезает значение до 8 КБ в UTF-8, и обрезанное значение не является корректным JSON
1519* `managed_settings.settings_truncated` (когда присутствует `managed_settings.settings`): `true`, когда Claude Code обрезал `managed_settings.settings` на 8 КБ, иначе `false`. Передаётся как логическое значение, а не строка1553* `managed_settings.settings_truncated` (когда присутствует `managed_settings.settings`): `true`, если Claude Code обрезал `managed_settings.settings` до 8 КБ, иначе `false`. Передаётся как Boolean, а не как строка
1520 1554
1521<h2 id="interpret-metrics-and-events-data">1555<h2 id="interpret-metrics-and-events-data">
1522 Интерпретация данных метрик и событий1556 Интерпретация данных метрик и событий
1549 Метрики затрат являются приблизительными. Для официальных данных о выставлении счетов обратитесь к вашему поставщику API (Claude Console, Amazon Bedrock или Google Cloud's Agent Platform).1583 Метрики затрат являются приблизительными. Для официальных данных о выставлении счетов обратитесь к вашему поставщику API (Claude Console, Amazon Bedrock или Google Cloud's Agent Platform).
1550</Note>1584</Note>
1551 1585
1552Claude Code учитывает каждый потоковый ответ в метриках затрат и токенов ровно один раз, включая случаи, когда шлюз или прокси-сервер за `ANTHROPIC_BASE_URL` потоком передает использование прогрессивно через несколько кадров. До версии 2.1.214 потоки, которые содержали использование более чем в одном кадре, завышали `claude_code.cost.usage` и `claude_code.token.usage` примерно на один дополнительный полный запрос на каждый дополнительный кадр.1586Claude Code учитывает каждый потоковый ответ в метриках затрат и токенов ровно один раз, включая случаи, когда шлюз или прокси-сервер за `ANTHROPIC_BASE_URL` потоком передает использование прогрессивно через несколько кадров.
1553 1587
1554<h3 id="alerting-and-segmentation">1588<h3 id="alerting-and-segmentation">
1555 Оповещения и сегментация1589 Оповещения и сегментация
1571 1605
1572Claude Code повторяет неудачные запросы API внутри и выдает одно событие `claude_code.api_error` только после того, как сдается, поэтому само событие является терминальным сигналом для этого запроса. Промежуточные повторные попытки не логируются как отдельные события.1606Claude Code повторяет неудачные запросы API внутри и выдает одно событие `claude_code.api_error` только после того, как сдается, поэтому само событие является терминальным сигналом для этого запроса. Промежуточные повторные попытки не логируются как отдельные события.
1573 1607
1574Атрибут `attempt` на событии записывает количество попыток. `CLAUDE_CODE_MAX_RETRIES` по умолчанию равен 10 и ограничен 15. Начиная с версии 2.1.199, вы можете установить `CLAUDE_CODE_RETRY_WATCHDOG` для повышения значения по умолчанию и снятия ограничения.1608Атрибут `attempt` на событии записывает количество попыток. `CLAUDE_CODE_MAX_RETRIES` по умолчанию равен 10 и ограничен 15; если установлена [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ru/env-vars), значение по умолчанию выше, а ограничение отсутствует.
1575 1609
1576Когда запрос исчерпывает все повторные попытки при переходной ошибке, `attempt` не более чем на один больше этого эффективного ограничения: 11 по умолчанию.1610Когда запрос исчерпывает все повторные попытки при переходной ошибке, `attempt` не более чем на один больше этого эффективного ограничения: 11 по умолчанию.
1577 1611
1647 1681
1648Без `OTEL_LOG_TOOL_DETAILS` эти события опускают идентифицирующую деталь:1682Без `OTEL_LOG_TOOL_DETAILS` эти события опускают идентифицирующую деталь:
1649 1683
1650* `tool_result`: сохраняет `mcp_server_scope` и `tool_name`, заменённый на буквальное значение `"mcp_tool"` для пользовательских серверов, опускает содержимое аргументов. Для встроенных серверов Claude Desktop в сеансах, которыми владеет Claude Desktop, он также сохраняет пару `mcp_server_name`/`mcp_tool_name` внутри `tool_parameters`, то же исключение, написанное хостом, что и `tool_decision`, требующее Claude Code v2.1.214 или позже1684* `tool_result`: сохраняет `mcp_server_scope` и `tool_name`, заменённый на буквальное значение `"mcp_tool"` для пользовательских серверов, опускает содержимое аргументов. Для встроенных серверов Claude Desktop в сессиях, которыми владеет Claude Desktop, он также сохраняет пару `mcp_server_name`/`mcp_tool_name` внутри `tool_parameters` — то же исключение для данных, заданных хостом, что и у `tool_decision`
1651* `tool_decision`: сохраняет `tool_source` и `tool_name`, заменённый на буквальное значение `"mcp_tool"` для пользовательских серверов, опускает содержимое аргументов. Для встроенных серверов Claude Desktop в сеансах, которыми владеет Claude Desktop, он также сохраняет пару `mcp_server_name`/`mcp_tool_name` внутри `tool_parameters`; `tool_source` и пара имен оба требуют Claude Code v2.1.214 или позже1685* `tool_decision`: сохраняет `tool_source` и `tool_name`, заменённый на буквальное значение `"mcp_tool"` для пользовательских серверов, опускает содержимое аргументов. Для встроенных серверов Claude Desktop в сессиях, которыми владеет Claude Desktop, он также сохраняет пару `mcp_server_name`/`mcp_tool_name` внутри `tool_parameters`
1652* `mcp_server_connection`: опускает `server_name` и сообщение об ошибке, но сохраняет `is_plugin`, `plugin_id_hash` и `plugin.name`, с именами плагинов, не относящихся к Anthropic, заменёнными на буквальное значение `"third-party"`, поэтому серверы, предоставляемые плагинами, остаются различимыми без подробного логирования1686* `mcp_server_connection`: опускает `server_name` и сообщение об ошибке, но сохраняет `is_plugin`, `plugin_id_hash` и `plugin.name`, с именами плагинов, не относящихся к Anthropic, заменёнными на буквальное значение `"third-party"`, поэтому серверы, предоставляемые плагинами, остаются различимыми без подробного логирования
1653 1687
1654<h3 id="map-security-questions-to-events">1688<h3 id="map-security-questions-to-events">
1659 1693
1660| Сигнал | Событие | Ключевые атрибуты |1694| Сигнал | Событие | Ключевые атрибуты |
1661| - | - | - |1695| - | - | - |
1662| Вызов инструмента разрешен или отклонен, и почему | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1696| Вызов инструмента разрешён или отклонён, и откуда пришло решение, например из правила, хука или от пользователя | [`tool_decision`](#tool-decision-event) | `decision`, `source`, `classifier_verdict`, `permission_mode`, `tool_name`; `tool_parameters`, если задать `OTEL_LOG_TOOL_DETAILS=1` |
1697| Классификатор авторежима разрешил или заблокировал вызов инструмента, либо Claude Code отклонил вызов без вердикта классификатора | [`tool_decision`](#tool-decision-event), где присутствует `classifier_verdict`. При отклонении без вердикта `classifier_verdict` имеет значение `"no_verdict"` или `"unavailable"` | `classifier_verdict`, `permission_mode`, `tool_name`; `classifier_category`, если задать `OTEL_LOG_TOOL_DETAILS=1` |
1663| Эскалация режима разрешений | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1698| Эскалация режима разрешений | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |
1699| В каком режиме разрешений проверялся каждый вызов инструмента, включая вызовы, которые делают субагенты | [`tool_decision`](#tool-decision-event) | `permission_mode`, `session.id` |
1664| Hook политики заблокировал действие | `hook_execution_complete` | `hook_event`, `num_blocking` |1700| Hook политики заблокировал действие | `hook_execution_complete` | `hook_event`, `num_blocking` |
1665| Вход, выход и сбой аутентификации | `auth` | `action`, `success`, `error_category` |1701| Вход, выход и сбой аутентификации | `auth` | `action`, `success`, `error_category` |
1666| Подключение MCP сервера или сбой | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1702| Подключение MCP сервера или сбой | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |
1825 1861
1826 * При детальной бета-трассировке span также содержат новые пользовательские сообщения, результаты инструментов и системные напоминания, отправляемые с каждым запросом, текст системного промпта и выходные данные модели. В разделе [Атрибуты содержимого при детальной бета-трассировке](#new-context-gates) перечислен каждый атрибут. Событие `claude_code.system_prompt` содержит полный системный промпт1862 * При детальной бета-трассировке span также содержат новые пользовательские сообщения, результаты инструментов и системные напоминания, отправляемые с каждым запросом, текст системного промпта и выходные данные модели. В разделе [Атрибуты содержимого при детальной бета-трассировке](#new-context-gates) перечислен каждый атрибут. Событие `claude_code.system_prompt` содержит полный системный промпт
1827* Текст ответа помощника не собирается по умолчанию. Записывается только длина ответа. Чтобы включить текст ответа, установите `OTEL_LOG_ASSISTANT_RESPONSES=1`. Как и все данные OpenTelemetry из Claude Code, текст ответа отправляется только на эндпоинт OTel, который вы настраиваете, никогда на Anthropic. Когда эта переменная не установлена, `OTEL_LOG_USER_PROMPTS` используется как резервный вариант, поэтому установите `OTEL_LOG_ASSISTANT_RESPONSES=0`, если вы хотите получать в событиях содержимое промпта без содержимого ответа. При детальной бета-трассировке span `claude_code.llm_request` всё равно содержит выходные данные модели в [`response.model_output`](#new-context-gates), который управляется `OTEL_LOG_USER_PROMPTS`, а не этой переменной1863* Текст ответа помощника не собирается по умолчанию. Записывается только длина ответа. Чтобы включить текст ответа, установите `OTEL_LOG_ASSISTANT_RESPONSES=1`. Как и все данные OpenTelemetry из Claude Code, текст ответа отправляется только на эндпоинт OTel, который вы настраиваете, никогда на Anthropic. Когда эта переменная не установлена, `OTEL_LOG_USER_PROMPTS` используется как резервный вариант, поэтому установите `OTEL_LOG_ASSISTANT_RESPONSES=0`, если вы хотите получать в событиях содержимое промпта без содержимого ответа. При детальной бета-трассировке span `claude_code.llm_request` всё равно содержит выходные данные модели в [`response.model_output`](#new-context-gates), который управляется `OTEL_LOG_USER_PROMPTS`, а не этой переменной
1828* Аргументы входных данных инструмента и параметры не логируются по умолчанию. Чтобы включить их, установите `OTEL_LOG_TOOL_DETAILS=1`. Для встроенных серверов Claude Desktop в сессиях, которыми владеет Claude Desktop, `tool_decision` и `tool_result` содержат пару `mcp_server_name`/`mcp_tool_name`, имена, созданные хостом, а не содержимое аргументов, даже с отключённым флагом. Исключение требует Claude Code v2.1.214 или позже. Эти данные отправляются только на эндпоинт OTEL, который вы настраиваете, никогда на Anthropic. Аргументы могут по-прежнему содержать конфиденциальные значения, поэтому настройте ваш бэкенд телеметрии для фильтрации или скрытия этих атрибутов по мере необходимости. Когда включено:1864* Аргументы входных данных инструмента и параметры не логируются по умолчанию. Чтобы включить их, установите `OTEL_LOG_TOOL_DETAILS=1`. Для встроенных серверов Claude Desktop в сессиях, которыми владеет Claude Desktop, `tool_decision` и `tool_result` содержат пару `mcp_server_name`/`mcp_tool_name`, имена, созданные хостом, а не содержимое аргументов, даже с отключённым флагом. Эти данные отправляются только на эндпоинт OTEL, который вы настраиваете, никогда на Anthropic. Аргументы могут по-прежнему содержать конфиденциальные значения, поэтому настройте ваш бэкенд телеметрии для фильтрации или скрытия этих атрибутов по мере необходимости. Когда включено:
1829 * События `tool_result` и `tool_decision` включают атрибут `tool_parameters` с командами Bash, именами MCP-сервера и инструмента и именами скиллов. Поля, такие как `full_command`, выдаются неусеченными1865 * События `tool_result` и `tool_decision` включают атрибут `tool_parameters` с командами Bash, именами MCP-сервера и инструмента и именами скиллов. Поля, такие как `full_command`, выдаются неусеченными
1830 * События `tool_result` дополнительно включают атрибут `tool_input` с путями к файлам, URL-адресами, шаблонами поиска и другими аргументами. Отдельные значения более 512 символов усекаются, и общее количество ограничено примерно 4 K символами1866 * События `tool_result` дополнительно включают атрибут `tool_input` с путями к файлам, URL-адресами, шаблонами поиска и другими аргументами. Отдельные значения более 512 символов усекаются, и общее количество ограничено примерно 4 K символами
1831 * События `user_prompt` включают буквальное `command_name` для пользовательских команд, команд плагинов и команд MCP1867 * События `user_prompt` включают буквальное `command_name` для пользовательских команд, команд плагинов и команд MCP