Поддержка OpenTelemetry в настоящее время находится в бета-версии, и детали могут измениться.
Быстрый старт
Настройте OpenTelemetry с помощью переменных окружения:Интервалы экспорта по умолчанию составляют 60 секунд для метрик и 5 секунд для логов. Во время настройки вы можете использовать более короткие интервалы в целях отладки. Помните, что для использования в производстве необходимо сбросить эти значения.
Конфигурация администратора
Администраторы могут настраивать параметры OpenTelemetry для всех пользователей через файл управляемых параметров. Это позволяет централизованно управлять параметрами телеметрии в организации. Дополнительную информацию о том, как применяются параметры, см. в разделе приоритет параметров. Файл управляемых параметров находится в следующих местах:- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux и WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\ProgramData\ClaudeCode\managed-settings.json
Управляемые параметры могут распространяться через MDM (Mobile Device Management) или другие решения для управления устройствами. Переменные окружения, определённые в файле управляемых параметров, имеют высокий приоритет и не могут быть переопределены пользователями.
Детали конфигурации
Общие переменные конфигурации
| Переменная окружения | Описание | Примеры значений |
|---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | Включает сбор телеметрии (обязательно) | 1 |
OTEL_METRICS_EXPORTER | Тип(ы) экспортера метрик (через запятую) | console, otlp, prometheus |
OTEL_LOGS_EXPORTER | Тип(ы) экспортера логов/событий (через запятую) | console, otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | Протокол для экспортера OTLP (все сигналы) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | Конечная точка сборщика OTLP (все сигналы) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | Протокол для метрик (переопределяет общий) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | Конечная точка метрик OTLP (переопределяет общий) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | Протокол для логов (переопределяет общий) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Конечная точка логов OTLP (переопределяет общий) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | Заголовки аутентификации для OTLP | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | Ключ клиента для аутентификации mTLS | Путь к файлу ключа клиента |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | Сертификат клиента для аутентификации mTLS | Путь к файлу сертификата клиента |
OTEL_METRIC_EXPORT_INTERVAL | Интервал экспорта в миллисекундах (по умолчанию: 60000) | 5000, 60000 |
OTEL_LOGS_EXPORT_INTERVAL | Интервал экспорта логов в миллисекундах (по умолчанию: 5000) | 1000, 10000 |
OTEL_LOG_USER_PROMPTS | Включить логирование содержимого пользовательских подсказок (по умолчанию: отключено) | 1 для включения |
Управление кардинальностью метрик
Следующие переменные окружения управляют тем, какие атрибуты включены в метрики для управления кардинальностью:| Переменная окружения | Описание | Значение по умолчанию | Пример отключения |
|---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | Включить атрибут session.id в метрики | true | false |
OTEL_METRICS_INCLUDE_VERSION | Включить атрибут app.version в метрики | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | Включить атрибут user.account_uuid в метрики | true | false |
Динамические заголовки
Для корпоративных сред, требующих динамической аутентификации, вы можете настроить скрипт для динамического создания заголовков:Конфигурация параметров
Добавьте в ваш.claude/settings.json:
Требования к скрипту
Скрипт должен выводить корректный JSON с парами строк ключ-значение, представляющими HTTP-заголовки:Важные ограничения
Заголовки загружаются только при запуске, а не во время выполнения. Это связано с ограничениями архитектуры экспортера OpenTelemetry. Для сценариев, требующих частого обновления токена, используйте OpenTelemetry Collector в качестве прокси, который может обновлять свои собственные заголовки.Поддержка многокомандной организации
Организации с несколькими командами или отделами могут добавлять пользовательские атрибуты для различия между разными группами, используя переменную окруженияOTEL_RESOURCE_ATTRIBUTES:
- Фильтровать метрики по команде или отделу
- Отслеживать затраты по центру затрат
- Создавать специфичные для команды панели мониторинга
- Настраивать оповещения для конкретных команд
Важные требования к форматированию для OTEL_RESOURCE_ATTRIBUTES:Переменная окружения Примечание: Заключение всей пары ключ=значение в кавычки (например,
OTEL_RESOURCE_ATTRIBUTES следует спецификации W3C Baggage, которая имеет строгие требования к форматированию:- Пробелы не допускаются: Значения не могут содержать пробелы. Например,
user.organizationName=My Companyнедопустимо - Формат: Должны быть пары ключ=значение, разделённые запятыми:
key1=value1,key2=value2 - Допустимые символы: Только символы US-ASCII, исключая управляющие символы, пробелы, двойные кавычки, запятые, точки с запятой и обратные слэши
- Специальные символы: Символы вне допустимого диапазона должны быть закодированы в процентах
"key=value with spaces") не поддерживается спецификацией OpenTelemetry и приведёт к тому, что атрибуты будут иметь префикс с кавычками.Примеры конфигураций
Доступные метрики и события
Стандартные атрибуты
Все метрики и события имеют эти стандартные атрибуты:| Атрибут | Описание | Управляется |
|---|---|---|
session.id | Уникальный идентификатор сеанса | OTEL_METRICS_INCLUDE_SESSION_ID (по умолчанию: true) |
app.version | Текущая версия Claude Code | OTEL_METRICS_INCLUDE_VERSION (по умолчанию: false) |
organization.id | UUID организации (при аутентификации) | Всегда включается, когда доступно |
user.account_uuid | UUID учётной записи (при аутентификации) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (по умолчанию: true) |
terminal.type | Тип терминала (например, iTerm.app, vscode, cursor, tmux) | Всегда включается при обнаружении |
Метрики
Claude Code экспортирует следующие метрики:| Имя метрики | Описание | Единица |
|---|---|---|
claude_code.session.count | Количество запущенных сеансов CLI | count |
claude_code.lines_of_code.count | Количество строк кода, которые были изменены | count |
claude_code.pull_request.count | Количество созданных запросов на слияние | count |
claude_code.commit.count | Количество созданных коммитов git | count |
claude_code.cost.usage | Стоимость сеанса Claude Code | USD |
claude_code.token.usage | Количество использованных токенов | tokens |
claude_code.code_edit_tool.decision | Количество решений о разрешении инструмента редактирования кода | count |
claude_code.active_time.total | Общее активное время в секундах | s |
Детали метрик
Счётчик сеансов
Увеличивается в начале каждого сеанса. Атрибуты:Счётчик строк кода
Увеличивается при добавлении или удалении кода. Атрибуты:- Все стандартные атрибуты
type: ("added","removed")
Счётчик запросов на слияние
Увеличивается при создании запросов на слияние через Claude Code. Атрибуты:Счётчик коммитов
Увеличивается при создании коммитов git через Claude Code. Атрибуты:Счётчик затрат
Увеличивается после каждого запроса API. Атрибуты:- Все стандартные атрибуты
model: Идентификатор модели (например, “claude-sonnet-4-5-20250929”)
Счётчик токенов
Увеличивается после каждого запроса API. Атрибуты:- Все стандартные атрибуты
type: ("input","output","cacheRead","cacheCreation")model: Идентификатор модели (например, “claude-sonnet-4-5-20250929”)
Счётчик решений инструмента редактирования кода
Увеличивается, когда пользователь принимает или отклоняет использование инструмента Edit, Write или NotebookEdit. Атрибуты:- Все стандартные атрибуты
tool: Имя инструмента ("Edit","Write","NotebookEdit")decision: Решение пользователя ("accept","reject")language: Язык программирования отредактированного файла (например,"TypeScript","Python","JavaScript","Markdown"). Возвращает"unknown"для неизвестных расширений файлов.
Счётчик активного времени
Отслеживает фактическое время активного использования Claude Code (не время простоя). Эта метрика увеличивается во время взаимодействия пользователя, такого как ввод подсказок или получение ответов. Атрибуты:События
Claude Code экспортирует следующие события через логи/события OpenTelemetry (когда настроенOTEL_LOGS_EXPORTER):
Событие пользовательской подсказки
Регистрируется, когда пользователь отправляет подсказку. Имя события:claude_code.user_prompt
Атрибуты:
- Все стандартные атрибуты
event.name:"user_prompt"event.timestamp: Временная метка ISO 8601prompt_length: Длина подсказкиprompt: Содержимое подсказки (скрыто по умолчанию, включить с помощьюOTEL_LOG_USER_PROMPTS=1)
Событие результата инструмента
Регистрируется, когда инструмент завершает выполнение. Имя события:claude_code.tool_result
Атрибуты:
- Все стандартные атрибуты
event.name:"tool_result"event.timestamp: Временная метка ISO 8601tool_name: Имя инструментаsuccess:"true"или"false"duration_ms: Время выполнения в миллисекундахerror: Сообщение об ошибке (если не удалось)decision: Либо"accept", либо"reject"source: Источник решения -"config","user_permanent","user_temporary","user_abort"или"user_reject"tool_parameters: Строка JSON, содержащая параметры, специфичные для инструмента (если доступно)- Для инструмента Bash: включает
bash_command,full_command,timeout,description,sandbox
- Для инструмента Bash: включает
Событие запроса API
Регистрируется для каждого запроса API к Claude. Имя события:claude_code.api_request
Атрибуты:
- Все стандартные атрибуты
event.name:"api_request"event.timestamp: Временная метка ISO 8601model: Используемая модель (например, “claude-sonnet-4-5-20250929”)cost_usd: Приблизительная стоимость в USDduration_ms: Длительность запроса в миллисекундахinput_tokens: Количество входных токеновoutput_tokens: Количество выходных токеновcache_read_tokens: Количество токенов, прочитанных из кэшаcache_creation_tokens: Количество токенов, использованных для создания кэша
Событие ошибки API
Регистрируется, когда запрос API к Claude не удаётся. Имя события:claude_code.api_error
Атрибуты:
- Все стандартные атрибуты
event.name:"api_error"event.timestamp: Временная метка ISO 8601model: Используемая модель (например, “claude-sonnet-4-5-20250929”)error: Сообщение об ошибкеstatus_code: Код состояния HTTP (если применимо)duration_ms: Длительность запроса в миллисекундахattempt: Номер попытки (для повторных запросов)
Событие решения инструмента
Регистрируется, когда принимается решение о разрешении инструмента (принять/отклонить). Имя события:claude_code.tool_decision
Атрибуты:
- Все стандартные атрибуты
event.name:"tool_decision"event.timestamp: Временная метка ISO 8601tool_name: Имя инструмента (например, “Read”, “Edit”, “Write”, “NotebookEdit” и т. д.)decision: Либо"accept", либо"reject"source: Источник решения -"config","user_permanent","user_temporary","user_abort"или"user_reject"
Интерпретация данных метрик и событий
Метрики, экспортируемые Claude Code, предоставляют ценные сведения о закономерностях использования и производительности. Вот некоторые распространённые визуализации и анализы, которые вы можете создать:Мониторинг использования
| Метрика | Возможность анализа |
|---|---|
claude_code.token.usage | Разбить по type (input/output), пользователю, команде или модели |
claude_code.session.count | Отслеживать принятие и вовлечённость с течением времени |
claude_code.lines_of_code.count | Измерить производительность, отслеживая добавления/удаления кода |
claude_code.commit.count & claude_code.pull_request.count | Понять влияние на рабочие процессы разработки |
Мониторинг затрат
Метрикаclaude_code.cost.usage помогает с:
- Отслеживанием тенденций использования по командам или отдельным лицам
- Выявлением сеансов с высоким использованием для оптимизации
Метрики затрат являются приблизительными. Для официальных данных о выставлении счётов обратитесь к вашему поставщику API (Claude Console, AWS Bedrock или Google Cloud Vertex).
Оповещения и сегментация
Общие оповещения, которые следует рассмотреть:- Скачки затрат
- Необычное потребление токенов
- Высокий объём сеансов от конкретных пользователей
user.account_uuid, organization.id, session.id, model и app.version.
Анализ событий
Данные событий предоставляют подробные сведения о взаимодействиях Claude Code: Закономерности использования инструментов: Анализируйте события результатов инструментов для выявления:- Наиболее часто используемых инструментов
- Показателей успеха инструментов
- Среднего времени выполнения инструментов
- Закономерностей ошибок по типам инструментов
Рассмотрение бэкенда
Выбор бэкенда метрик и логов определит типы анализов, которые вы можете выполнять:Для метрик:
- Базы данных временных рядов (например, Prometheus): Расчёты скорости, агрегированные метрики
- Хранилища столбцов (например, ClickHouse): Сложные запросы, анализ уникальных пользователей
- Полнофункциональные платформы наблюдаемости (например, Honeycomb, Datadog): Продвинутые запросы, визуализация, оповещения
Для событий/логов:
- Системы агрегации логов (например, Elasticsearch, Loki): Полнотекстовый поиск, анализ логов
- Хранилища столбцов (например, ClickHouse): Анализ структурированных событий
- Полнофункциональные платформы наблюдаемости (например, Honeycomb, Datadog): Корреляция между метриками и событиями
Информация о сервисе
Все метрики и события экспортируются со следующими атрибутами ресурса:service.name:claude-codeservice.version: Текущая версия Claude Codeos.type: Тип операционной системы (например,linux,darwin,windows)os.version: Строка версии операционной системыhost.arch: Архитектура хоста (например,amd64,arm64)wsl.version: Номер версии WSL (присутствует только при запуске на Windows Subsystem for Linux)- Имя счётчика:
com.anthropic.claude_code
Ресурсы для измерения ROI
Для полного руководства по измерению возврата инвестиций для Claude Code, включая настройку телеметрии, анализ затрат, метрики производительности и автоматизированные отчёты, см. Руководство по измерению ROI Claude Code. Этот репозиторий предоставляет готовые конфигурации Docker Compose, настройки Prometheus и OpenTelemetry, а также шаблоны для создания отчётов о производительности, интегрированные с такими инструментами, как Linear.Рассмотрение безопасности/конфиденциальности
- Телеметрия является добровольной и требует явной конфигурации
- Конфиденциальная информация, такая как ключи API или содержимое файлов, никогда не включается в метрики или события
- Содержимое пользовательских подсказок скрыто по умолчанию - записывается только длина подсказки. Чтобы включить логирование пользовательских подсказок, установите
OTEL_LOG_USER_PROMPTS=1