Saiba como ativar 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érie temporal exportados via protocolo de métricas padrão do OpenTelemetry, e os 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 adequadamente configurados e que a granularidade de agregação atenda aos seus requisitos de monitoramento.
Configure OpenTelemetry usando variáveis de ambiente:
Reportar código incorreto
Copiar
Perguntar à IA
# 1. Ativar telemetriaexport CLAUDE_CODE_ENABLE_TELEMETRY=1# 2. Escolher exportadores (ambos são opcionais - configure apenas o que você precisa)export OTEL_METRICS_EXPORTER=otlp # Opções: otlp, prometheus, consoleexport OTEL_LOGS_EXPORTER=otlp # Opções: otlp, console# 3. Configurar endpoint OTLP (para exportador OTLP)export OTEL_EXPORTER_OTLP_PROTOCOL=grpcexport OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317# 4. Definir autenticação (se necessário)export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-token"# 5. Para depuração: reduzir intervalos de exportaçãoexport OTEL_METRIC_EXPORT_INTERVAL=10000 # 10 segundos (padrão: 60000ms)export OTEL_LOGS_EXPORT_INTERVAL=5000 # 5 segundos (padrão: 5000ms)# 6. Executar Claude Codeclaude
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 esses valores para uso em produção.
Os administradores podem configurar as definições de 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 a organização. Consulte a precedência de configurações para obter mais informações sobre como as configurações são aplicadas.Exemplo de configuração de configurações gerenciadas:
As configurações gerenciadas podem ser distribuídas via MDM (Mobile Device Management) ou outras soluções de gerenciamento de dispositivos. As 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.
As seguintes variáveis de ambiente controlam quais atributos são incluídos nas métricas para gerenciar a cardinalidade:
Variável de Ambiente
Descrição
Valor Padrão
Exemplo para Desativar
OTEL_METRICS_INCLUDE_SESSION_ID
Incluir atributo session.id em métricas
true
false
OTEL_METRICS_INCLUDE_VERSION
Incluir atributo app.version em métricas
false
true
OTEL_METRICS_INCLUDE_ACCOUNT_UUID
Incluir atributo user.account_uuid em métricas
true
false
Essas variáveis ajudam a controlar a cardinalidade das métricas, o que afeta os requisitos de armazenamento e o desempenho de consultas no seu backend de métricas. Cardinalidade mais baixa geralmente significa melhor desempenho e custos de armazenamento mais baixos, mas dados menos granulares para análise.
O script auxiliar de cabeçalhos é executado na inicialização e periodicamente depois para suportar atualização de token. Por padrão, o script é executado a cada 29 minutos. Personalize o intervalo com a variável de ambiente CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS.
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:
Reportar código incorreto
Copiar
Perguntar à IA
# Adicionar atributos personalizados para identificação de equipeexport OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"
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
Requisitos importantes de formatação para OTEL_RESOURCE_ATTRIBUTES:A variável de ambiente OTEL_RESOURCE_ATTRIBUTES segue a especificação W3C Baggage, que tem requisitos rigorosos de formatação:
Sem espaços permitidos: Os valores não podem conter espaços. Por exemplo, user.organizationName=My Company é inválido
Formato: Deve ser pares chave=valor separados por vírgula: key1=value1,key2=value2
Caracteres permitidos: Apenas caracteres US-ASCII excluindo caracteres de controle, espaços em branco, aspas duplas, vírgulas, ponto-e-vírgula e barras invertidas
Caracteres especiais: Caracteres fora do intervalo permitido devem ser codificados em percentual
Exemplos:
Reportar código incorreto
Copiar
Perguntar à IA
# ❌ Inválido - contém espaçosexport OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"# ✅ Válido - use sublinhados ou camelCase em vez dissoexport OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"# ✅ Válido - codifique em percentual caracteres especiais se necessárioexport OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"
Nota: envolver valores em aspas não escapa espaços. Por exemplo, org.name="My Company" resulta no valor literal "My Company" (com aspas incluídas), não My Company.
tool: Nome da ferramenta ("Edit", "Write", "NotebookEdit")
decision: Decisão do usuário ("accept", "reject")
language: Linguagem de programação do arquivo editado (por exemplo, "TypeScript", "Python", "JavaScript", "Markdown"). Retorna "unknown" para extensões de arquivo não reconhecidas.
Rastreia o tempo real gasto usando ativamente Claude Code (não tempo ocioso). Essa métrica é incrementada durante interações do usuário, como digitar prompts ou receber respostas.Atributos:
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:
Rastreamento de tendências de uso entre equipes ou indivíduos
Identificação de sessões de alto uso para otimização
As métricas de custo são aproximações. Para dados de faturamento oficiais, consulte seu provedor de API (Claude Console, AWS Bedrock ou Google Cloud Vertex).
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 da ferramenta
Tempos médios de execução da ferramenta
Padrões de erro por tipo de ferramenta
Monitoramento de Desempenho: rastreie durações de solicitações de API e tempos de execução de ferramentas para identificar gargalos de desempenho.
Sistemas de agregação de logs (por exemplo, Elasticsearch, Loki): Busca de texto completo, análise de logs
Armazenamentos colunares (por exemplo, ClickHouse): Análise de eventos estruturados
Plataformas de observabilidade completas (por exemplo, Honeycomb, Datadog): Correlação entre métricas e eventos
Para organizações que exigem métricas de Usuário Ativo Diário/Semanal/Mensal (DAU/WAU/MAU), considere backends que suportam consultas eficientes de valor único.
Para um guia abrangente sobre como medir o retorno sobre investimento para Claude Code, incluindo configuração de telemetria, análise de custo, métricas de produtividade e relatórios automatizados, consulte o Guia de Medição de ROI do Claude Code. Este repositório fornece configurações Docker Compose prontas para uso, configurações Prometheus e OpenTelemetry, e modelos para gerar relatórios de produtividade integrados com ferramentas como Linear.
A telemetria é opt-in e requer configuração explícita
Informações sensíveis como chaves de API ou conteúdo de arquivo nunca são incluídas em métricas ou eventos
O conteúdo do prompt do usuário é reduzido por padrão - apenas o comprimento do prompt é registrado. Para ativar o registro de prompt do usuário, defina OTEL_LOG_USER_PROMPTS=1