Перейти к содержанию
Claude News

Оформление

Оформление

Инструменты разработчика

Claude API научился слать трейсы в вашу систему мониторинга

6 мин чтения

Сколько токенов ушло на каждый шаг агента и какой инструмент тормозил, можно увидеть без единой новой строчки кода: Claude API сам отправляет в вашу систему наблюдаемости по спану на каждый запрос к модели и каждый вызов инструмента. Как описано в документации Anthropic, функция в публичной бете работает для Messages API и Claude Managed Agents, а включается одной точкой назначения в Claude Console.

Коротко

  • Публичная бета открыта в Claude API и в Claude Platform on AWS; по словам ClaudeDevs, трейсы отдают Messages API, Claude Managed Agents и Claude SDKs, а спаны следуют конвенциям OpenTelemetry gen_ai.
  • По умолчанию в спан попадают только метаданные: длительность, статус, число токенов, модель и имена инструментов, а режим Full content добавляет промпты, ответы, входные данные и результаты инструментов.
  • Доставка работает по схеме «хотя бы один раз» и best effort: один спан может прийти дважды, другой потеряться навсегда, а после 24 часов сплошных ошибок точку назначения отключат.

Если вы не следили: Claude Managed Agents, по данным Claude Lab, вышли в публичную бету 8 апреля 2026 года. В инженерном блоге Anthropic рассказывали, что ранняя версия держала сессию, harness и песочницу в одном контейнере, а единственным окном внутрь был поток событий по WebSocket. По нему нельзя было отличить ошибку harness от потерянного пакета или упавшего контейнера, а для настоящей отладки пришлось бы открывать shell в контейнере, где часто лежали данные пользователей.

Для подключения нужны роль админа и OTLP/HTTP-адрес на порту 443

Добавлять и менять точки назначения в Claude Console может только админ организации, разработчик их просто видит. Принимающая сторона должна понимать OTLP/HTTP с кодировкой protobuf по HTTPS на порту 443. Если у вас свой OpenTelemetry Collector, учтите: его OTLP/HTTP-приёмник по умолчанию слушает порт 4318, так что придётся либо перенастроить его, либо поставить перед ним балансировщик или обратный прокси.

В форме выбирают провайдера из списка или Custom. Для платформы из списка Console спросит её параметры, например API-ключ. Для Custom указывают базовый адрес с именем хоста вместо IP и без /v1/traces: этот суффикс API добавит сам. Ключи кладут только в значения заголовков, и после сохранения Console их уже не покажет.

Связь проверяют кнопкой Test в меню More actions: API отправит спан anthropic.test и сообщит, дошёл он или нет. Вместо консоли подойдут Admin API или CLI, но там провайдера не выбрать, адрес и заголовки вводятся вручную, а предел объёма контента задаётся полем traces.max_content_bytes в байтах.

Спаны в вашей платформе ищут по service.name = claude-platform

Каждая точка назначения покрывает набор рабочих пространств: все, включая Default Workspace и будущие, только выбранные или все, кроме выбранных. API шлёт спаны в каждую включённую точку, которая покрывает пространство, где идёт запрос или сессия. Разработчик с ролью Workspace Admin в своём пространстве может добавить его в точку с режимом Selected или убрать оттуда.

Для проверки хватит запроса из playground или новой сессии Managed Agents. Примерно через минуту колонка Delivery должна показать Healthy, а в вашей платформе спаны найдутся по фильтру service.name = claude-platform. Если там Failing, при наведении видна последняя ошибка: 401 и 403 означают неверный заголовок авторизации, 404 указывает на неправильный путь в адресе.

В Claude Platform on AWS в Console входят через AWS Console, запросы Admin API отправляют на aws-external-anthropic.{region}.api.aws с подписью AWS, а права на точки назначения определяет IAM-политика. Роли Workspace Admin там нет.

Заголовок traceparent вкладывает спаны API в трейсы вашего приложения

Трейс в OpenTelemetry описывает путь одного запроса через систему, а спан описывает отдельный шаг внутри него, с началом, концом и атрибутами. Трейс удобно представить как родословное древо: корень соответствует запросу пользователя, потомки соответствуют вызовам, которые он породил. По умолчанию спаны запроса к Messages API или сессии Managed Agents образуют отдельное древо, никак не связанное с вашим.

Чтобы связать их, передайте в запросе стандартный заголовок W3C traceparent: API прочитает из него контекст и повесит свои спаны под ваш. Если флаг sampled в заголовке выключен, API не создаёт ни спан запроса, ни вложенные в него. Claude Platform on AWS этот заголовок пока не поддерживает, и там спаны всегда открывают собственный трейс, даже при выключенном флаге.

Цепочка тянется и дальше, к вашему MCP-серверу, подключённому через MCP connector. В каждом запросе и уведомлении к нему API кладёт traceparent в params._meta: в tools/call он ссылается на спан anthropic.mcp_tool_use, в остальных сообщениях на anthropic.messages.create. Сервер может повесить свои спаны под эти.

API отключает точку назначения после 24 часов неудачных доставок

Доставка устроена по схеме «хотя бы один раз»: один и тот же спан может прийти повторно, и дубли убирают по паре trace ID и span ID. При этом она best effort, и потерянный спан API заново не отправит. Первый запрос каждой доставки сжат gzip, а если endpoint отвечает 400 или 415, те же спаны сразу уходят без сжатия.

Повторы ограничены по числу и срабатывают на таймаут, сбои соединения, TLS и DNS, а также на ответы 408, 429 и 5xx. На TLS-рукопожатие и на заголовки ответа отводится по 5 секунд, на всю доставку вместе с повтором без сжатия 10 секунд. Каждый запрос приходит с заголовком User-Agent: Claude-Platform.

Точку отключают, если endpoint отвечает редиректом 3xx, если его имя резолвится в непубличный IP или если все доставки падают 24 часа. Лимиты такие: до 10 точек на организацию с учётом отключённых, до 1 000 рабочих пространств на точку, до 20 заголовков, имя заголовка до 128 байт, значение до 4 096 байт, все вместе до 16 384 байт, адрес до 2 048 символов.

Режим Full content обещает промпты и ответы, но в организациях с ограничениями HIPAA, FERPA или K-12 они могут не попасть в спаны, а всё доставленное хранится уже у вашего провайдера, по его правилам хранения и доступа. На наш взгляд, главный пробел в отсутствии traceparent на AWS: там спаны API живут отдельными трейсами, и связать их с кодом приложения не выйдет. Потери при best effort, вероятно, делают эти трейсы ненадёжной основой для точного учёта расходов.

Когда traceparent доберётся до AWS

В документации сказано лишь, что Claude Platform on AWS пока не поддерживает этот заголовок, и срок не назван. Неизвестно и то, когда функция выйдет из публичной беты в Claude API и на AWS. Отдельно стоит следить за экспортом спанов из Claude SDKs: ClaudeDevs описывают его настройку на отдельной странице документации, и от неё зависит, удастся ли проследить запрос от клиента до самого API.

Claude Code

Claude Code на десктопе запускает по сессии на задачу, Видео

Параллельные задачи в десктопном Claude Code расходятся по вложенным сессиям, и каждая сама отчитывается в главную, когда закончит, так что основной тред остаётся читаемым. Бывало, что параллельные задачи Claude Code перемешивались у вас в одном треде?

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите, чтобы оставить комментарий. Он появится после модерации.