Monitoramento
Aprenda como habilitar e configurar OpenTelemetry para Claude Code.
Claude Code suporta métricas e eventos OpenTelemetry (OTel) para monitoramento e observabilidade.
Todas as métricas são dados de séries temporais exportados via protocolo de métricas padrão do OpenTelemetry, e eventos são exportados via protocolo de logs/eventos do OpenTelemetry. É responsabilidade do usuário garantir que seus backends de métricas e logs estejam configurados adequadamente e que a granularidade de agregação atenda aos seus requisitos de monitoramento.
O suporte ao OpenTelemetry está atualmente em beta e os detalhes estão sujeitos a alterações.
Início Rápido
Configure OpenTelemetry usando variáveis de ambiente:
Os intervalos de exportação padrão são 60 segundos para métricas e 5 segundos para logs. Durante a configuração, você pode querer usar intervalos mais curtos para fins de depuração. Lembre-se de redefinir estes para uso em produção.
Para opções de configuração completas, consulte a especificação OpenTelemetry.
Configuração do Administrador
Administradores podem configurar configurações OpenTelemetry para todos os usuários através do arquivo de configurações gerenciadas. Isso permite controle centralizado das configurações de telemetria em toda uma organização. Consulte a precedência de configurações para mais informações sobre como as configurações são aplicadas.
O arquivo de configurações gerenciadas está localizado em:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json
- Linux:
/etc/claude-code/managed-settings.json
Exemplo de configuração de configurações gerenciadas:
Configurações gerenciadas podem ser distribuídas via MDM (Mobile Device Management) ou outras soluções de gerenciamento de dispositivos. Variáveis de ambiente definidas no arquivo de configurações gerenciadas têm alta precedência e não podem ser substituídas pelos usuários.
Detalhes de Configuração
Variáveis de Configuração Comuns
Variável de Ambiente | Descrição | Valores de Exemplo |
---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | Habilita coleta de telemetria (obrigatório) | 1 |
OTEL_METRICS_EXPORTER | Tipo(s) de exportador de métricas (separados por vírgula) | console , otlp , prometheus |
OTEL_LOGS_EXPORTER | Tipo(s) de exportador de logs/eventos (separados por vírgula) | console , otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | Protocolo para exportador OTLP (todos os sinais) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | Endpoint do coletor OTLP (todos os sinais) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | Protocolo para métricas (substitui geral) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | Endpoint de métricas OTLP (substitui geral) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | Protocolo para logs (substitui geral) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Endpoint de logs OTLP (substitui geral) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | Cabeçalhos de autenticação para OTLP | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | Chave do cliente para autenticação mTLS | Caminho para arquivo de chave do cliente |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | Certificado do cliente para autenticação mTLS | Caminho para arquivo de certificado do cliente |
OTEL_METRIC_EXPORT_INTERVAL | Intervalo de exportação em milissegundos (padrão: 60000) | 5000 , 60000 |
OTEL_LOGS_EXPORT_INTERVAL | Intervalo de exportação de logs em milissegundos (padrão: 5000) | 1000 , 10000 |
OTEL_LOG_USER_PROMPTS | Habilitar logging do conteúdo de prompts do usuário (padrão: desabilitado) | 1 para habilitar |
Controle de Cardinalidade de Métricas
As seguintes variáveis de ambiente controlam quais atributos são incluídos nas métricas para gerenciar cardinalidade:
Variável de Ambiente | Descrição | Valor Padrão | Exemplo para Desabilitar |
---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | Incluir atributo session.id nas métricas | true | false |
OTEL_METRICS_INCLUDE_VERSION | Incluir atributo app.version nas métricas | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | Incluir atributo user.account_uuid nas métricas | true | false |
Essas variáveis ajudam a controlar a cardinalidade das métricas, o que afeta os requisitos de armazenamento e desempenho de consulta em seu backend de métricas. Menor cardinalidade geralmente significa melhor desempenho e menores custos de armazenamento, mas dados menos granulares para análise.
Suporte a Organizações Multi-Equipe
Organizações com múltiplas equipes ou departamentos podem adicionar atributos personalizados para distinguir entre diferentes grupos usando a variável de ambiente OTEL_RESOURCE_ATTRIBUTES
:
Esses atributos personalizados serão incluídos em todas as métricas e eventos, permitindo que você:
- Filtre métricas por equipe ou departamento
- Rastreie custos por centro de custo
- Crie dashboards específicos de equipe
- Configure alertas para equipes específicas
Configurações de Exemplo
Métricas e Eventos Disponíveis
Atributos Padrão
Todas as métricas e eventos compartilham estes atributos padrão:
Atributo | Descrição | Controlado Por |
---|---|---|
session.id | Identificador único da sessão | OTEL_METRICS_INCLUDE_SESSION_ID (padrão: true) |
app.version | Versão atual do Claude Code | OTEL_METRICS_INCLUDE_VERSION (padrão: false) |
organization.id | UUID da organização (quando autenticado) | Sempre incluído quando disponível |
user.account_uuid | UUID da conta (quando autenticado) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (padrão: true) |
terminal.type | Tipo de terminal (ex: iTerm.app , vscode , cursor , tmux ) | Sempre incluído quando detectado |
Métricas
Claude Code exporta as seguintes métricas:
Nome da Métrica | Descrição | Unidade |
---|---|---|
claude_code.session.count | Contagem de sessões CLI iniciadas | count |
claude_code.lines_of_code.count | Contagem de linhas de código modificadas | count |
claude_code.pull_request.count | Número de pull requests criados | count |
claude_code.commit.count | Número de commits git criados | count |
claude_code.cost.usage | Custo da sessão Claude Code | USD |
claude_code.token.usage | Número de tokens usados | tokens |
claude_code.code_edit_tool.decision | Contagem de decisões de permissão da ferramenta de edição de código | count |
Detalhes das Métricas
Contador de Sessão
Incrementado no início de cada sessão.
Atributos:
- Todos os atributos padrão
Contador de Linhas de Código
Incrementado quando código é adicionado ou removido.
Atributos:
- Todos os atributos padrão
type
: ("added"
,"removed"
)
Contador de Pull Request
Incrementado ao criar pull requests via Claude Code.
Atributos:
- Todos os atributos padrão
Contador de Commit
Incrementado ao criar commits git via Claude Code.
Atributos:
- Todos os atributos padrão
Contador de Custo
Incrementado após cada requisição de API.
Atributos:
- Todos os atributos padrão
model
: Identificador do modelo (ex: “claude-3-5-sonnet-20241022”)
Contador de Token
Incrementado após cada requisição de API.
Atributos:
- Todos os atributos padrão
type
: ("input"
,"output"
,"cacheRead"
,"cacheCreation"
)model
: Identificador do modelo (ex: “claude-3-5-sonnet-20241022”)
Contador de Decisão da Ferramenta de Edição de Código
Incrementado quando o usuário aceita ou rejeita o uso das ferramentas Edit, MultiEdit, Write ou NotebookEdit.
Atributos:
- Todos os atributos padrão
tool
: Nome da ferramenta ("Edit"
,"MultiEdit"
,"Write"
,"NotebookEdit"
)decision
: Decisão do usuário ("accept"
,"reject"
)language
: Linguagem de programação do arquivo editado (ex:"TypeScript"
,"Python"
,"JavaScript"
,"Markdown"
). Retorna"unknown"
para extensões de arquivo não reconhecidas.
Eventos
Claude Code exporta os seguintes eventos via logs/eventos OpenTelemetry (quando OTEL_LOGS_EXPORTER
está configurado):
Evento de Prompt do Usuário
Registrado quando um usuário submete um prompt.
Nome do Evento: claude_code.user_prompt
Atributos:
- Todos os atributos padrão
event.name
:"user_prompt"
event.timestamp
: Timestamp ISO 8601prompt_length
: Comprimento do promptprompt
: Conteúdo do prompt (censurado por padrão, habilite comOTEL_LOG_USER_PROMPTS=1
)
Evento de Resultado da Ferramenta
Registrado quando uma ferramenta completa a execução.
Nome do Evento: claude_code.tool_result
Atributos:
- Todos os atributos padrão
event.name
:"tool_result"
event.timestamp
: Timestamp ISO 8601name
: Nome da ferramentasuccess
:"true"
ou"false"
duration_ms
: Tempo de execução em milissegundoserror
: Mensagem de erro (se falhou)
Evento de Requisição de API
Registrado para cada requisição de API para Claude.
Nome do Evento: claude_code.api_request
Atributos:
- Todos os atributos padrão
event.name
:"api_request"
event.timestamp
: Timestamp ISO 8601model
: Modelo usado (ex: “claude-3-5-sonnet-20241022”)cost_usd
: Custo estimado em USDduration_ms
: Duração da requisição em milissegundosinput_tokens
: Número de tokens de entradaoutput_tokens
: Número de tokens de saídacache_read_tokens
: Número de tokens lidos do cachecache_creation_tokens
: Número de tokens usados para criação de cache
Evento de Erro de API
Registrado quando uma requisição de API para Claude falha.
Nome do Evento: claude_code.api_error
Atributos:
- Todos os atributos padrão
event.name
:"api_error"
event.timestamp
: Timestamp ISO 8601model
: Modelo usado (ex: “claude-3-5-sonnet-20241022”)error
: Mensagem de errostatus_code
: Código de status HTTP (se aplicável)duration_ms
: Duração da requisição em milissegundosattempt
: Número da tentativa (para requisições repetidas)
Evento de Decisão da Ferramenta
Registrado quando uma decisão de permissão da ferramenta é tomada (aceitar/rejeitar).
Nome do Evento: claude_code.tool_decision
Atributos:
- Todos os atributos padrão
event.name
:"tool_decision"
event.timestamp
: Timestamp ISO 8601tool_name
: Nome da ferramenta (ex: “Read”, “Edit”, “MultiEdit”, “Write”, “NotebookEdit”, etc.)decision
: Ou"accept"
ou"reject"
source
: Fonte da decisão -"config"
,"user_permanent"
,"user_temporary"
,"user_abort"
, ou"user_reject"
Interpretando Dados de Métricas e Eventos
As métricas exportadas pelo Claude Code fornecem insights valiosos sobre padrões de uso e produtividade. Aqui estão algumas visualizações e análises comuns que você pode criar:
Monitoramento de Uso
Métrica | Oportunidade de Análise |
---|---|
claude_code.token.usage | Detalhar por type (entrada/saída), usuário, equipe ou modelo |
claude_code.session.count | Rastrear adoção e engajamento ao longo do tempo |
claude_code.lines_of_code.count | Medir produtividade rastreando adições/remoções de código |
claude_code.commit.count & claude_code.pull_request.count | Entender impacto nos fluxos de trabalho de desenvolvimento |
Monitoramento de Custo
A métrica claude_code.cost.usage
ajuda com:
- Rastreamento de tendências de uso entre equipes ou indivíduos
- Identificação de sessões de alto uso para otimização
Métricas de custo são aproximações. Para dados oficiais de faturamento, consulte seu provedor de API (Anthropic Console, AWS Bedrock ou Google Cloud Vertex).
Alertas e Segmentação
Alertas comuns a considerar:
- Picos de custo
- Consumo incomum de tokens
- Alto volume de sessões de usuários específicos
Todas as métricas podem ser segmentadas por user.account_uuid
, organization.id
, session.id
, model
e app.version
.
Análise de Eventos
Os dados de eventos fornecem insights detalhados sobre interações do Claude Code:
Padrões de Uso de Ferramentas: Analise eventos de resultado de ferramentas para identificar:
- Ferramentas mais frequentemente usadas
- Taxas de sucesso das ferramentas
- Tempos médios de execução das ferramentas
- Padrões de erro por tipo de ferramenta
Monitoramento de Desempenho: Rastreie durações de requisições de API e tempos de execução de ferramentas para identificar gargalos de desempenho.
Considerações de Backend
Sua escolha de backends de métricas e logs determinará os tipos de análises que você pode realizar:
Para Métricas:
- Bancos de dados de séries temporais (ex: Prometheus): Cálculos de taxa, métricas agregadas
- Armazenamentos colunares (ex: ClickHouse): Consultas complexas, análise de usuários únicos
- Plataformas de observabilidade completas (ex: Honeycomb, Datadog): Consultas avançadas, visualização, alertas
Para Eventos/Logs:
- Sistemas de agregação de logs (ex: Elasticsearch, Loki): Busca de texto completo, análise de logs
- Armazenamentos colunares (ex: ClickHouse): Análise de eventos estruturados
- Plataformas de observabilidade completas (ex: Honeycomb, Datadog): Correlação entre métricas e eventos
Para organizações que requerem métricas de Usuários Ativos Diários/Semanais/Mensais (DAU/WAU/MAU), considere backends que suportam consultas eficientes de valores únicos.
Informações do Serviço
Todas as métricas são exportadas com:
- Nome do Serviço:
claude-code
- Versão do Serviço: Versão atual do Claude Code
- Nome do Medidor:
com.anthropic.claude_code
Considerações de Segurança/Privacidade
- Telemetria é opt-in e requer configuração explícita
- Informações sensíveis como chaves de API ou conteúdos de arquivos nunca são incluídas em métricas ou eventos
- Conteú do prompt do usuário é censurado por padrão - apenas o comprimento do prompt é registrado. Para habilitar o logging de prompts do usuário, defina
OTEL_LOG_USER_PROMPTS=1