Aprende cómo habilitar y configurar OpenTelemetry para Claude Code.
/Library/Application Support/ClaudeCode/managed-settings.json
/etc/claude-code/managed-settings.json
C:\ProgramData\ClaudeCode\managed-settings.json
Variable de Entorno | Descripción | Valores de Ejemplo |
---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | Habilita la recolección de telemetría (requerido) | 1 |
OTEL_METRICS_EXPORTER | Tipo(s) de exportador de métricas (separados por comas) | console , otlp , prometheus |
OTEL_LOGS_EXPORTER | Tipo(s) de exportador de logs/eventos (separados por comas) | console , otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | Protocolo para exportador OTLP (todas las señales) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | Endpoint del colector OTLP (todas las señales) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | Protocolo para métricas (anula el general) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | Endpoint de métricas OTLP (anula el general) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | Protocolo para logs (anula el general) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Endpoint de logs OTLP (anula el general) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | Encabezados de autenticación para OTLP | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | Clave de cliente para autenticación mTLS | Ruta al archivo de clave de cliente |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | Certificado de cliente para autenticación mTLS | Ruta al archivo de certificado de cliente |
OTEL_METRIC_EXPORT_INTERVAL | Intervalo de exportación en milisegundos (predeterminado: 60000) | 5000 , 60000 |
OTEL_LOGS_EXPORT_INTERVAL | Intervalo de exportación de logs en milisegundos (predeterminado: 5000) | 1000 , 10000 |
OTEL_LOG_USER_PROMPTS | Habilitar registro del contenido de prompts de usuario (predeterminado: deshabilitado) | 1 para habilitar |
Variable de Entorno | Descripción | Valor Predeterminado | Ejemplo para Deshabilitar |
---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | Incluir atributo session.id en métricas | true | false |
OTEL_METRICS_INCLUDE_VERSION | Incluir atributo app.version en métricas | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | Incluir atributo user.account_uuid en métricas | true | false |
.claude/settings.json
:
OTEL_RESOURCE_ATTRIBUTES
:
OTEL_RESOURCE_ATTRIBUTES
sigue la especificación W3C Baggage, que tiene requisitos estrictos de formato:user.organizationName=My Company
es inválidokey1=value1,key2=value2
"key=value with spaces"
) no está soportado por la especificación de OpenTelemetry y resultará en atributos con prefijo de comillas.Atributo | Descripción | Controlado Por |
---|---|---|
session.id | Identificador único de sesión | OTEL_METRICS_INCLUDE_SESSION_ID (predeterminado: true) |
app.version | Versión actual de Claude Code | OTEL_METRICS_INCLUDE_VERSION (predeterminado: false) |
organization.id | UUID de organización (cuando está autenticado) | Siempre incluido cuando está disponible |
user.account_uuid | UUID de cuenta (cuando está autenticado) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (predeterminado: true) |
terminal.type | Tipo de terminal (ej., iTerm.app , vscode , cursor , tmux ) | Siempre incluido cuando se detecta |
Nombre de Métrica | Descripción | Unidad |
---|---|---|
claude_code.session.count | Conteo de sesiones CLI iniciadas | count |
claude_code.lines_of_code.count | Conteo de líneas de código modificadas | count |
claude_code.pull_request.count | Número de pull requests creados | count |
claude_code.commit.count | Número de commits de git creados | count |
claude_code.cost.usage | Costo de la sesión de Claude Code | USD |
claude_code.token.usage | Número de tokens utilizados | tokens |
claude_code.code_edit_tool.decision | Conteo de decisiones de permisos de herramientas de edición de código | count |
claude_code.active_time.total | Tiempo activo total en segundos | s |
type
: ("added"
, "removed"
)model
: Identificador del modelo (ej., “claude-3-5-sonnet-20241022”)type
: ("input"
, "output"
, "cacheRead"
, "cacheCreation"
)model
: Identificador del modelo (ej., “claude-3-5-sonnet-20241022”)tool
: Nombre de la herramienta ("Edit"
, "MultiEdit"
, "Write"
, "NotebookEdit"
)decision
: Decisión del usuario ("accept"
, "reject"
)language
: Lenguaje de programación del archivo editado (ej., "TypeScript"
, "Python"
, "JavaScript"
, "Markdown"
). Devuelve "unknown"
para extensiones de archivo no reconocidas.OTEL_LOGS_EXPORTER
está configurado):
claude_code.user_prompt
Atributos:
event.name
: "user_prompt"
event.timestamp
: Marca de tiempo ISO 8601prompt_length
: Longitud del promptprompt
: Contenido del prompt (redactado por defecto, habilitar con OTEL_LOG_USER_PROMPTS=1
)claude_code.tool_result
Atributos:
event.name
: "tool_result"
event.timestamp
: Marca de tiempo ISO 8601tool_name
: Nombre de la herramientasuccess
: "true"
o "false"
duration_ms
: Tiempo de ejecución en milisegundoserror
: Mensaje de error (si falló)decision
: Ya sea "accept"
o "reject"
source
: Fuente de decisión - "config"
, "user_permanent"
, "user_temporary"
, "user_abort"
, o "user_reject"
tool_parameters
: Cadena JSON que contiene parámetros específicos de la herramienta (cuando está disponible)
bash_command
, full_command
, timeout
, description
, sandbox
claude_code.api_request
Atributos:
event.name
: "api_request"
event.timestamp
: Marca de tiempo ISO 8601model
: Modelo utilizado (ej., “claude-3-5-sonnet-20241022”)cost_usd
: Costo estimado en USDduration_ms
: Duración de la solicitud en milisegundosinput_tokens
: Número de tokens de entradaoutput_tokens
: Número de tokens de salidacache_read_tokens
: Número de tokens leídos del cachécache_creation_tokens
: Número de tokens utilizados para creación de cachéclaude_code.api_error
Atributos:
event.name
: "api_error"
event.timestamp
: Marca de tiempo ISO 8601model
: Modelo utilizado (ej., “claude-3-5-sonnet-20241022”)error
: Mensaje de errorstatus_code
: Código de estado HTTP (si aplica)duration_ms
: Duración de la solicitud en milisegundosattempt
: Número de intento (para solicitudes reintentadas)claude_code.tool_decision
Atributos:
event.name
: "tool_decision"
event.timestamp
: Marca de tiempo ISO 8601tool_name
: Nombre de la herramienta (ej., “Read”, “Edit”, “MultiEdit”, “Write”, “NotebookEdit”, etc.)decision
: Ya sea "accept"
o "reject"
source
: Fuente de decisión - "config"
, "user_permanent"
, "user_temporary"
, "user_abort"
, o "user_reject"
Métrica | Oportunidad de Análisis |
---|---|
claude_code.token.usage | Desglosar por type (entrada/salida), usuario, equipo, o modelo |
claude_code.session.count | Rastrear adopción y compromiso a lo largo del tiempo |
claude_code.lines_of_code.count | Medir productividad rastreando adiciones/eliminaciones de código |
claude_code.commit.count & claude_code.pull_request.count | Entender el impacto en los flujos de trabajo de desarrollo |
claude_code.cost.usage
ayuda con:
user.account_uuid
, organization.id
, session.id
, model
, y app.version
.
service.name
: claude-code
service.version
: Versión actual de Claude Codeos.type
: Tipo de sistema operativo (ej., linux
, darwin
, windows
)os.version
: Cadena de versión del sistema operativohost.arch
: Arquitectura del host (ej., amd64
, arm64
)wsl.version
: Número de versión de WSL (solo presente cuando se ejecuta en Windows Subsystem for Linux)com.anthropic.claude_code
OTEL_LOG_USER_PROMPTS=1