Apprenez comment activer et configurer OpenTelemetry pour Claude Code.
/Library/Application Support/ClaudeCode/managed-settings.json
/etc/claude-code/managed-settings.json
C:\ProgramData\ClaudeCode\managed-settings.json
Variable d’Environnement | Description | Valeurs d’Exemple |
---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | Active la collecte de télémétrie (requis) | 1 |
OTEL_METRICS_EXPORTER | Type(s) d’exportateur de métriques (séparés par des virgules) | console , otlp , prometheus |
OTEL_LOGS_EXPORTER | Type(s) d’exportateur de journaux/événements (séparés par des virgules) | console , otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | Protocole pour l’exportateur OTLP (tous les signaux) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | Point de terminaison du collecteur OTLP (tous les signaux) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | Protocole pour les métriques (remplace le général) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | Point de terminaison des métriques OTLP (remplace le général) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | Protocole pour les journaux (remplace le général) | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Point de terminaison des journaux OTLP (remplace le général) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | En-têtes d’authentification pour OTLP | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | Clé client pour l’authentification mTLS | Chemin vers le fichier de clé client |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | Certificat client pour l’authentification mTLS | Chemin vers le fichier de certificat client |
OTEL_METRIC_EXPORT_INTERVAL | Intervalle d’exportation en millisecondes (par défaut : 60000) | 5000 , 60000 |
OTEL_LOGS_EXPORT_INTERVAL | Intervalle d’exportation des journaux en millisecondes (par défaut : 5000) | 1000 , 10000 |
OTEL_LOG_USER_PROMPTS | Activer la journalisation du contenu des invites utilisateur (par défaut : désactivé) | 1 pour activer |
Variable d’Environnement | Description | Valeur par Défaut | Exemple pour Désactiver |
---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | Inclure l’attribut session.id dans les métriques | true | false |
OTEL_METRICS_INCLUDE_VERSION | Inclure l’attribut app.version dans les métriques | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | Inclure l’attribut user.account_uuid dans les métriques | true | false |
.claude/settings.json
:
OTEL_RESOURCE_ATTRIBUTES
:
OTEL_RESOURCE_ATTRIBUTES
suit la spécification W3C Baggage, qui a des exigences de formatage strictes :user.organizationName=My Company
est invalidekey1=value1,key2=value2
"key=value with spaces"
) n’est pas supporté par la spécification OpenTelemetry et résultera en des attributs préfixés avec des guillemets.Attribut | Description | Contrôlé Par |
---|---|---|
session.id | Identifiant de session unique | OTEL_METRICS_INCLUDE_SESSION_ID (par défaut : true) |
app.version | Version actuelle de Claude Code | OTEL_METRICS_INCLUDE_VERSION (par défaut : false) |
organization.id | UUID de l’organisation (quand authentifié) | Toujours inclus quand disponible |
user.account_uuid | UUID du compte (quand authentifié) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (par défaut : true) |
terminal.type | Type de terminal (par exemple, iTerm.app , vscode , cursor , tmux ) | Toujours inclus quand détecté |
Nom de Métrique | Description | Unité |
---|---|---|
claude_code.session.count | Nombre de sessions CLI démarrées | count |
claude_code.lines_of_code.count | Nombre de lignes de code modifiées | count |
claude_code.pull_request.count | Nombre de pull requests créées | count |
claude_code.commit.count | Nombre de commits git créés | count |
claude_code.cost.usage | Coût de la session Claude Code | USD |
claude_code.token.usage | Nombre de jetons utilisés | tokens |
claude_code.code_edit_tool.decision | Nombre de décisions de permission d’outil d’édition de code | count |
claude_code.active_time.total | Temps actif total en secondes | s |
type
: ("added"
, "removed"
)model
: Identifiant du modèle (par exemple, “claude-3-5-sonnet-20241022”)type
: ("input"
, "output"
, "cacheRead"
, "cacheCreation"
)model
: Identifiant du modèle (par exemple, “claude-3-5-sonnet-20241022”)tool
: Nom de l’outil ("Edit"
, "MultiEdit"
, "Write"
, "NotebookEdit"
)decision
: Décision de l’utilisateur ("accept"
, "reject"
)language
: Langage de programmation du fichier édité (par exemple, "TypeScript"
, "Python"
, "JavaScript"
, "Markdown"
). Retourne "unknown"
pour les extensions de fichier non reconnues.OTEL_LOGS_EXPORTER
est configuré) :
claude_code.user_prompt
Attributs :
event.name
: "user_prompt"
event.timestamp
: Horodatage ISO 8601prompt_length
: Longueur de l’inviteprompt
: Contenu de l’invite (censuré par défaut, activez avec OTEL_LOG_USER_PROMPTS=1
)claude_code.tool_result
Attributs :
event.name
: "tool_result"
event.timestamp
: Horodatage ISO 8601tool_name
: Nom de l’outilsuccess
: "true"
ou "false"
duration_ms
: Temps d’exécution en millisecondeserror
: Message d’erreur (si échec)decision
: Soit "accept"
soit "reject"
source
: Source de décision - "config"
, "user_permanent"
, "user_temporary"
, "user_abort"
, ou "user_reject"
tool_parameters
: Chaîne JSON contenant les paramètres spécifiques à l’outil (quand disponible)
bash_command
, full_command
, timeout
, description
, sandbox
claude_code.api_request
Attributs :
event.name
: "api_request"
event.timestamp
: Horodatage ISO 8601model
: Modèle utilisé (par exemple, “claude-3-5-sonnet-20241022”)cost_usd
: Coût estimé en USDduration_ms
: Durée de la requête en millisecondesinput_tokens
: Nombre de jetons d’entréeoutput_tokens
: Nombre de jetons de sortiecache_read_tokens
: Nombre de jetons lus depuis le cachecache_creation_tokens
: Nombre de jetons utilisés pour la création de cacheclaude_code.api_error
Attributs :
event.name
: "api_error"
event.timestamp
: Horodatage ISO 8601model
: Modèle utilisé (par exemple, “claude-3-5-sonnet-20241022”)error
: Message d’erreurstatus_code
: Code de statut HTTP (si applicable)duration_ms
: Durée de la requête en millisecondesattempt
: Numéro de tentative (pour les requêtes réessayées)claude_code.tool_decision
Attributs :
event.name
: "tool_decision"
event.timestamp
: Horodatage ISO 8601tool_name
: Nom de l’outil (par exemple, “Read”, “Edit”, “MultiEdit”, “Write”, “NotebookEdit”, etc.)decision
: Soit "accept"
soit "reject"
source
: Source de décision - "config"
, "user_permanent"
, "user_temporary"
, "user_abort"
, ou "user_reject"
Métrique | Opportunité d’Analyse |
---|---|
claude_code.token.usage | Décomposer par type (entrée/sortie), utilisateur, équipe, ou modèle |
claude_code.session.count | Suivre l’adoption et l’engagement au fil du temps |
claude_code.lines_of_code.count | Mesurer la productivité en suivant les ajouts/suppressions de code |
claude_code.commit.count & claude_code.pull_request.count | Comprendre l’impact sur les flux de travail de développement |
claude_code.cost.usage
aide avec :
user.account_uuid
, organization.id
, session.id
, model
, et app.version
.
service.name
: claude-code
service.version
: Version actuelle de Claude Codeos.type
: Type de système d’exploitation (par exemple, linux
, darwin
, windows
)os.version
: Chaîne de version du système d’exploitationhost.arch
: Architecture de l’hôte (par exemple, amd64
, arm64
)wsl.version
: Numéro de version WSL (présent seulement lors de l’exécution sur Windows Subsystem for Linux)com.anthropic.claude_code
OTEL_LOG_USER_PROMPTS=1