Il supporto OpenTelemetry è attualmente in beta e i dettagli sono soggetti a modifiche.

OpenTelemetry in Claude Code

Claude Code supporta le metriche OpenTelemetry (OTel) per il monitoraggio e l’osservabilità. Questo documento spiega come abilitare e configurare OTel per Claude Code.

Tutti i dati metrici sono serie temporali esportate tramite il protocollo standard di metriche di OpenTelemetry. È responsabilità dell’utente assicurarsi che il proprio backend di metriche sia configurato correttamente e che la granularità di aggregazione soddisfi i requisiti di monitoraggio.

Avvio Rapido

Configura OpenTelemetry utilizzando le variabili d’ambiente:

# 1. Abilita la telemetria
export CLAUDE_CODE_ENABLE_TELEMETRY=1

# 2. Scegli un esportatore
export OTEL_METRICS_EXPORTER=otlp       # Opzioni: otlp, prometheus, console

# 3. Configura l'endpoint OTLP (per l'esportatore OTLP)
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# 4. Imposta l'autenticazione (se richiesta)
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-token"

# 5. Per il debug: riduci l'intervallo di esportazione (predefinito: 600000ms/10min)
export OTEL_METRIC_EXPORT_INTERVAL=10000  # 10 secondi

# 6. Esegui Claude Code
claude

L’intervallo di esportazione predefinito è di 10 minuti. Durante la configurazione, potresti voler utilizzare un intervallo più breve per scopi di debug. Ricorda di reimpostarlo per l’uso in produzione.

Per le opzioni di configurazione complete, consulta la specifica OpenTelemetry.

Configurazione dell’Amministratore

Gli amministratori possono configurare le impostazioni OpenTelemetry per tutti gli utenti attraverso il file delle impostazioni gestite. Questo permette un controllo centralizzato delle impostazioni di telemetria in tutta l’organizzazione. Consulta la gerarchia di configurazione per maggiori informazioni su come vengono applicate le impostazioni.

Il file delle impostazioni gestite si trova in:

  • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
  • Linux: /etc/claude-code/managed-settings.json

Esempio di configurazione delle impostazioni gestite:

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.company.com:4317",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer company-token"
  }
}

Le impostazioni gestite possono essere distribuite tramite MDM (Mobile Device Management) o altre soluzioni di gestione dei dispositivi. Le variabili d’ambiente definite nel file delle impostazioni gestite hanno un’alta precedenza e non possono essere sovrascritte dagli utenti.

Dettagli di Configurazione

Variabili di Configurazione Comuni

Variabile d’AmbienteDescrizioneValori di Esempio
CLAUDE_CODE_ENABLE_TELEMETRYAbilita la raccolta di telemetria (richiesto)1
OTEL_METRICS_EXPORTERTipo/i di esportatore da utilizzare (separati da virgola)console, otlp, prometheus
OTEL_EXPORTER_OTLP_PROTOCOLProtocollo per l’esportatore OTLPgrpc, http/json, http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINTEndpoint del collettore OTLPhttp://localhost:4317
OTEL_EXPORTER_OTLP_HEADERSHeader di autenticazione per OTLPAuthorization=Bearer token
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYChiave client per l’autenticazione mTLSPercorso al file della chiave client
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATECertificato client per l’autenticazione mTLSPercorso al file del certificato client
OTEL_METRIC_EXPORT_INTERVALIntervallo di esportazione in millisecondi (predefinito: 10000)5000, 60000

Controllo della Cardinalità delle Metriche

Le seguenti variabili d’ambiente controllano quali attributi sono inclusi nelle metriche per gestire la cardinalità:

Variabile d’AmbienteDescrizioneValore PredefinitoEsempio per Disabilitare
OTEL_METRICS_INCLUDE_SESSION_IDIncludi l’attributo session.id nelle metrichetruefalse
OTEL_METRICS_INCLUDE_VERSIONIncludi l’attributo app.version nelle metrichefalsetrue
OTEL_METRICS_INCLUDE_ACCOUNT_UUIDIncludi l’attributo user.account_uuid nelle metrichetruefalse

Queste variabili aiutano a controllare la cardinalità delle metriche, che influisce sui requisiti di archiviazione e sulle prestazioni delle query nel backend delle metriche. Una cardinalità inferiore generalmente significa migliori prestazioni e costi di archiviazione più bassi, ma dati meno granulari per l’analisi.

Configurazioni di Esempio

# Debug su console (intervalli di 1 secondo)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
export OTEL_METRIC_EXPORT_INTERVAL=1000

# OTLP/gRPC
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Prometheus
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=prometheus

# Esportatori multipli
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console,otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

Metriche Disponibili

Claude Code esporta le seguenti metriche:

Nome MetricaDescrizioneUnità
claude_code.session.countConteggio delle sessioni CLI avviateconteggio
claude_code.lines_of_code.countConteggio delle righe di codice modificateconteggio
claude_code.pull_request.countNumero di pull request createconteggio
claude_code.commit.countNumero di commit git creaticonteggio
claude_code.cost.usageCosto della sessione Claude CodeUSD
claude_code.token.usageNumero di token utilizzatitoken

Dettagli delle Metriche

Tutte le metriche condividono questi attributi standard:

  • session.id: Identificatore univoco della sessione (controllato da OTEL_METRICS_INCLUDE_SESSION_ID)
  • app.version: Versione corrente di Claude Code (controllato da OTEL_METRICS_INCLUDE_VERSION)
  • organization.id: UUID dell’organizzazione (quando autenticato)
  • user.account_uuid: UUID dell’account (quando autenticato, controllato da OTEL_METRICS_INCLUDE_ACCOUNT_UUID)

1. Contatore di Sessione

Emesso all’inizio di ogni sessione.

2. Contatore di Righe di Codice

Emesso quando il codice viene aggiunto o rimosso.

  • Attributo aggiuntivo: type ("added" o "removed")

3. Contatore di Pull Request

Emesso quando si creano pull request tramite Claude Code.

4. Contatore di Commit

Emesso quando si creano commit git tramite Claude Code.

5. Contatore di Costi

Emesso dopo ogni richiesta API.

  • Attributo aggiuntivo: model

6. Contatore di Token

Emesso dopo ogni richiesta API.

  • Attributi aggiuntivi: type ("input", "output", "cacheRead", "cacheCreation") e model

Interpretazione dei Dati Metrici

Queste metriche forniscono informazioni sui modelli di utilizzo, sulla produttività e sui costi:

Monitoraggio dell’Utilizzo

MetricaOpportunità di Analisi
claude_code.token.usageSuddivisione per type (input/output), utente, team o modello
claude_code.session.countTraccia l’adozione e il coinvolgimento nel tempo
claude_code.lines_of_code.countMisura la produttività tracciando aggiunte/rimozioni di codice
claude_code.commit.count & claude_code.pull_request.countComprendi l’impatto sui flussi di lavoro di sviluppo

Monitoraggio dei Costi

La metrica claude_code.cost.usage aiuta con:

  • Tracciamento delle tendenze di utilizzo tra team o individui
  • Identificazione di sessioni ad alto utilizzo per l’ottimizzazione

Le metriche dei costi sono approssimazioni. Per i dati di fatturazione ufficiali, fai riferimento al tuo provider API (Anthropic Console, AWS Bedrock o Google Cloud Vertex).

Avvisi e Segmentazione

Avvisi comuni da considerare:

  • Picchi di costo
  • Consumo insolito di token
  • Alto volume di sessioni da utenti specifici

Tutte le metriche possono essere segmentate per user.account_uuid, organization.id, session.id, model e app.version.

Considerazioni sul Backend

Tipo di BackendMigliore Per
Database di serie temporali (Prometheus)Calcoli di frequenza, metriche aggregate
Archivi colonnari (ClickHouse)Query complesse, analisi di utenti unici
Piattaforme di osservabilità (Honeycomb, Datadog)Query avanzate, visualizzazione, avvisi

Per le metriche DAU/WAU/MAU, scegli backend che supportano query efficienti di valori unici.

Informazioni sul Servizio

Tutte le metriche vengono esportate con:

  • Nome del Servizio: claude-code
  • Versione del Servizio: Versione corrente di Claude Code
  • Nome del Meter: com.anthropic.claude_code

Considerazioni sulla Sicurezza

  • La telemetria è opt-in e richiede una configurazione esplicita
  • Informazioni sensibili come chiavi API o contenuti di file non sono mai inclusi nelle metriche