39 39
40Pour vérifier une configuration qui exporte des métriques, vérifiez votre backend pour la métrique `claude_code.session.count`, que Claude Code émet au démarrage d'une session. Pour vérifier une configuration réservée aux journaux, soumettez une invite et vérifiez l'événement `claude_code.user_prompt`.40Pour vérifier une configuration qui exporte des métriques, vérifiez votre backend pour la métrique `claude_code.session.count`, que Claude Code émet au démarrage d'une session. Pour vérifier une configuration réservée aux journaux, soumettez une invite et vérifiez l'événement `claude_code.user_prompt`.
41 41
42Si rien n'arrive, exécutez `claude --debug` et vérifiez le journal de débogage. Claude Code signale les défaillances des exportateurs que vous configurez en tant qu'erreurs `[3P telemetry]`, où 3P signifie tiers. Les lignes préfixées par `[Anthropic telemetry]` décrivent la [télémétrie opérationnelle distincte d'Anthropic](/docs/fr/data-usage#telemetry-services) et n'indiquent pas un problème avec votre configuration.42Si rien n'arrive, démarrez Claude Code avec `claude --debug-file <path>` et vérifiez le journal qu'il écrit dans ce chemin. Claude Code signale les défaillances des exportateurs que vous configurez en tant qu'erreurs `[3P telemetry]`, où 3P signifie tiers. Les lignes préfixées par `[Anthropic telemetry]` décrivent la [télémétrie opérationnelle distincte d'Anthropic](/docs/fr/data-usage#telemetry-services) et n'indiquent pas un problème avec votre configuration.
43 43
44Pour les options de configuration complètes, consultez la [spécification OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).44Pour les options de configuration complètes, consultez la [spécification OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).
45 45
72 Comment les paramètres gérés verrouillent la destination OTLP72 Comment les paramètres gérés verrouillent la destination OTLP
73</h3>73</h3>
74 74
75Lorsque vous définissez une variable `OTEL_EXPORTER_OTLP_*` dans les paramètres gérés, Claude Code supprime les variables conflictuelles définies par les développeurs au démarrage et enregistre un avertissement que vous pouvez voir avec `claude --debug`. Ce qu'il supprime dépend de la variable que vous définissez :75Lorsque vous définissez une variable `OTEL_EXPORTER_OTLP_*` dans les paramètres gérés, Claude Code supprime les variables conflictuelles définies par les développeurs au démarrage et enregistre un avertissement dans le journal de débogage. Ce qu'il supprime dépend de la variable que vous définissez :
76 76
77* **Points de terminaison** : lorsque vous définissez `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code supprime tous les points de terminaison par signal définis par les développeurs. Les développeurs ne peuvent pas pointer un signal vers un collecteur différent, donc vous n'avez pas besoin de définir également les variables de point de terminaison par signal dans les paramètres gérés.77* **Points de terminaison** : lorsque vous définissez `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code supprime tous les points de terminaison par signal définis par les développeurs. Les développeurs ne peuvent pas pointer un signal vers un collecteur différent, donc vous n'avez pas besoin de définir également les variables de point de terminaison par signal dans les paramètres gérés.
78* **Protocoles** : lorsque vous définissez `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code supprime tous les protocoles par signal définis par les développeurs.78* **Protocoles** : lorsque vous définissez `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code supprime tous les protocoles par signal définis par les développeurs.
96Lorsque l'application de bureau ou un exécuteur d'[environnement auto-hébergé](/docs/fr/self-hosted-environments) lance Claude Code et nomme un point de terminaison OTLP dans l'environnement qu'il fournit, Claude Code épingle la destination de la même manière : les variables de télémétrie du lanceur suppriment les variables définies par les développeurs exactement comme le font les paramètres gérés. Claude Code ne supprime pas les variables que le lanceur lui-même a définies. Nécessite Claude Code v2.1.251 ou version ultérieure.96Lorsque l'application de bureau ou un exécuteur d'[environnement auto-hébergé](/docs/fr/self-hosted-environments) lance Claude Code et nomme un point de terminaison OTLP dans l'environnement qu'il fournit, Claude Code épingle la destination de la même manière : les variables de télémétrie du lanceur suppriment les variables définies par les développeurs exactement comme le font les paramètres gérés. Claude Code ne supprime pas les variables que le lanceur lui-même a définies. Nécessite Claude Code v2.1.251 ou version ultérieure.
97 97
98<h2 id="configuration-details">98<h2 id="configuration-details">
99 Détails de la configuration99 Détails de configuration
100</h2>100</h2>
101 101
102<h3 id="common-configuration-variables">102<h3 id="common-configuration-variables">
103 Variables de configuration courantes103 Variables de configuration communes
104</h3>104</h3>
105 105
106Ces variables configurent les exportateurs, les points de terminaison et le comportement d'export pour tous les déploiements.106Ces variables configurent les exportateurs, les points de terminaison et le comportement d'export pour tous les déploiements.
107 107
108Si vous définissez une variable de point de terminaison ou de protocole par signal, telle que `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code l'utilise à la place de la variable générique pour ce signal. Si vous définissez une variable d'en-têtes par signal, telle que `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code la fusionne avec la variable générique `OTEL_EXPORTER_OTLP_HEADERS` pour ce signal.108Si vous définissez une variable de point de terminaison ou de protocole par signal, comme `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code l'utilise à la place de la variable générique pour ce signal. Si vous définissez une variable d'en-têtes par signal, comme `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code la fusionne avec l'en-tête générique `OTEL_EXPORTER_OTLP_HEADERS` pour ce signal.
109 109
110Sur les machines avec des paramètres gérés, voir [Comment les paramètres gérés verrouillent la destination OTLP](#how-managed-settings-lock-the-otlp-destination) pour savoir ce que Claude Code supprime.110Sur les machines avec des paramètres gérés, consultez [Comment les paramètres gérés verrouillent la destination OTLP](#how-managed-settings-lock-the-otlp-destination) pour voir ce que Claude Code supprime.
111 111
112| Variable d'environnement | Description | Exemples de valeurs |112| Variable d'environnement | Description | Exemples de valeurs |
113| - | - | - |113| - | - | - |
114| `CLAUDE_CODE_ENABLE_TELEMETRY` | Active la collecte de télémétrie (obligatoire) | `1` |114| `CLAUDE_CODE_ENABLE_TELEMETRY` | Active la collecte de télémétrie (obligatoire) | `1` |
115| `OTEL_METRICS_EXPORTER` | Types d'exportateur de métriques, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `prometheus`, `none` |115| `OTEL_METRICS_EXPORTER` | Types d'exportateurs de métriques, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `prometheus`, `none` |
116| `OTEL_LOGS_EXPORTER` | Types d'exportateur de journaux/événements, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `none` |116| `OTEL_LOGS_EXPORTER` | Types d'exportateurs de journaux/événements, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `none` |
117| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocole pour l'exportateur OTLP, s'applique à tous les signaux. Claude Code n'a pas de protocole par défaut, donc définissez ceci ou la variable de protocole spécifique au signal pour chaque exportateur `otlp` que vous activez | `grpc`, `http/json`, `http/protobuf` |117| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocole pour l'exportateur OTLP, s'applique à tous les signaux. Claude Code n'a pas de protocole par défaut, donc définissez ceci ou la variable de protocole spécifique au signal pour chaque exportateur `otlp` que vous activez | `grpc`, `http/json`, `http/protobuf` |
118| `OTEL_EXPORTER_OTLP_ENDPOINT` | Point de terminaison du collecteur OTLP pour tous les signaux | `http://localhost:4317` |118| `OTEL_EXPORTER_OTLP_ENDPOINT` | Point de terminaison du collecteur OTLP pour tous les signaux | `http://localhost:4317` |
119| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocole pour les métriques, remplace le paramètre général | `grpc`, `http/json`, `http/protobuf` |119| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocole pour les métriques, remplace le paramètre général | `grpc`, `http/json`, `http/protobuf` |
126| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalle d'export en millisecondes (par défaut : 60000) | `5000`, `60000` |126| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalle d'export en millisecondes (par défaut : 60000) | `5000`, `60000` |
127| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalle d'export des journaux en millisecondes (par défaut : 5000) | `1000`, `10000` |127| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalle d'export des journaux en millisecondes (par défaut : 5000) | `1000`, `10000` |
128| `OTEL_LOG_USER_PROMPTS` | Activer la journalisation du contenu des invites utilisateur (par défaut : désactivé) | `1` pour activer |128| `OTEL_LOG_USER_PROMPTS` | Activer la journalisation du contenu des invites utilisateur (par défaut : désactivé) | `1` pour activer |
129| `OTEL_LOG_ASSISTANT_RESPONSES` | Activer la journalisation du texte de réponse de l'assistant sur les événements `assistant_response` (par défaut : désactivé). Lorsque non défini, revient à la valeur de `OTEL_LOG_USER_PROMPTS`. Nécessite Claude Code v2.1.193 ou version ultérieure | `1` pour activer, `0` pour garder masqué |129| `OTEL_LOG_ASSISTANT_RESPONSES` | Activer la journalisation du texte de réponse de l'assistant sur les événements `assistant_response` (par défaut : désactivé). Lorsque non défini, revient à la valeur de `OTEL_LOG_USER_PROMPTS`. Nécessite Claude Code v2.1.193 ou ultérieur | `1` pour activer, `0` pour garder masqué |
130| `OTEL_LOG_TOOL_DETAILS` | Activer la journalisation des paramètres d'outil et des arguments d'entrée dans les événements d'outil et les attributs d'intervalle de trace : commandes Bash, noms de serveur MCP et d'outil, noms de compétences, noms de workflow créés par l'utilisateur et entrée d'outil. Active également les noms de commandes personnalisées, de plugin et MCP sur les événements `user_prompt` (par défaut : désactivé). Pour les serveurs intégrés de Claude Desktop, dans les sessions que Claude Desktop possède, `mcp_server_name`/`mcp_tool_name` sont émis sur `tool_decision`/`tool_result` même avec l'indicateur désactivé. L'exception nécessite Claude Code v2.1.214 ou version ultérieure | `1` pour activer |130| `OTEL_LOG_TOOL_DETAILS` | Activer la journalisation des paramètres d'outils et des arguments d'entrée dans les événements d'outils et les attributs de span de trace : commandes Bash, noms de serveur MCP et d'outils, noms de compétences, noms de flux de travail créés par l'utilisateur et entrée d'outils. Active également les noms de commandes personnalisées, de plugins et MCP sur les événements `user_prompt`, et les noms réels d'agent, de compétence, de plugin et de serveur MCP et d'outils sur les [compteurs de coûts et de jetons](#cost-counter) (par défaut : désactivé). Pour les serveurs intégrés de Claude Desktop, dans les sessions que Claude Desktop possède, `mcp_server_name`/`mcp_tool_name` émettent sur `tool_decision`/`tool_result` même avec l'indicateur désactivé. L'exception nécessite Claude Code v2.1.214 ou ultérieur | `1` pour activer |
131| `OTEL_LOG_TOOL_CONTENT` | Activer la journalisation du contenu d'outil dans l'[événement d'intervalle `tool.output`](#tool-output-span-event) (par défaut : désactivé). Les attributs d'intervalle portent le contenu d'outil sous [leurs propres portes](#new-context-gates). Nécessite [traçage](#traces-beta). Le contenu est tronqué à la limite de contenu (60 Ko par défaut) | `1` pour activer |131| `OTEL_LOG_TOOL_CONTENT` | Activer la journalisation du contenu des outils dans l'[événement de span `tool.output`](#tool-output-span-event) (par défaut : désactivé). Les attributs de span portent le contenu des outils sous [leurs propres portes](#new-context-gates). Nécessite [traçage](#traces-beta). Le contenu est tronqué à la limite de contenu (60 Ko par défaut) | `1` pour activer |
132| `OTEL_LOG_MANAGED_SETTINGS` | Ajouter les paramètres gérés masqués et un résumé SHA-256 des paramètres avant masquage aux événements [managed settings resolved](#managed-settings-resolved-event) (par défaut : désactivé). Une valeur dans les paramètres de projet ou locaux ne l'active pas. Nécessite Claude Code v2.1.274 ou version ultérieure | `1` pour activer |132| `OTEL_LOG_MANAGED_SETTINGS` | Ajouter les paramètres gérés masqués et un résumé SHA-256 des paramètres avant masquage aux événements [paramètres gérés résolus](#managed-settings-resolved-event) (par défaut : désactivé). Une valeur dans les paramètres de projet ou locaux ne l'active pas. Nécessite Claude Code v2.1.274 ou ultérieur | `1` pour activer |
133| `OTEL_LOG_RAW_API_BODIES` | Émettre les corps JSON complets de la demande et de la réponse de l'API Messages d'Anthropic sous forme d'événements de journaux `api_request_body` / `api_response_body` (par défaut : désactivé). Les corps incluent l'historique complet de la conversation. L'activation de cette option implique le consentement à tout ce que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` et `OTEL_LOG_TOOL_CONTENT` révèleraient | `1` pour les corps en ligne tronqués à la limite de contenu (60 Ko par défaut), ou `file:<dir>` pour les corps non tronqués sur disque avec un pointeur `body_ref` dans l'événement |133| `OTEL_LOG_RAW_API_BODIES` | Émettre la demande et la réponse JSON complètes de l'API Messages Anthropic en tant qu'événements de journal `api_request_body` / `api_response_body` (par défaut : désactivé). Les corps incluent l'historique complet de la conversation. L'activation de ceci implique le consentement à tout ce que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` et `OTEL_LOG_TOOL_CONTENT` révèleraient | `1` pour les corps en ligne tronqués à la limite de contenu (60 Ko par défaut), ou `file:<dir>` pour les corps non tronqués sur disque avec un pointeur `body_ref` dans l'événement |
134| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Limite de contenu : la longueur maximale des attributs porteurs de contenu tels que les réponses du modèle, le contenu d'outil, les invites système et les corps API bruts, marqueur de troncature inclus, en unités de code UTF-16 (par défaut : 61440, c'est-à-dire 60 Ko). La valeur par défaut est dimensionnée pour les backends qui limitent les valeurs d'attribut à 64 Ko ; augmentez-la uniquement si votre backend accepte des valeurs plus grandes, ou diminuez-la pour réduire le volume de télémétrie. Lorsqu'une limite d'attribut du SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` ou l'une de ses variantes logrecord et span, est définie plus bas, Claude Code tronque à cette valeur plus petite afin que le marqueur `[TRUNCATED ...]` reste dans la limite du SDK. Nécessite Claude Code v2.1.214 ou version ultérieure | `262144` |134| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Limite de contenu : la longueur maximale des attributs porteurs de contenu tels que les réponses du modèle, le contenu des outils, les invites système et les corps API bruts, marqueur de troncature inclus, en unités de code UTF-16 (par défaut : 61440, c.-à-d. 60 Ko). La valeur par défaut est dimensionnée pour les backends qui limitent les valeurs d'attribut à 64 Ko ; augmentez-la uniquement si votre backend accepte des valeurs plus grandes, ou diminuez-la pour réduire le volume de télémétrie. Lorsqu'une limite d'attribut du SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` ou l'une de ses variantes de journal et de span, est définie plus bas, Claude Code tronque à cette valeur plus petite afin que le marqueur `[TRUNCATED ...]` reste dans la limite du SDK. Nécessite Claude Code v2.1.214 ou ultérieur | `262144` |
135| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Préférence de temporalité des métriques (par défaut : `delta`). Définissez sur `cumulative` si votre backend attend une temporalité cumulative | `delta`, `cumulative` |135| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Préférence de temporalité des métriques (par défaut : `delta`). Définissez sur `cumulative` si votre backend s'attend à une temporalité cumulative | `delta`, `cumulative` |
136| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalle d'actualisation des en-têtes dynamiques (par défaut : 1740000ms / 29 minutes) | `900000` |136| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalle d'actualisation des en-têtes dynamiques (par défaut : 1740000ms / 29 minutes) | `900000` |
137 137
138Pour les protocoles `http/protobuf` et `http/json`, Claude Code envoie chaque demande d'export avec un en-tête `Content-Length`. Avant v2.1.212, les versions de Claude Code à partir de v2.1.191 envoyaient ces demandes avec un codage de transfert fragmenté ; Azure Monitor et d'autres points de terminaison qui nécessitent une longueur déclarée les rejetaient avec des erreurs `411 Length Required` ou `400`.138Pour les protocoles `http/protobuf` et `http/json`, Claude Code envoie chaque demande d'export avec un en-tête `Content-Length`. Avant v2.1.212, les versions de Claude Code à partir de v2.1.191 envoyaient ces demandes avec un codage de transfert fragmenté ; Azure Monitor et d'autres points de terminaison qui nécessitent une longueur déclarée les rejetaient avec des erreurs `411 Length Required` ou `400`.
141 Authentification mTLS141 Authentification mTLS
142</h3>142</h3>
143 143
144La façon dont vous configurez les certificats clients pour l'exportateur OTLP dépend du protocole OTLP utilisé pour ce signal, défini via `OTEL_EXPORTER_OTLP_PROTOCOL` ou le remplacement par signal. La même configuration s'applique aux métriques, journaux et traces.144La façon dont vous configurez les certificats clients pour l'exportateur OTLP dépend du protocole OTLP utilisé pour ce signal, défini via `OTEL_EXPORTER_OTLP_PROTOCOL` ou le remplacement spécifique au signal. La même configuration s'applique aux métriques, journaux et traces.
145 145
146| Protocole | Variables de certificat client | Faire confiance au CA du collecteur avec |146| Protocole | Variables de certificat client | Faire confiance au CA du collecteur avec |
147| :- | :- | :- |147| :- | :- | :- |
148| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY`, et optionnellement `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. Voir [Configuration réseau](/docs/fr/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |148| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY` et optionnellement `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. Voir [Configuration réseau](/docs/fr/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |
149| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` et `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, ou les variantes par signal telles que `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` pour utiliser un certificat différent par signal | `OTEL_EXPORTER_OTLP_CERTIFICATE` |149| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` et `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, ou les variantes spécifiques au signal telles que `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` pour utiliser un certificat différent par signal | `OTEL_EXPORTER_OTLP_CERTIFICATE` |
150 150
151Pour `grpc`, le SDK OpenTelemetry lit les variables OTLP standard directement, donc les configurations existantes qui définissent les variables de métriques par signal continuent de fonctionner. Sur les machines avec des paramètres gérés, Claude Code [peut supprimer les identifiants et points de terminaison par signal définis par le développeur](#how-managed-settings-lock-the-otlp-destination) au démarrage.151Pour `grpc`, le SDK OpenTelemetry lit les variables OTLP standard directement, donc les configurations existantes qui définissent les variables de métriques spécifiques au signal continuent de fonctionner. Sur les machines avec des paramètres gérés, Claude Code [peut supprimer les identifiants et points de terminaison spécifiques au signal définis par le développeur](#how-managed-settings-lock-the-otlp-destination) au démarrage.
152 152
153<h3 id="metrics-cardinality-control">153<h3 id="metrics-cardinality-control">
154 Contrôle de la cardinalité des métriques154 Contrôle de la cardinalité des métriques
158 158
159| Variable d'environnement | Description | Valeur par défaut | Exemple pour désactiver |159| Variable d'environnement | Description | Valeur par défaut | Exemple pour désactiver |
160| - | - | - | - |160| - | - | - | - |
161| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclure l'attribut session.id dans les métriques | `true` | `false` |161| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclure les attributs session.id et, sur les sessions cloud, ccr.session.id dans les métriques | `true` | `false` |
162| `OTEL_METRICS_INCLUDE_VERSION` | Inclure l'attribut app.version dans les métriques | `false` | `true` |162| `OTEL_METRICS_INCLUDE_VERSION` | Inclure l'attribut app.version dans les métriques | `false` | `true` |
163| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclure les attributs user.account\_uuid et user.account\_id dans les métriques | `true` | `false` |163| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclure les attributs user.account\_uuid et user.account\_id dans les métriques | `true` | `false` |
164| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclure l'attribut app.entrypoint dans les métriques | `false` | `true` |164| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclure l'attribut app.entrypoint dans les métriques | `false` | `true` |
165| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclure les clés de `OTEL_RESOURCE_ATTRIBUTES` comme attributs sur les points de données de métriques | `true` | `false` |165| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclure les clés de `OTEL_RESOURCE_ATTRIBUTES` comme attributs sur les points de données de métriques | `true` | `false` |
166| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclure les [attributs d'identité de référentiel](#repository-attributes) `vcs.*` sur les métriques et événements. Nécessite Claude Code v2.1.269 ou version ultérieure | `false` | `true` |166| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclure les [attributs d'identité de référentiel](#repository-attributes) `vcs.*` sur les métriques et événements. Nécessite Claude Code v2.1.269 ou ultérieur | `false` | `true` |
167 167
168Une cardinalité plus faible signifie généralement de meilleures performances et des coûts de stockage plus bas, mais des données moins granulaires pour l'analyse.168Une cardinalité plus basse signifie généralement de meilleures performances et des coûts de stockage plus bas, mais des données moins granulaires pour l'analyse.
169 169
170<h3 id="traces-beta">170<h3 id="traces-beta">
171 Traces (bêta)171 Traces (bêta)
172</h3>172</h3>
173 173
174Le traçage distribué exporte des intervalles qui lient chaque invite utilisateur aux demandes d'API et aux exécutions d'outils qu'elle déclenche, afin que vous puissiez afficher une demande complète sous forme de trace unique dans votre backend de traçage.174Le traçage distribué exporte des spans qui lient chaque invite utilisateur aux demandes API et exécutions d'outils qu'elle déclenche, afin que vous puissiez afficher une demande complète sous forme d'une seule trace dans votre backend de traçage.
175 175
176Le traçage est désactivé par défaut. Pour l'activer, définissez à la fois `CLAUDE_CODE_ENABLE_TELEMETRY=1` et `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, puis définissez `OTEL_TRACES_EXPORTER` pour choisir où les intervalles sont envoyés. Les traces réutilisent la [configuration OTLP courante](#common-configuration-variables) pour le point de terminaison, le protocole, les en-têtes et [mTLS](#mtls-authentication). Sur les machines avec des paramètres gérés, Claude Code [peut supprimer les identifiants et points de terminaison par signal définis par le développeur](#how-managed-settings-lock-the-otlp-destination) au démarrage.176Le traçage est désactivé par défaut. Pour l'activer, définissez à la fois `CLAUDE_CODE_ENABLE_TELEMETRY=1` et `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, puis définissez `OTEL_TRACES_EXPORTER` pour choisir où les spans sont envoyés. Les traces réutilisent la [configuration OTLP commune](#common-configuration-variables) pour le point de terminaison, le protocole, les en-têtes et [mTLS](#mtls-authentication). Sur les machines avec des paramètres gérés, Claude Code [peut supprimer les identifiants et points de terminaison spécifiques au signal définis par le développeur](#how-managed-settings-lock-the-otlp-destination) au démarrage.
177 177
178| Variable d'environnement | Description | Exemples de valeurs |178| Variable d'environnement | Description | Exemples de valeurs |
179| - | - | - |179| - | - | - |
180| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | Activer le traçage d'intervalle (obligatoire). `ENABLE_ENHANCED_TELEMETRY_BETA` est également accepté | `1` |180| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | Activer le traçage des spans (obligatoire). `ENABLE_ENHANCED_TELEMETRY_BETA` est également accepté | `1` |
181| `OTEL_TRACES_EXPORTER` | Types d'exportateur de traces, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `none` |181| `OTEL_TRACES_EXPORTER` | Types d'exportateurs de traces, séparés par des virgules. Utilisez `none` pour désactiver | `console`, `otlp`, `none` |
182| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | Protocole pour les traces, remplace `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`, `http/json`, `http/protobuf` |182| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | Protocole pour les traces, remplace `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`, `http/json`, `http/protobuf` |
183| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Point de terminaison des traces OTLP, remplace `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |183| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Point de terminaison des traces OTLP, remplace `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |
184| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | En-têtes d'authentification pour les traces, fusionnés avec `OTEL_EXPORTER_OTLP_HEADERS` | `Authorization=Bearer token` |184| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | En-têtes d'authentification pour les traces, fusionnés avec `OTEL_EXPORTER_OTLP_HEADERS` | `Authorization=Bearer token` |
185| `OTEL_TRACES_EXPORT_INTERVAL` | Intervalle d'export par lot d'intervalles en millisecondes (par défaut : 5000) | `1000`, `10000` |185| `OTEL_TRACES_EXPORT_INTERVAL` | Intervalle d'export de lot de spans en millisecondes (par défaut : 5000) | `1000`, `10000` |
186 186
187Les intervalles masquent le texte de l'invite utilisateur, les détails d'entrée d'outil et le contenu d'outil par défaut. Définissez `OTEL_LOG_USER_PROMPTS=1`, `OTEL_LOG_TOOL_DETAILS=1` et `OTEL_LOG_TOOL_CONTENT=1` pour les inclure.187Les spans masquent le texte de l'invite utilisateur, les détails d'entrée des outils et le contenu des outils par défaut. Définissez `OTEL_LOG_USER_PROMPTS=1`, `OTEL_LOG_TOOL_DETAILS=1` et `OTEL_LOG_TOOL_CONTENT=1` pour les inclure.
188 188
189Lorsque le traçage est actif, les sous-processus Bash et PowerShell héritent automatiquement d'une variable d'environnement `TRACEPARENT` contenant le contexte de trace W3C de l'intervalle d'exécution d'outil actif. Cela permet à tout sous-processus qui lit `TRACEPARENT` de placer ses propres intervalles sous la même trace, permettant le traçage distribué de bout en bout via les scripts et les commandes que Claude exécute.189Lorsque le traçage est actif, les sous-processus Bash et PowerShell héritent automatiquement d'une variable d'environnement `TRACEPARENT` contenant le contexte de trace W3C du span d'exécution d'outil actif. Cela permet à tout sous-processus qui lit `TRACEPARENT` de placer ses propres spans sous la même trace, permettant le traçage distribué de bout en bout à travers les scripts et commandes que Claude exécute.
190 190
191Lorsque le traçage est actif et que Claude Code est connecté directement à l'API Anthropic, chaque demande de modèle porte un en-tête W3C `traceparent` défini au contexte de l'intervalle `claude_code.llm_request`, et l'en-tête `traceresponse` de l'API est enregistré comme un lien d'intervalle. Ensemble, ceux-ci connectent les intervalles côté client de Claude Code à la trace côté serveur via tout intermédiaire conforme. Les demandes HTTP MCP sortantes portent `traceparent` de la même manière. L'en-tête n'est pas envoyé aux fournisseurs tiers.191Lorsque le traçage est actif et que Claude Code est connecté directement à l'API Anthropic, chaque demande de modèle porte un en-tête W3C `traceparent` défini sur le contexte du span `claude_code.llm_request`, et l'en-tête `traceresponse` de l'API est enregistré comme un lien de span. Ensemble, ceux-ci connectent les spans côté client de Claude Code à la trace côté serveur via tout intermédiaire conforme. Les demandes HTTP MCP sortantes portent `traceparent` de la même manière. L'en-tête n'est pas envoyé aux fournisseurs tiers.
192 192
193Par défaut, l'en-tête `traceparent` sur les demandes de modèle et MCP HTTP est envoyé uniquement lorsque `ANTHROPIC_BASE_URL` n'est pas défini ou pointe vers l'API Anthropic, car certains proxies rejettent les en-têtes non reconnus. La variable `TRACEPARENT` du sous-processus est contrôlée par le même commutateur pour la cohérence. Si vous exécutez Claude Code via un proxy `ANTHROPIC_BASE_URL` personnalisé et souhaitez que le contexte de trace soit propagé, définissez `CLAUDE_CODE_PROPAGATE_TRACEPARENT=1`.193Par défaut, l'en-tête `traceparent` sur les demandes de modèle et MCP HTTP n'est envoyé que lorsque `ANTHROPIC_BASE_URL` n'est pas défini ou pointe vers l'API Anthropic, car certains proxies rejettent les en-têtes non reconnus. La variable `TRACEPARENT` du sous-processus est contrôlée par le même commutateur pour la cohérence. Si vous exécutez Claude Code via un proxy `ANTHROPIC_BASE_URL` personnalisé et souhaitez que le contexte de trace soit propagé, définissez `CLAUDE_CODE_PROPAGATE_TRACEPARENT=1`.
194 194
195Dans le SDK Agent et les sessions non interactives démarrées avec `-p`, Claude Code lit également `TRACEPARENT` et `TRACESTATE` de son propre environnement au démarrage de chaque intervalle d'interaction. Cela permet à un processus d'intégration de transmettre son contexte de trace W3C actif au sous-processus afin que les intervalles de Claude Code apparaissent comme des enfants de la trace distribuée de l'appelant. Les sessions interactives ignorent `TRACEPARENT` entrant pour éviter d'hériter accidentellement des valeurs ambiantes des environnements CI ou conteneur.195Dans le SDK Agent et les sessions non interactives démarrées avec `-p`, Claude Code lit également `TRACEPARENT` et `TRACESTATE` de son propre environnement au démarrage de chaque span d'interaction. Cela permet à un processus d'intégration de transmettre son contexte de trace W3C actif au sous-processus afin que les spans de Claude Code apparaissent comme des enfants de la trace distribuée de l'appelant. Les sessions interactives ignorent `TRACEPARENT` entrant pour éviter d'hériter accidentellement de valeurs ambiantes de CI ou d'environnements de conteneur.
196 196
197Le contexte de trace entrant s'applique également aux [événements](#events). Dans les sessions du SDK Agent et `-p` avec `TRACEPARENT` défini, chaque enregistrement de journal d'événement OTLP porte les valeurs `trace_id` et `span_id` qui le joignent à la trace de votre application, même lorsque l'exportateur de traces n'est pas configuré, afin que votre backend de journalisation puisse corréler les événements avec le reste de la trace.197Le contexte de trace entrant s'applique également aux [événements](#events). Dans les sessions SDK Agent et `-p` avec `TRACEPARENT` défini, chaque enregistrement de journal d'événement OTLP porte les valeurs `trace_id` et `span_id` qui le joignent à la trace de votre application, même lorsque l'exportateur de traces n'est pas configuré, afin que votre backend de journalisation puisse corréler les événements avec le reste de la trace.
198 198
199Un enregistrement émis pendant qu'une interaction est active porte les ID de l'intervalle d'interaction, même lorsque Claude Code l'émet en dehors du contexte asynchrone de l'intervalle, tel que dans un rappel d'invite de permission ou pour un enregistrement mis en mémoire tampon au démarrage et exporté ultérieurement. Un enregistrement émis sans intervalle d'interaction actif porte directement les ID `TRACEPARENT` entrants. Avant v2.1.214, les enregistrements émis en dehors du contexte asynchrone de l'intervalle portaient les ID `TRACEPARENT` entrants à la place des ID de l'intervalle. Avant v2.1.212, les enregistrements d'événements émis en dehors d'un intervalle actif ne portaient pas `trace_id` ou `span_id`.199Un enregistrement émis pendant qu'une interaction est active porte les ID du span d'interaction, même lorsque Claude Code l'émet en dehors du contexte asynchrone du span, comme dans un rappel d'invite de permission ou pour un enregistrement mis en mémoire tampon au démarrage et exporté ultérieurement. Un enregistrement émis sans span d'interaction actif porte directement les ID `TRACEPARENT` entrants. Avant v2.1.214, les enregistrements émis en dehors du contexte asynchrone du span portaient les ID `TRACEPARENT` entrants à la place des ID du span. Avant v2.1.212, les enregistrements d'événements émis en dehors d'un span actif ne portaient pas `trace_id` ou `span_id`.
200 200
201<h4 id="span-hierarchy">201<h4 id="span-hierarchy">
202 Hiérarchie des intervalles202 Hiérarchie des spans
203</h4>203</h4>
204 204
205Chaque invite utilisateur démarre un intervalle racine `claude_code.interaction`. Les appels d'API, les appels d'outils et les exécutions de hooks sont enregistrés comme ses enfants. Les intervalles d'outils ont deux intervalles enfants : un pour le temps passé à attendre une décision de permission et un pour l'exécution elle-même. Lorsque l'outil Agent ou l'outil Task hérité génère un sous-agent, les intervalles d'API et d'outils du sous-agent se placent sous l'intervalle `claude_code.tool` du parent.205Chaque invite utilisateur démarre un span racine `claude_code.interaction`. Les appels API, les appels d'outils et les exécutions de hooks sont enregistrés comme ses enfants. Les spans d'outils ont deux spans enfants : un pour le temps passé à attendre une décision de permission et un pour l'exécution elle-même. Lorsque l'outil Agent ou l'outil Task hérité génère un sous-agent, les spans API et d'outils du sous-agent s'imbriquent sous le span `claude_code.tool` du parent.
206 206
207```text theme={null}207```text theme={null}
208claude_code.interaction208claude_code.interaction
209├── claude_code.llm_request209├── claude_code.llm_request
210├── claude_code.hook (nécessite un traçage bêta détaillé)210├── claude_code.hook (requires detailed beta tracing)
211└── claude_code.tool211└── claude_code.tool
212 ├── claude_code.tool.blocked_on_user212 ├── claude_code.tool.blocked_on_user
213 ├── claude_code.tool.execution213 ├── claude_code.tool.execution
214 └── (outil Agent) intervalles claude_code.llm_request / claude_code.tool du sous-agent214 └── (Agent tool) subagent claude_code.llm_request / claude_code.tool spans
215```215```
216 216
217Dans les sessions du SDK Agent et `claude -p`, `claude_code.interaction` lui-même devient un enfant de l'intervalle de l'appelant lorsque `TRACEPARENT` est défini dans l'environnement.217Dans les sessions SDK Agent et `claude -p`, `claude_code.interaction` lui-même devient un enfant du span de l'appelant lorsque `TRACEPARENT` est défini dans l'environnement.
218 218
219Lorsqu'un hook `PreToolUse` [reporte un appel d'outil](/docs/fr/hooks#defer-a-tool-call-for-later), Claude Code enregistre le contexte de trace du tour qui l'a reporté. Lorsque vous reprenez la session et que l'outil s'exécute à nouveau, les intervalles de l'outil rejoignent la trace de ce tour antérieur en tant qu'enfants de l'intervalle `claude_code.interaction` du tour.219Lorsqu'un hook `PreToolUse` [reporte un appel d'outil](/docs/fr/hooks#defer-a-tool-call-for-later), Claude Code enregistre le contexte de trace du tour qui l'a reporté. Lorsque vous reprenez la session et que l'outil s'exécute à nouveau, les spans de l'outil rejoignent la trace du tour antérieur en tant qu'enfants du span `claude_code.interaction` du tour.
220 220
221<h4 id="span-attributes">221<h4 id="span-attributes">
222 Attributs des intervalles222 Attributs des spans
223</h4>223</h4>
224 224
225Chaque intervalle porte les [attributs standard](#standard-attributes) plus un attribut `span.type` correspondant à son nom. Les tableaux ci-dessous listent les attributs supplémentaires définis sur chaque intervalle. Les intervalles `llm_request`, `tool.execution` et `hook` définissent le statut OpenTelemetry `ERROR` lorsqu'ils enregistrent un échec ; les autres intervalles se terminent toujours avec le statut `UNSET`.225Chaque span porte les [attributs standard](#standard-attributes) plus un attribut `span.type` correspondant à son nom. Les tableaux ci-dessous énumèrent les attributs supplémentaires définis sur chaque span. Les spans `llm_request`, `tool.execution` et `hook` définissent le statut OpenTelemetry `ERROR` lorsqu'ils enregistrent un échec ; les autres spans se terminent toujours avec le statut `UNSET`.
226 226
227**`claude_code.interaction`**227**`claude_code.interaction`**
228 228
231| `user_prompt` | Texte de l'invite. La valeur est `<REDACTED>` sauf si la porte est définie | `OTEL_LOG_USER_PROMPTS` |231| `user_prompt` | Texte de l'invite. La valeur est `<REDACTED>` sauf si la porte est définie | `OTEL_LOG_USER_PROMPTS` |
232| `user_prompt_length` | Longueur de l'invite en caractères | |232| `user_prompt_length` | Longueur de l'invite en caractères | |
233| `interaction.sequence` | Compteur basé sur 1 des interactions, compté par processus Claude Code plutôt que par session, comme décrit pour [`event.sequence`](#event-correlation-attributes) | |233| `interaction.sequence` | Compteur basé sur 1 des interactions, compté par processus Claude Code plutôt que par session, comme décrit pour [`event.sequence`](#event-correlation-attributes) | |
234| `parent.source` | Comment l'intervalle a obtenu son parent de trace : `env` lorsqu'il a été parent sous un `TRACEPARENT` entrant, `none` lorsqu'il a démarré sa propre trace. Nécessite Claude Code v2.1.268 ou version ultérieure | |234| `parent.source` | Comment le span a obtenu son parent de trace : `env` lorsqu'il a été parent sous un `TRACEPARENT` entrant, `none` lorsqu'il a démarré sa propre trace. Nécessite Claude Code v2.1.268 ou ultérieur | |
235| `interaction.duration_ms` | Durée murale du tour | |235| `interaction.duration_ms` | Durée murale du tour | |
236 236
237**`claude_code.llm_request`**237**`claude_code.llm_request`**
239| Attribut | Description | Contrôlé par |239| Attribut | Description | Contrôlé par |
240| - | - | - |240| - | - | - |
241| `model` | Identifiant du modèle | |241| `model` | Identifiant du modèle | |
242| `gen_ai.system` | Toujours `anthropic`. Convention sémantique GenAI OpenTelemetry | |242| `gen_ai.system` | Toujours `anthropic`. Convention sémantique OpenTelemetry GenAI | |
243| `gen_ai.request.model` | Même valeur que `model`. Convention sémantique GenAI OpenTelemetry | |243| `gen_ai.request.model` | Même valeur que `model`. Convention sémantique OpenTelemetry GenAI | |
244| `query_source` | Sous-système qui a émis la demande, tel que `repl_main_thread` ou un nom de sous-agent | `ENABLE_BETA_TRACING_DETAILED` |244| `query_source` | Sous-système qui a émis la demande, comme `repl_main_thread` ou un nom de sous-agent | `ENABLE_BETA_TRACING_DETAILED` |
245| `query_source_safe` | Forme bornée de `query_source`, émise que le traçage bêta détaillé soit actif ou non, avec des valeurs telles que `repl_main_thread` ou `agent.builtin.general-purpose`. `:` devient `.` et les agents nommés par l'utilisateur apparaissent comme `agent.custom`. Nécessite Claude Code v2.1.268 ou version ultérieure | |245| `query_source_safe` | Forme bornée de `query_source`, émise que le traçage bêta détaillé soit actif ou non, avec des valeurs telles que `repl_main_thread` ou `agent.builtin.general-purpose`. `:` devient `.` et les agents nommés par l'utilisateur apparaissent comme `agent.custom`. Nécessite Claude Code v2.1.268 ou ultérieur | |
246| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a émis la demande. Absent dans la session principale | |246| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a émis la demande. Absent sur la session principale | |
247| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |247| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |
248| `workflow.run_id` | Identifiant d'exécution de l'exécution de l'outil [Workflow](/docs/fr/workflows), préfixé `wf_`. Absent pour les agents non générés par un workflow | |248| `workflow.run_id` | Identifiant d'exécution de l'exécution de l'outil [Workflow](/docs/fr/workflows) qui a généré cet agent, préfixé `wf_`. Absent pour les agents non générés par un flux de travail | |
249| `workflow.name` | Nom du workflow qui a généré cet agent. Les noms créés par l'utilisateur sont remplacés par `custom` sauf si la porte est définie | `OTEL_LOG_TOOL_DETAILS` |249| `workflow.name` | Nom du flux de travail qui a généré cet agent. Les noms créés par l'utilisateur sont remplacés par `custom` sauf si la porte est définie | `OTEL_LOG_TOOL_DETAILS` |
250| `speed` | `fast` ou `normal` | |250| `speed` | `fast` ou `normal` | |
251| `effort` | [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `low`, `medium`, `high`, `xhigh`, ou `max`. Absent lorsque Claude Code n'envoie pas de niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort. Nécessite Claude Code v2.1.274 ou version ultérieure | |251| `effort` | [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `low`, `medium`, `high`, `xhigh` ou `max`. Absent lorsque Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne le supporte pas. Nécessite Claude Code v2.1.274 ou ultérieur | |
252| `llm_request.context` | `interaction`, `tool`, ou `standalone` selon l'intervalle parent | |252| `llm_request.context` | `interaction`, `tool` ou `standalone` selon le span parent | |
253| `duration_ms` | Durée murale incluant les tentatives | |253| `duration_ms` | Durée murale incluant les tentatives | |
254| `ttft_ms` | Temps jusqu'au premier jeton en millisecondes | |254| `ttft_ms` | Temps jusqu'au premier jeton en millisecondes | |
255| `first_content_ms` | Temps du début de la demande au premier bloc de contenu de la tentative réussie, en millisecondes. Absent sur les demandes qui sont revenues au chemin non-streaming. Nécessite Claude Code v2.1.268 ou version ultérieure | |255| `first_content_ms` | Temps du début de la demande au premier bloc de contenu de la tentative réussie, en millisecondes. Absent sur les demandes qui sont revenues au chemin non-streaming. Nécessite Claude Code v2.1.268 ou ultérieur | |
256| `input_tokens` | Nombre de jetons d'entrée du bloc d'utilisation de l'API | |256| `input_tokens` | Nombre de jetons d'entrée du bloc d'utilisation de l'API | |
257| `output_tokens` | Nombre de jetons de sortie | |257| `output_tokens` | Nombre de jetons de sortie | |
258| `cache_read_tokens` | Jetons lus à partir du cache de prompt | |258| `cache_read_tokens` | Jetons lus du cache d'invite | |
259| `cache_creation_tokens` | Jetons écrits dans le cache de prompt | |259| `cache_creation_tokens` | Jetons écrits dans le cache d'invite | |
260| `request_id` | ID de demande d'API Anthropic de l'en-tête de réponse `request-id` | |260| `request_id` | ID de demande API. Même valeur que l'[attribut de corrélation d'événement](#event-correlation-attributes) `request_id` | |
261| `gen_ai.response.id` | Même valeur que `request_id`. Convention sémantique GenAI OpenTelemetry | |261| `gen_ai.response.id` | Même valeur que `request_id`. Convention sémantique OpenTelemetry GenAI | |
262| `client_request_id` | `x-client-request-id` généré par le client de la tentative finale | |262| `client_request_id` | `x-client-request-id` généré par le client de la tentative finale | |
263| `attempt` | Nombre total de tentatives effectuées pour cette demande | |263| `attempt` | Nombre total de tentatives pour cette demande | |
264| `success` | `true` ou `false` | |264| `success` | `true` ou `false` | |
265| `status_code` | Code de statut HTTP lorsque la demande a échoué | |265| `status_code` | Code de statut HTTP lorsque la demande a échoué | |
266| `error` | Message d'erreur lorsque la demande a échoué | |266| `error` | Message d'erreur lorsque la demande a échoué | |
267| `error_class` | Jeton de classe d'erreur court lorsque la demande a échoué, tel que `api_timeout` ou `server_overload`. Nécessite Claude Code v2.1.268 ou version ultérieure | |267| `error_class` | Jeton de classe d'erreur court lorsque la demande a échoué, comme `api_timeout` ou `server_overload`. Nécessite Claude Code v2.1.268 ou ultérieur | |
268| `response.has_tool_call` | `true` lorsque la réponse contenait des blocs tool-use | |268| `response.has_tool_call` | `true` lorsque la réponse contenait des blocs d'utilisation d'outils | |
269| `stop_reason` | `stop_reason` de la réponse API, tel que `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn`, ou `refusal` | |269| `stop_reason` | `stop_reason` de réponse API, comme `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn` ou `refusal` | |
270| `gen_ai.response.finish_reasons` | Même valeur que `stop_reason`, enveloppée dans un tableau de chaînes. Convention sémantique GenAI OpenTelemetry | |270| `gen_ai.response.finish_reasons` | Même valeur que `stop_reason`, enveloppée dans un tableau de chaînes. Convention sémantique OpenTelemetry GenAI | |
271 271
272Chaque tentative de nouvelle tentative est également enregistrée comme un événement d'intervalle `gen_ai.request.attempt` avec les attributs `attempt` et `client_request_id`.272Chaque tentative de nouvelle tentative est également enregistrée en tant qu'événement de span `gen_ai.request.attempt` avec les attributs `attempt` et `client_request_id`.
273 273
274**`claude_code.tool`**274**`claude_code.tool`**
275 275
276| Attribut | Description | Contrôlé par |276| Attribut | Description | Contrôlé par |
277| - | - | - |277| - | - | - |
278| `tool_name` | Nom de l'outil | |278| `tool_name` | Nom de l'outil | |
279| `tool_name_safe` | Forme de `tool_name` qui ne porte aucun nom choisi par l'utilisateur. Les noms d'outils intégrés passent verbatim. Les noms d'outils MCP apparaissent comme `mcp_other`, sauf les noms d'outils correspondant à quelques formes fixes, tels que les outils `playwright` nommés `browser_*`, qui passent verbatim. Nécessite Claude Code v2.1.268 ou version ultérieure | |279| `tool_name_safe` | Forme de `tool_name` qui ne porte aucun nom choisi par l'utilisateur. Les noms d'outils intégrés passent verbatim. Les noms d'outils MCP apparaissent comme `mcp_other`, sauf les noms d'outils correspondant à quelques formes fixes, comme les outils `playwright` nommés `browser_*`, qui passent verbatim. Nécessite Claude Code v2.1.268 ou ultérieur | |
280| `bash_command_class` | Pour l'outil Bash : catégorie du premier programme de la commande à partir d'une liste fixe, telle que `vcs` ou `package_manager`. `other` pour un programme en dehors de la liste, `unparsed` lorsque la ligne ne peut pas être analysée. Nécessite Claude Code v2.1.268 ou version ultérieure | |280| `bash_command_class` | Pour l'outil Bash : catégorie du premier programme de la commande à partir d'une liste fixe, comme `vcs` ou `package_manager`. `other` pour un programme en dehors de la liste, `unparsed` lorsque la ligne ne peut pas être analysée. Nécessite Claude Code v2.1.268 ou ultérieur | |
281| `bash_argv0` | Pour l'outil Bash : le premier programme de la commande lorsqu'il est sur la même liste fixe, tel que `git` ou `npm`. `other` pour tout programme en dehors de la liste. Nécessite Claude Code v2.1.268 ou version ultérieure | |281| `bash_argv0` | Pour l'outil Bash : le premier programme de la commande lorsqu'il est sur la même liste fixe, comme `git` ou `npm`. `other` pour tout programme en dehors de la liste. Nécessite Claude Code v2.1.268 ou ultérieur | |
282| `duration_ms` | Durée murale incluant l'attente de permission et l'exécution | |282| `duration_ms` | Durée murale incluant l'attente de permission et l'exécution | |
283| `result_tokens` | Taille approximative en jetons du résultat de l'outil | |283| `result_tokens` | Taille approximative en jetons du résultat de l'outil | |
284| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a exécuté l'outil. Absent dans la session principale | |284| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a exécuté l'outil. Absent sur la session principale | |
285| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |285| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |
286| `workflow.run_id` | Identifiant d'exécution de l'exécution de l'outil Workflow qui a généré cet agent, préfixé `wf_`. Absent pour les agents non générés par un workflow | |286| `workflow.run_id` | Identifiant d'exécution de l'exécution de l'outil Workflow qui a généré cet agent, préfixé `wf_`. Absent pour les agents non générés par un flux de travail | |
287| `workflow.name` | Nom du workflow qui a généré cet agent. Les noms créés par l'utilisateur sont remplacés par `custom` sauf si la porte est définie | `OTEL_LOG_TOOL_DETAILS` |287| `workflow.name` | Nom du flux de travail qui a généré cet agent. Les noms créés par l'utilisateur sont remplacés par `custom` sauf si la porte est définie | `OTEL_LOG_TOOL_DETAILS` |
288| `tool_use_id` | L'ID du bloc `tool_use` du modèle pour cet appel. Correspond au `tool_use_id` sur les événements [tool\_result](#tool-result-event) et [tool\_decision](#tool-decision-event) et dans les charges utiles de hooks, afin que vous puissiez joindre l'intervalle à ces enregistrements | |288| `tool_use_id` | L'ID du bloc `tool_use` du modèle pour cet appel. Correspond au `tool_use_id` sur les événements [tool\_result](#tool-result-event) et [tool\_decision](#tool-decision-event) et dans les charges utiles de hooks, afin que vous puissiez joindre le span à ces enregistrements | |
289| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique GenAI OpenTelemetry | |289| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique OpenTelemetry GenAI | |
290| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write | `OTEL_LOG_TOOL_DETAILS` |290| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write | `OTEL_LOG_TOOL_DETAILS` |
291| `full_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |291| `full_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |
292| `skill_name` | Nom de la compétence pour l'outil Skill | `OTEL_LOG_TOOL_DETAILS` |292| `skill_name` | Nom de la compétence pour l'outil Skill | `OTEL_LOG_TOOL_DETAILS` |
293| `subagent_type` | Type de sous-agent pour l'outil Agent ou l'outil Task hérité | `OTEL_LOG_TOOL_DETAILS` |293| `subagent_type` | Type de sous-agent pour l'outil Agent ou l'outil Task hérité | `OTEL_LOG_TOOL_DETAILS` |
294 294
295<span id="tool-output-span-event" />**Événement d'intervalle `tool.output` sur `claude_code.tool`**295<span id="tool-output-span-event" />**Événement de span `tool.output` sur `claude_code.tool`**
296 296
297Si vous définissez `OTEL_LOG_TOOL_CONTENT=1`, les appels Read et Bash peuvent enregistrer un événement d'intervalle `tool.output` sur l'intervalle `claude_code.tool`. Les appels Edit et Write enregistrent un événement uniquement lorsque vous définissez également `OTEL_LOG_TOOL_DETAILS=1`. Cette variable n'est pas limitée à ces deux outils, donc vérifiez sa [ligne dans le tableau de configuration](#common-configuration-variables) pour les arguments qu'elle ajoute ailleurs.297Si vous définissez `OTEL_LOG_TOOL_CONTENT=1`, les appels Read et Bash peuvent enregistrer un événement de span `tool.output` sur le span `claude_code.tool`. Les appels Edit et Write en enregistrent un uniquement lorsque vous définissez également `OTEL_LOG_TOOL_DETAILS=1`. Cette variable n'est pas limitée à ces deux outils, donc vérifiez sa [ligne dans le tableau de configuration](#common-configuration-variables) pour les arguments qu'elle ajoute ailleurs.
298 298
299Claude Code écrit cet événement à partir du retour réussi d'un appel d'outil, donc un appel qui lève une erreur n'enregistre rien, quel que soit l'outil. Parmi les appels qui retournent, il n'enregistre pas d'événement `tool.output` pour :299Les outils MCP, WebFetch et WebSearch enregistrent également cet événement, sur Claude Code v2.1.283 ou ultérieur.
300 300
301* Un appel à tout outil autre que Read, Edit, Write et Bash, y compris les outils MCP et WebFetch301Claude Code écrit cet événement à partir du retour réussi d'un appel d'outil, donc un appel qui lève une erreur n'enregistre rien, quel que soit l'outil. Parmi les appels qui retournent, il n'enregistre aucun événement `tool.output` pour :
302* Un Read qui retourne autre chose que du texte de fichier, tel qu'une image, un PDF ou une relecture d'un fichier dont le contenu n'a pas changé302
303* Un appel à tout outil autre que Read, Edit, Write, Bash, WebFetch, WebSearch et les outils MCP
304* Un Read qui retourne autre chose que du texte de fichier, comme une image, un PDF ou une relecture d'un fichier dont le contenu n'a pas changé
303* Un appel Edit ou Write, sauf si vous définissez également `OTEL_LOG_TOOL_DETAILS=1`305* Un appel Edit ou Write, sauf si vous définissez également `OTEL_LOG_TOOL_DETAILS=1`
306* Un appel WebFetch ou WebSearch que Claude Code a déplacé en arrière-plan parce que vous avez interrompu le tour pour [envoyer vos messages en attente immédiatement](/docs/fr/interactive-mode#when-claude-code-sends-what-you-queued) pendant que l'appel s'exécutait. Claude reçoit ce résultat plus tard, après la fin du span d'outil
304 307
305L'événement porte ces attributs, chacun tronqué à la limite de contenu (60 Ko par défaut). `Contrôlé par` nomme la variable qu'un attribut nécessite en plus de `OTEL_LOG_TOOL_CONTENT=1`, et pour Edit et Write cette variable contrôle l'événement lui-même plutôt que l'attribut.308L'événement porte ces attributs, chacun tronqué à la limite de contenu (60 Ko par défaut). `Contrôlé par` nomme la variable dont un attribut a besoin en plus de `OTEL_LOG_TOOL_CONTENT=1`, et pour Edit et Write cette variable contrôle l'événement lui-même plutôt que l'attribut.
306 309
307| Attribut | Description | Contrôlé par |310| Attribut | Description | Contrôlé par |
308| - | - | - |311| - | - | - |
309| `content` | Texte que l'outil Read a retourné, ou le texte qu'un appel Write a été demandé d'écrire | `OTEL_LOG_TOOL_DETAILS` pour l'outil Write |312| `content` | Texte que l'outil Read a retourné, ou le texte qu'un appel Write a été demandé d'écrire | `OTEL_LOG_TOOL_DETAILS` pour l'outil Write |
310| `output` | Sortie combinée d'une commande Bash, avec stderr entrelacé dans stdout | |313| `output` | Pour l'outil Bash, la sortie combinée de la commande, avec stderr entrelacé dans stdout. Pour un outil MCP, WebFetch ou WebSearch, le résultat que l'outil a retourné : blocs de texte joints par des sauts de ligne, avec une image ou un document remplacé par un espace réservé comme `[image]` | |
311| `diff` | Correctif structuré que l'outil Edit a appliqué | `OTEL_LOG_TOOL_DETAILS` |314| `diff` | Correctif structuré que l'outil Edit a appliqué | `OTEL_LOG_TOOL_DETAILS` |
312| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write, répétant l'attribut d'intervalle du même nom | `OTEL_LOG_TOOL_DETAILS` |315| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write, répétant l'attribut de span du même nom | `OTEL_LOG_TOOL_DETAILS` |
313| `bash_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |316| `bash_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |
314 317
315L'attribut `tool_name` de l'intervalle parent vous indique quel outil un événement provient. Un attribut coupé à la limite de contenu est accompagné de `<attribute>_truncated` et `<attribute>_original_length`.318L'attribut `tool_name` du span parent vous indique quel outil un événement provient. Un attribut coupé à la limite de contenu est accompagné de `<attribute>_truncated` et `<attribute>_original_length`.
316 319
317**`claude_code.tool.blocked_on_user`**320**`claude_code.tool.blocked_on_user`**
318 321
320| - | - | - |323| - | - | - |
321| `duration_ms` | Temps passé à attendre la décision de permission | |324| `duration_ms` | Temps passé à attendre la décision de permission | |
322| `decision` | `accept` ou `reject` | |325| `decision` | `accept` ou `reject` | |
323| `source` | Source de la décision, correspondant à l'événement [Tool decision event](#tool-decision-event) | |326| `source` | Source de décision, correspondant à l'[événement de décision d'outil](#tool-decision-event) | |
324 327
325**`claude_code.tool.execution`**328**`claude_code.tool.execution`**
326 329
327| Attribut | Description | Contrôlé par |330| Attribut | Description | Contrôlé par |
328| - | - | - |331| - | - | - |
329| `duration_ms` | Temps passé à exécuter le corps de l'outil | |332| `duration_ms` | Temps passé à exécuter le corps de l'outil | |
330| `tool_use_id` | Même valeur que sur l'intervalle parent `claude_code.tool` | |333| `tool_use_id` | Même valeur que sur le span parent `claude_code.tool` | |
331| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique GenAI OpenTelemetry | |334| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique OpenTelemetry GenAI | |
332| `success` | `true` ou `false` | |335| `success` | `true` ou `false` | |
333| `error` | Chaîne de catégorie d'erreur lorsque l'exécution a échoué, telle que `Error:ENOENT` ou `ShellError`. Contient le message d'erreur complet à la place lorsque la porte est définie | `OTEL_LOG_TOOL_DETAILS` |336| `error` | Chaîne de catégorie d'erreur lorsque l'exécution a échoué, comme `Error:ENOENT` ou `ShellError`. Contient le message d'erreur complet à la place lorsque la porte est définie | `OTEL_LOG_TOOL_DETAILS` |
334| `error_class` | La catégorie d'erreur sous forme d'identifiant, avec les caractères en dehors des lettres, des chiffres et des traits de soulignement remplacés par `_`, tels que `Error_ENOENT` ou `ShellError`. Porte la catégorie même lorsque `error` porte le message complet. Nécessite Claude Code v2.1.268 ou version ultérieure | |337| `error_class` | La catégorie d'erreur sous forme d'identifiant, avec les caractères en dehors des lettres, chiffres et traits de soulignement remplacés par `_`, comme `Error_ENOENT` ou `ShellError`. Porte la catégorie même lorsque `error` porte le message complet. Nécessite Claude Code v2.1.268 ou ultérieur | |
335 338
336**`claude_code.hook`**339**`claude_code.hook`**
337 340
338Cet intervalle n'apparaît que lorsque le traçage bêta détaillé est actif, ce qui nécessite `ENABLE_BETA_TRACING_DETAILED=1` et `BETA_TRACING_ENDPOINT`, une paire qui [change également où vos journaux et traces vont](/docs/fr/env-vars#variables). Définissez la paire dans votre shell, vos paramètres utilisateur ou vos paramètres gérés ; les deux variables sont ignorées dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` seul ne le produit pas.341Ce span n'apparaît que lorsque le traçage bêta détaillé est actif, ce qui nécessite `ENABLE_BETA_TRACING_DETAILED=1` et `BETA_TRACING_ENDPOINT`, une paire qui [change également où vos journaux et traces vont](/docs/fr/env-vars#variables). Définissez la paire dans votre shell, vos paramètres utilisateur ou vos paramètres gérés ; les deux variables sont ignorées dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` seul ne le produit pas.
339 342
340Dans les sessions CLI interactives, le traçage bêta détaillé nécessite également que votre organisation soit sur liste blanche pour la fonctionnalité. Les sessions du SDK Agent et non interactives `-p` ne nécessitent pas de liste blanche.343Dans les sessions CLI interactives, le traçage bêta détaillé nécessite également que votre organisation soit sur la liste blanche pour la fonctionnalité. Les sessions SDK Agent et non interactives `-p` ne nécessitent pas de liste blanche.
341 344
342| Attribut | Description | Contrôlé par |345| Attribut | Description | Contrôlé par |
343| - | - | - |346| - | - | - |
344| `hook_event` | Type d'événement hook, tel que `PreToolUse` | |347| `hook_event` | Type d'événement de hook, comme `PreToolUse` | |
345| `hook_name` | Nom complet du hook, tel que `PreToolUse:Write` | |348| `hook_name` | Nom complet du hook, comme `PreToolUse:Write` | |
346| `num_hooks` | Nombre de commandes hook correspondantes exécutées | |349| `num_hooks` | Nombre de commandes de hook correspondantes exécutées | |
347| `hook_definitions` | Configuration du hook sérialisée en JSON | `OTEL_LOG_TOOL_DETAILS` |350| `hook_definitions` | Configuration de hook sérialisée en JSON | `OTEL_LOG_TOOL_DETAILS` |
348| `duration_ms` | Durée murale de tous les hooks correspondants | |351| `duration_ms` | Durée murale de tous les hooks correspondants | |
349| `num_success` | Nombre de hooks qui se sont terminés avec succès | |352| `num_success` | Nombre de hooks qui se sont terminés avec succès | |
350| `num_blocking` | Nombre de hooks qui ont retourné une décision de blocage | |353| `num_blocking` | Nombre de hooks qui ont retourné une décision de blocage | |
354<span id="new-context-gates" />357<span id="new-context-gates" />
355 358
356<Note>359<Note>
357 Les attributs supplémentaires porteurs de contenu tels que `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input` et `response.model_output` sont émis uniquement lorsque le traçage bêta détaillé est actif. Ils ne font pas partie du schéma d'intervalle stable.360 Les attributs supplémentaires porteurs de contenu tels que `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input` et `response.model_output` ne sont émis que lorsque le traçage bêta détaillé est actif. Ils ne font pas partie du schéma de span stable.
358 361
359 La porte sur `new_context` dépend de l'intervalle qui le porte, et chaque copie est tronquée à la limite de contenu (60 Ko par défaut). Sur l'intervalle `claude_code.tool` il porte le résultat de cet appel d'outil, quel que soit l'outil, et nécessite `OTEL_LOG_TOOL_CONTENT=1`. Sur l'intervalle `claude_code.interaction` il porte l'invite utilisateur, et sur l'intervalle `claude_code.llm_request` les nouveaux messages utilisateur et résultats d'outils de cette demande. Les deux nécessitent `OTEL_LOG_USER_PROMPTS=1`.362 La porte sur `new_context` dépend du span qui le porte, et chaque copie est tronquée à la limite de contenu (60 Ko par défaut). Sur le span `claude_code.tool`, il porte le résultat de cet appel d'outil, quel que soit l'outil, et nécessite `OTEL_LOG_TOOL_CONTENT=1`. Sur le span `claude_code.interaction`, il porte l'invite utilisateur, et sur le span `claude_code.llm_request`, les nouveaux messages utilisateur et résultats d'outils de cette demande. Les deux nécessitent `OTEL_LOG_USER_PROMPTS=1`.
360 363
361 `user_system_prompt` nécessite également `OTEL_LOG_USER_PROMPTS=1`. Il porte uniquement le texte du prompt système que vous fournissez via l'option SDK `systemPrompt` ou les drapeaux `--system-prompt` et `--append-system-prompt`, tronqué à la limite de contenu (60 Ko par défaut), et est émis une fois par session plutôt que par demande.364 `user_system_prompt` nécessite en outre `OTEL_LOG_USER_PROMPTS=1`. Il porte uniquement le texte d'invite système que vous fournissez via l'option SDK `systemPrompt` ou les drapeaux `--system-prompt` et `--append-system-prompt`, tronqué à la limite de contenu (60 Ko par défaut), et est émis une fois par session plutôt que par demande.
362</Note>365</Note>
363 366
364<h3 id="dynamic-headers">367<h3 id="dynamic-headers">
365 En-têtes dynamiques368 En-têtes dynamiques
366</h3>369</h3>
367 370
368Pour les environnements d'entreprise qui nécessitent une authentification dynamique, vous pouvez configurer un script pour générer des en-têtes dynamiquement. Les en-têtes dynamiques s'appliquent uniquement aux protocoles `http/protobuf` et `http/json`. Avec le protocole `grpc`, Claude Code utilise uniquement les variables d'en-têtes statiques, `OTEL_EXPORTER_OTLP_HEADERS` et ses variantes par signal.371Pour les environnements d'entreprise qui nécessitent une authentification dynamique, vous pouvez configurer un script pour générer des en-têtes dynamiquement. Les en-têtes dynamiques s'appliquent uniquement aux protocoles `http/protobuf` et `http/json`. Avec le protocole `grpc`, Claude Code utilise uniquement les variables d'en-têtes statiques, `OTEL_EXPORTER_OTLP_HEADERS` et ses variantes spécifiques au signal.
369 372
370<h4 id="settings-configuration">373<h4 id="settings-configuration">
371 Configuration des paramètres374 Configuration des paramètres
385 Exigences du script388 Exigences du script
386</h4>389</h4>
387 390
388Le script doit générer du JSON valide avec des paires clé-valeur de chaînes représentant les en-têtes HTTP :391Le script doit produire un JSON valide avec des paires clé-valeur de chaîne représentant les en-têtes HTTP :
389 392
390```bash theme={null}393```bash theme={null}
391#!/bin/bash394#!/bin/bash
392# Exemple : plusieurs en-têtes395# Example: Multiple headers
393echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"396echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"
394```397```
395 398
396Si le script d'aide échoue ou imprime une sortie qui ne répond pas à ces exigences, les exports échouent et votre backend de télémétrie ne reçoit rien de la session jusqu'à ce que le script fonctionne à nouveau. Claude Code signale l'erreur dans :399Si l'assistant échoue ou imprime une sortie qui ne répond pas à ces exigences, les exports échouent et votre backend de télémétrie ne reçoit rien de la session jusqu'à ce que l'assistant fonctionne à nouveau. Claude Code signale l'échec dans :
397 400
398* Une notification d'avertissement dans les sessions interactives, [`otelHeadersHelper failed; telemetry is not being exported`](/docs/fr/errors#otelheadershelper-failed), affichée une fois par session lorsque le script d'aide échoue pour la première fois401* Une notification d'avertissement dans les sessions interactives, [`otelHeadersHelper failed; telemetry is not being exported`](/docs/fr/errors#otelheadershelper-failed), affichée une fois par session lorsque l'assistant échoue pour la première fois
399* La sortie `/status`402* Sortie `/status`
400* Le journal de débogage, lors de l'exécution avec [`--debug`](/docs/fr/cli-reference#cli-flags) ou après l'exécution de `/debug` dans la session403* Le journal de débogage, lors de l'exécution avec [`--debug`](/docs/fr/cli-reference#cli-flags) ou après l'exécution de `/debug` dans la session
401* stderr, dans les sessions non interactives démarrées avec `-p`404* stderr, dans les sessions non interactives démarrées avec `-p`
402 405
404 Comportement d'actualisation407 Comportement d'actualisation
405</h4>408</h4>
406 409
407Le script d'aide des en-têtes s'exécute au démarrage et périodiquement par la suite pour prendre en charge l'actualisation des jetons. Par défaut, le script s'exécute toutes les 29 minutes. Personnalisez l'intervalle avec la variable d'environnement `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`.410Le script d'assistant d'en-têtes s'exécute au démarrage et périodiquement par la suite pour prendre en charge l'actualisation des jetons. Par défaut, le script s'exécute toutes les 29 minutes. Personnalisez l'intervalle avec la variable d'environnement `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`.
408 411
409<h3 id="multi-team-organization-support">412<h3 id="multi-team-organization-support">
410 Support des organisations multi-équipes413 Support des organisations multi-équipes
411</h3>414</h3>
412 415
413Les organisations avec plusieurs équipes ou départements peuvent ajouter des attributs personnalisés pour distinguer les différents groupes à l'aide de la variable d'environnement `OTEL_RESOURCE_ATTRIBUTES` :416Les organisations avec plusieurs équipes ou départements peuvent ajouter des attributs personnalisés pour distinguer les différents groupes en utilisant la variable d'environnement `OTEL_RESOURCE_ATTRIBUTES` :
414 417
415```bash theme={null}418```bash theme={null}
416# Ajouter des attributs personnalisés pour l'identification de l'équipe419# Add custom attributes for team identification
417export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"420export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"
418```421```
419 422
420Ces attributs personnalisés seront inclus dans toutes les métriques et tous les événements, ce qui vous permet de :423Ces attributs personnalisés sont inclus dans toutes les métriques et événements, ce qui vous permet de :
421 424
422* Filtrer les métriques par équipe ou département425* Filtrer les métriques par équipe ou département
423* Suivre les coûts par centre de coûts426* Suivre les coûts par centre de coûts
424* Créer des tableaux de bord spécifiques à l'équipe427* Créer des tableaux de bord spécifiques à l'équipe
425* Configurer des alertes pour des équipes spécifiques428* Configurer des alertes pour des équipes spécifiques
426 429
427Claude Code attache ces valeurs comme attributs sur chaque point de données de métriques et enregistrement d'événement, en plus de les envoyer dans le bloc de ressources OTLP. Parce que la plupart des backends de métriques exposent les attributs de point de données comme des étiquettes interrogeables, vous pouvez regrouper et filtrer les métriques par vos clés personnalisées directement. Sauf pour les [attributs de référentiel](#repository-attributes) `vcs.*`, les clés personnalisées ne remplacent jamais les [attributs standard](#standard-attributes) tels que `user.id` ou `session.id` : lorsqu'une clé entre en collision, Claude Code conserve la valeur intégrée.430Claude Code attache ces valeurs comme attributs sur chaque point de données de métrique et enregistrement d'événement, en plus de les envoyer dans le bloc de ressource OTLP. Parce que la plupart des backends de métriques exposent les attributs de point de données comme des étiquettes interrogeables, vous pouvez regrouper et filtrer les métriques par vos clés personnalisées directement. À l'exception des [attributs de référentiel](#repository-attributes) `vcs.*`, les clés personnalisées ne remplacent jamais les [attributs standard](#standard-attributes) tels que `user.id` ou `session.id` : lorsqu'une clé entre en collision, Claude Code conserve la valeur intégrée.
428 431
429Chaque clé personnalisée devient une étiquette sur chaque série de métriques, donc les valeurs de haute cardinalité augmentent le coût de stockage dans votre backend de métriques. Pour envoyer des attributs personnalisés dans le bloc de ressources uniquement et les omettre des étiquettes de point de données, définissez `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Voir [Contrôle de la cardinalité des métriques](#metrics-cardinality-control).432Chaque clé personnalisée devient une étiquette sur chaque série de métriques, donc les valeurs de cardinalité élevée augmentent le coût de stockage dans votre backend de métriques. Pour envoyer des attributs personnalisés dans le bloc de ressource uniquement et les omettre des étiquettes de point de données, définissez `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Voir [Contrôle de la cardinalité des métriques](#metrics-cardinality-control).
430 433
431<Warning>434<Warning>
432 La variable d'environnement `OTEL_RESOURCE_ATTRIBUTES` utilise des paires clé=valeur séparées par des virgules avec des exigences de formatage strictes :435 La variable d'environnement `OTEL_RESOURCE_ATTRIBUTES` utilise des paires clé=valeur séparées par des virgules avec des exigences de formatage strictes :
433 436
434 * **Aucun espace autorisé** : Les valeurs ne peuvent pas contenir d'espaces. Par exemple, `user.organizationName=My Company` est invalide437 * **Aucun espace autorisé** : les valeurs ne peuvent pas contenir d'espaces. Par exemple, `user.organizationName=My Company` est invalide
435 * **Format** : Doit être des paires clé=valeur séparées par des virgules : `key1=value1,key2=value2`438 * **Format** : doit être des paires clé=valeur séparées par des virgules : `key1=value1,key2=value2`
436 * **Caractères autorisés** : Uniquement les caractères US-ASCII à l'exclusion des caractères de contrôle, des espaces, des guillemets doubles, des virgules, des points-virgules et des barres obliques inverses439 * **Caractères autorisés** : uniquement les caractères US-ASCII à l'exclusion des caractères de contrôle, des espaces, des guillemets doubles, des virgules, des points-virgules et des barres obliques inverses
437 * **Caractères spéciaux** : Les caractères en dehors de la plage autorisée doivent être codés en pourcentage440 * **Caractères spéciaux** : les caractères en dehors de la plage autorisée doivent être codés en pourcentage
438 441
439 Pour une valeur qui aurait besoin d'un espace, utilisez des traits de soulignement ou camelCase à la place. Les exemples suivants définissent `org.name` avec chaque forme :442 Pour une valeur qui aurait besoin d'un espace, utilisez des traits de soulignement ou camelCase à la place. Les exemples suivants définissent `org.name` avec chaque forme :
440 443
449 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"452 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"
450 ```453 ```
451 454
452 Entourer les valeurs de guillemets n'échappe pas aux espaces. Par exemple, `org.name="My Company"` donne la valeur littérale `"My Company"` avec les guillemets inclus, pas `My Company`.455 L'enveloppe des valeurs entre guillemets n'échappe pas aux espaces. Par exemple, `org.name="My Company"` résulte en la valeur littérale `"My Company"` avec les guillemets inclus, pas `My Company`.
453</Warning>456</Warning>
454 457
455<h3 id="example-configurations">458<h3 id="example-configurations">
456 Exemples de configurations459 Exemples de configurations
457</h3>460</h3>
458 461
459Définissez ces variables d'environnement avant d'exécuter `claude`. Chaque scénario ci-dessous montre une configuration complète, et chaque variable est décrite sous [Variables de configuration courantes](#common-configuration-variables). Pour confirmer qu'une configuration a pris effet, vérifiez votre backend pour la métrique `claude_code.session.count` après le démarrage d'une session ; le [Démarrage rapide](#quick-start) couvre la vérification en journaux uniquement et ce qu'il faut vérifier quand rien n'arrive.462Définissez ces variables d'environnement avant d'exécuter `claude`. Chaque scénario ci-dessous montre une configuration complète, et chaque variable est décrite sous [Variables de configuration communes](#common-configuration-variables). Pour confirmer qu'une configuration a pris effet, vérifiez votre backend pour la métrique `claude_code.session.count` après le démarrage d'une session ; le [Démarrage rapide](#quick-start) couvre la vérification en logs uniquement et ce qu'il faut vérifier lorsque rien n'arrive.
460 463
461Pour le débogage de console avec un intervalle d'export d'1 seconde :464Pour le débogage de console avec un intervalle d'export d'une seconde :
462 465
463```bash theme={null}466```bash theme={null}
464export CLAUDE_CODE_ENABLE_TELEMETRY=1467export CLAUDE_CODE_ENABLE_TELEMETRY=1
475export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317478export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
476```479```
477 480
478Pour Prometheus, récupéré depuis `http://localhost:9464/metrics` :481Pour Prometheus, récupéré à partir de `http://localhost:9464/metrics` :
479 482
480```bash theme={null}483```bash theme={null}
481export CLAUDE_CODE_ENABLE_TELEMETRY=1484export CLAUDE_CODE_ENABLE_TELEMETRY=1
482export OTEL_METRICS_EXPORTER=prometheus485export OTEL_METRICS_EXPORTER=prometheus
483```486```
484 487
485Sur un [environnement auto-hébergé](/docs/fr/self-hosted-environments-reference#pass-through-session-child-metrics), la session lie le port 9464 uniquement à la capacité par défaut du runner d'un. À une capacité plus élevée, le runner réexpose les compteurs et jauges de session sur son propre point de terminaison `/metrics` à la place.488Sur un [environnement auto-hébergé](/docs/fr/self-hosted-environments-reference#pass-through-session-child-metrics), la session lie le port 9464 uniquement à la capacité par défaut du runner d'une. À une capacité plus élevée, le runner réexpose les compteurs et jauges de session sur son propre point de terminaison `/metrics` à la place.
486 489
487Pour envoyer des métriques à plusieurs exportateurs :490Pour envoyer des métriques à plusieurs exportateurs :
488 491
504export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317507export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317
505```508```
506 509
507Pour exporter les métriques uniquement, sans événements ni journaux :510Pour exporter uniquement les métriques, sans événements ni journaux :
508 511
509```bash theme={null}512```bash theme={null}
510export CLAUDE_CODE_ENABLE_TELEMETRY=1513export CLAUDE_CODE_ENABLE_TELEMETRY=1
513export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317516export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
514```517```
515 518
516Pour exporter les événements et journaux uniquement, sans métriques :519Pour exporter uniquement les événements et journaux, sans métriques :
517 520
518```bash theme={null}521```bash theme={null}
519export CLAUDE_CODE_ENABLE_TELEMETRY=1522export CLAUDE_CODE_ENABLE_TELEMETRY=1
522export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317525export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
523```526```
524 527
528<h2 id="telemetry-from-cloud-sessions-and-claude-tag">
529 Télémétrie des sessions cloud et Claude Tag
530</h2>
531
532[Les sessions cloud](/docs/fr/claude-code-on-the-web), y compris les sessions du canal [Claude Tag](https://claude.com/docs/claude-tag/overview), s'exécutent dans des [environnements cloud](/docs/fr/cloud-environments) plutôt que sur les appareils de vos utilisateurs, donc un fichier de paramètres gérés ou un profil shell sur ces appareils ne configure pas leur télémétrie. Pour les sessions dans les environnements hébergés par Anthropic, cette section couvre l'endroit où définir les variables de télémétrie, comment rendre votre collecteur accessible à partir de l'environnement, et comment distinguer les sessions cloud et Claude Tag dans les données exportées.
533
534Pour exporter la télémétrie de ces sessions, définissez `CLAUDE_CODE_ENABLE_TELEMETRY` et les variables `OTEL_*`, en utilisant les mêmes clés que l'exemple de [configuration administrateur](#administrator-configuration), dans l'un des deux endroits suivants :
535
536* **Paramètres gérés par le serveur** : ajoutez-les au bloc `env` des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation. Claude Code récupère ces paramètres au démarrage partout où [les paramètres gérés par le serveur s'appliquent](/docs/fr/model-config#surface-coverage), ce qui inclut les machines de vos utilisateurs et les sessions cloud autres que les sessions du canal Claude Tag. Les sessions Claude Tag ne reçoivent pas vos paramètres gérés par le serveur, donc cette route ne les configure pas.
537* **Les variables de l'environnement** : ajoutez-les aux [variables d'environnement](/docs/fr/cloud-environments#set-environment-variables) d'un environnement cloud pour configurer uniquement les sessions qui s'exécutent dans cet environnement. C'est la route qui atteint les sessions Claude Tag.
538
539Quiconque utilise un environnement peut lire ses variables, donc ne mettez pas une credential là, comme un jeton de collecteur dans `OTEL_EXPORTER_OTLP_HEADERS`. Une [credential API](/docs/fr/cloud-environments#add-api-credentials) sur l'environnement n'aide pas non plus, car l'export de télémétrie propre de Claude Code est l'une des [requêtes qui ne reçoivent jamais la credential](/docs/fr/cloud-environments#requests-that-never-get-the-credential). Si votre collecteur nécessite une credential, configurez l'export entier via les paramètres gérés par le serveur à la place, car lorsque vous définissez une credential là, [Claude Code supprime les variables de point de terminaison définies en dehors des paramètres gérés](#how-managed-settings-lock-the-otlp-destination).
540
541Gardez ces contraintes à l'esprit lorsque vous configurez la télémétrie pour les sessions cloud :
542
543* **Laissez les sessions atteindre le collecteur** : Claude Code envoie l'export via le réseau de la session, donc si elle atteint l'hôte dans votre `OTEL_EXPORTER_OTLP_ENDPOINT` dépend du [niveau d'accès réseau](/docs/fr/cloud-environments#access-levels) de l'environnement. Si les sessions ne peuvent pas atteindre le domaine du collecteur au niveau que vous avez choisi, [ajoutez le domaine à la liste d'autorisation de l'environnement](/docs/fr/cloud-environments#allow-specific-domains), car aucun paramètre géré par le serveur n'ajoute de domaines à la liste d'autorisation réseau d'un environnement.
544* **Les canaux Claude Tag utilisent des environnements au niveau de l'organisation** : les sessions de canal s'exécutent dans des environnements au niveau de l'organisation plutôt que dans les environnements personnels des membres, donc effectuez les modifications de la liste d'autorisation et des variables d'environnement sur l'[environnement partagé](/docs/fr/cloud-environments#organization-shared-environments) défini comme défaut de votre organisation ou épinglé au canal.
545* **Cowork est configuré séparément** : les sessions Cowork ne reçoivent pas les paramètres gérés par le serveur, comme le montre le [tableau de couverture de surface](/docs/fr/model-config#surface-coverage), donc le bloc `env` géré par le serveur ne configure pas leur télémétrie.
546
547<h3 id="attribute-telemetry-to-cloud-sessions">
548 Attribuer la télémétrie aux sessions cloud
549</h3>
550
551Par défaut, les métriques et les événements d'une session cloud portent les [attributs standard](#standard-attributes), y compris `session.id`, `ccr.session.id`, et `organization.id`, afin que vous puissiez filtrer par session ou organisation sans configuration supplémentaire. La valeur `ccr.session.id` est le `CLAUDE_CODE_REMOTE_SESSION_ID` de la session. Pour le transformer en URL de transcription de la session, voir [Lier la sortie à la session](/docs/fr/cloud-environments#link-output-back-to-the-session).
552
553Pour attribuer la télémétrie plus en détail, utilisez ces options :
554
555* **Identifier les sessions Claude Tag** : définissez `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, comme décrit sous [Contrôle de la cardinalité des métriques](#metrics-cardinality-control). Les métriques portent alors `app.entrypoint`, dont la valeur est `claude-in-slack` pour les sessions Claude Tag.
556* **Ajouter des attributs personnalisés** : définissez [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) au même endroit où vous définissez les autres variables `OTEL_*` pour ces sessions. Si vous l'`export` dans le [script de configuration](/docs/fr/cloud-environments#setup-scripts) de l'environnement à la place, la valeur n'atteint pas Claude Code : le script de configuration est un script Bash séparé qui s'exécute avant le lancement de Claude Code, et les variables qu'il exporte se terminent avec lui.
557
558Dans les sessions du canal Claude Tag, Claude fonctionne comme l'[identité partagée](/docs/fr/cloud-environments#set-the-environment-a-claude-tag-channel-uses) de votre organisation plutôt que comme n'importe quel membre, donc ne vous fiez pas aux attributs `user.*` pour identifier qui a tagué Claude.
559
525<h2 id="available-metrics-and-events">560<h2 id="available-metrics-and-events">
526 Métriques et événements disponibles561 Métriques et événements disponibles
527</h2>562</h2>
535| Attribut | Description | Contrôlé par |570| Attribut | Description | Contrôlé par |
536| - | - | - |571| - | - | - |
537| `session.id` | Identifiant de session unique | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |572| `session.id` | Identifiant de session unique | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |
573| `ccr.session.id` | Identifiant de session cloud, la valeur de `CLAUDE_CODE_REMOTE_SESSION_ID`, sur les sessions qui s'exécutent dans un [environnement cloud](/docs/fr/cloud-environments) | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |
538| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |574| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |
539| `app.entrypoint` | Comment la session a été lancée, par exemple `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, ou `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |575| `app.entrypoint` | Comment la session a été lancée, par exemple `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, ou `claude-in-slack` pour les sessions Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |
540| `organization.id` | UUID de l'organisation (si authentifié) | Toujours inclus quand disponible |576| `organization.id` | UUID d'organisation (lorsqu'authentifié) | Toujours inclus lorsque disponible |
541| `user.account_uuid` | UUID du compte (si authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |577| `user.account_uuid` | UUID de compte (lorsqu'authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |
542| `user.account_id` | ID du compte au format balisé correspondant aux API d'administration Anthropic (si authentifié), par exemple `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |578| `user.account_id` | ID de compte au format balisé correspondant aux API d'administration Anthropic (lorsqu'authentifié), par exemple `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |
543| `user.id` | Identifiant anonyme aléatoire généré à la première exécution et persisté dans `~/.claude.json`. Il ne contient aucune information personnelle et n'est pas dérivé de votre compte Claude. La suppression du fichier produit une nouvelle valeur sans rapport à la prochaine exécution. | Toujours inclus |579| `user.id` | Identifiant anonyme aléatoire généré à la première exécution et persisté dans `~/.claude.json`. Il ne contient aucune information personnelle et n'est pas dérivé de votre compte Claude. La suppression du fichier produit une nouvelle valeur sans rapport à la prochaine exécution. | Toujours inclus |
544| `user.email` | Adresse e-mail de l'utilisateur, de votre connexion ou, dans une [session cloud](/docs/fr/claude-code-on-the-web), des identifiants de la session elle-même | Toujours inclus quand disponible |580| `user.email` | Adresse e-mail de l'utilisateur, de votre connexion ou, dans une [session cloud](/docs/fr/claude-code-on-the-web), des identifiants de la session elle-même | Toujours inclus lorsque disponible |
545| `terminal.type` | Type de terminal, par exemple `iTerm.app`, `vscode`, `cursor`, ou `tmux` | Toujours inclus quand détecté |581| `terminal.type` | Type de terminal, par exemple `iTerm.app`, `vscode`, `cursor`, ou `tmux` | Toujours inclus lorsque détecté |
546| Clés de `OTEL_RESOURCE_ATTRIBUTES` | Attributs personnalisés que vous définissez, par exemple `department` ou `team.id`. Voir [Support des organisations multi-équipes](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (par défaut : true) |582| Clés de `OTEL_RESOURCE_ATTRIBUTES` | Attributs personnalisés que vous définissez, par exemple `department` ou `team.id`. Voir [Support des organisations multi-équipes](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (par défaut : true) |
547| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | L'identité du référentiel de la session, dérivée de sa télécommande `origin`. Voir [Attributs du référentiel](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (par défaut : false). Nécessite Claude Code v2.1.269 ou ultérieur |583| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | L'identité du référentiel de la session, dérivée de sa télécommande `origin`. Voir [Attributs du référentiel](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (par défaut : false). Nécessite Claude Code v2.1.269 ou ultérieur |
548 584
549Quand Claude Code est connecté à une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), l'interface de ligne de commande marque les exportations avec l'identité authentifiée de la session de la passerelle : `user.id` est le sujet IdP plutôt qu'un identifiant d'installation anonyme, `user.email` est l'e-mail connecté, et `user.groups` porte l'appartenance au groupe IdP sous forme de chaîne séparée par des virgules. Chaque exportation porte également `identity.source: gateway-oidc`. L'identité de la passerelle est appliquée en dernier, donc les clés `user.*` et `identity.*` définies via `OTEL_RESOURCE_ATTRIBUTES` sont ignorées sur les sessions de passerelle.585Lorsque Claude Code est connecté à une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), la CLI marque les exportations avec l'identité authentifiée de la session de la passerelle : `user.id` est le sujet IdP plutôt qu'un identifiant d'installation anonyme, `user.email` est l'e-mail connecté, et `user.groups` porte l'appartenance au groupe IdP sous forme de chaîne séparée par des virgules. Chaque exportation porte également `identity.source: gateway-oidc`. L'identité de la passerelle est appliquée en dernier, donc les clés `user.*` et `identity.*` définies via `OTEL_RESOURCE_ATTRIBUTES` sont ignorées sur les sessions de passerelle.
550 586
551Les événements incluent en outre les attributs suivants. Ceux-ci ne sont jamais attachés aux métriques car ils causeraient une cardinalité non bornée :587Les événements incluent en outre les attributs suivants. Ceux-ci ne sont jamais attachés aux métriques car ils causeraient une cardinalité illimitée :
552 588
553* `prompt.id` : UUID corrélant une invite utilisateur avec tous les événements suivants jusqu'à l'invite suivante. Voir [Attributs de corrélation d'événements](#event-correlation-attributes).589* `prompt.id` : UUID corrélant une invite utilisateur avec tous les événements suivants jusqu'à l'invite suivante. Voir [Attributs de corrélation d'événements](#event-correlation-attributes).
554* `workspace.host_paths` : répertoires d'espace de travail hôte sélectionnés dans l'application de bureau, sous forme de tableau de chaînes590* `workspace.host_paths` : répertoires d'espace de travail hôte sélectionnés dans l'application de bureau, sous forme de tableau de chaînes
555* `workflow.run_id` : identifiant d'exécution, préfixé `wf_`, sur les événements API et d'outils émis par les agents qui appartiennent à une exécution d'outil [Workflow](/docs/fr/workflows). Le filtrage des événements par un `workflow.run_id` reconstruit les demandes API et les résultats d'outils de cette exécution. L'identifiant couvre les agents que le script de flux de travail génère et tous les agents que ceux-ci génèrent à leur tour, par exemple les invocations de compétences. Il correspond à l'identifiant d'exécution signalé dans le résultat de l'outil Workflow. Absent sur tous les autres événements. Nécessite Claude Code v2.1.202 ou ultérieur591* `workflow.run_id` : identifiant d'exécution, préfixé `wf_`, sur les événements API et d'outils émis par les agents qui appartiennent à une exécution d'outil [Workflow](/docs/fr/workflows). Le filtrage des événements par un `workflow.run_id` reconstruit les demandes API et les résultats d'outils de cette exécution. L'identifiant couvre les agents que le script de flux de travail génère et tous les agents que ceux-ci génèrent à leur tour, par exemple les invocations de compétences. Il correspond à l'identifiant d'exécution signalé dans le résultat de l'outil Workflow. Absent sur tous les autres événements. Nécessite Claude Code v2.1.202 ou ultérieur
556* `workflow.name` : nom du flux de travail, le `meta.name` de son script, émis aux côtés de `workflow.run_id`. Les noms de flux de travail intégrés apparaissent textuellement quand l'exécution exécute le script intégré non modifié. Les noms créés par l'utilisateur, y compris les copies modifiées de scripts intégrés, sont remplacés par `custom` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Nécessite Claude Code v2.1.202 ou ultérieur592* `workflow.name` : nom du flux de travail, le `meta.name` de son script, émis aux côtés de `workflow.run_id`. Les noms de flux de travail intégrés apparaissent textuellement lorsque l'exécution exécute le script intégré non modifié. Les noms créés par l'utilisateur, y compris les copies modifiées de scripts intégrés, sont remplacés par `custom` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Nécessite Claude Code v2.1.202 ou ultérieur
557 593
558<h4 id="repository-attributes">594<h4 id="repository-attributes">
559 Attributs du référentiel595 Attributs du référentiel
560</h4>596</h4>
561 597
562Définissez `OTEL_METRICS_INCLUDE_REPOSITORY=true` pour balisez les métriques et les événements avec l'identité du référentiel de la session, afin qu'un collecteur partagé puisse attribuer l'utilisation par référentiel. Nécessite Claude Code v2.1.269 ou ultérieur.598Définissez `OTEL_METRICS_INCLUDE_REPOSITORY=true` pour baliser les métriques et les événements avec l'identité du référentiel de la session, afin qu'un collecteur partagé puisse attribuer l'utilisation par référentiel. Nécessite Claude Code v2.1.269 ou ultérieur.
563 599
564Claude Code dérive ces attributs une fois par session à partir de la télécommande `origin` du référentiel. Les télécommandes HTTPS et SSH d'un référentiel produisent des valeurs identiques :600Claude Code dérive ces attributs une fois par session à partir de la télécommande `origin` du référentiel. Lorsque les télécommandes HTTPS et SSH d'un référentiel nomment le même hôte et le même chemin, comme c'est le cas sur GitHub, GitLab et Bitbucket Cloud, les deux produisent des valeurs identiques :
565 601
566| Attribut | Valeur |602| Attribut | Valeur |
567| - | - |603| - | - |
568| `vcs.repository.url.full` | L'URL du navigateur du référentiel sans `.git`, par exemple `https://github.com/example-org/example-repo` |604| `vcs.repository.url.full` | L'URL du navigateur du référentiel sans `.git`, par exemple `https://github.com/example-org/example-repo` |
569| `vcs.owner.name` | Le chemin du propriétaire ou du groupe, par exemple `example-org` ; omis quand le chemin de la télécommande a un seul segment |605| `vcs.owner.name` | Le chemin du propriétaire ou du groupe, par exemple `example-org` ; omis lorsque le chemin distant a un seul segment |
570| `vcs.repository.name` | Le nom du référentiel nu, par exemple `example-repo` |606| `vcs.repository.name` | Le nom du référentiel nu, par exemple `example-repo` |
571| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, ou `gitea` quand Claude Code reconnaît l'hôte de la télécommande ou la forme de l'URL comme l'un de ces fournisseurs ; omis sinon |607| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, ou `gitea` lorsque Claude Code reconnaît l'hôte distant ou la forme d'URL comme l'un de ces fournisseurs ; omis sinon |
608
609Les valeurs sont en minuscules, et les identifiants, les chaînes de requête et les fragments de l'URL distante n'y apparaissent jamais. Les attributs sont omis lorsque la session n'a pas de télécommande `origin`, lorsque la télécommande n'a pas la forme d'une URL, ou lorsque le seul référentiel englobant est votre répertoire personnel.
572 610
573Les valeurs sont en minuscules, et les identifiants, chaînes de requête et fragments de l'URL de la télécommande n'apparaissent jamais en eux. Les attributs sont omis quand la session n'a pas de télécommande `origin`, quand la télécommande n'a pas la forme d'une URL, ou quand le seul référentiel englobant est votre répertoire personnel.611Pour obtenir ces attributs à partir d'une [session cloud](/docs/fr/claude-code-on-the-web), définissez les variables de télémétrie, y compris `OTEL_METRICS_INCLUDE_REPOSITORY`, sur son [environnement cloud](/docs/fr/cloud-environments#set-environment-variables). Autorisez également le domaine de votre collecteur dans l'[accès réseau](/docs/fr/cloud-environments#network-access) de l'environnement.
574 612
575Une clé `vcs.*` que vous déclarez dans [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) remplace la valeur dérivée pour cette clé. Si vous déclarez `vcs.repository.url.full`, Claude Code ne lit jamais la télécommande et signale uniquement les clés que vous déclarez.613Une clé `vcs.*` que vous déclarez dans [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) remplace la valeur dérivée pour cette clé. Si vous déclarez `vcs.repository.url.full`, Claude Code ne lit jamais la télécommande et signale uniquement les clés que vous déclarez.
576 614
615Si les clones HTTPS et SSH d'un référentiel signalent des valeurs différentes, par exemple sur une installation auto-hébergée dont l'URL de clone HTTPS porte un préfixe de chemin que l'URL SSH n'a pas, déclarez `vcs.repository.url.full` dans `OTEL_RESOURCE_ATTRIBUTES` ainsi que toute autre clé `vcs.*` que vous souhaitez signaler. Chaque clone signale alors l'identité que vous déclarez.
616
577Les attributs ne circulent que vers vos propres exportateurs ; la télémétrie d'Anthropic supprime chaque clé `vcs.*`.617Les attributs ne circulent que vers vos propres exportateurs ; la télémétrie d'Anthropic supprime chaque clé `vcs.*`.
578 618
579<h3 id="metrics">619<h3 id="metrics">
580 Métriques620 Métriques
581</h3>621</h3>
582 622
583Claude Code exporte les métriques suivantes. La colonne Unité affiche la chaîne d'unité OpenTelemetry attachée à chaque métrique ; les métriques de comptage n'en portent aucune.623Claude Code exporte les métriques suivantes. La colonne Unité affiche la chaîne d'unité OpenTelemetry attachée à chaque métrique ; les métriques de comptage n'en ont aucune.
584 624
585| Nom de la métrique | Description | Unité |625| Nom de la métrique | Description | Unité |
586| - | - | - |626| - | - | - |
593| `claude_code.code_edit_tool.decision` | Nombre de décisions de permission de l'outil d'édition de code | aucune |633| `claude_code.code_edit_tool.decision` | Nombre de décisions de permission de l'outil d'édition de code | aucune |
594| `claude_code.active_time.total` | Temps actif total | s |634| `claude_code.active_time.total` | Temps actif total | s |
595 635
596Quand `prometheus` est le seul exportateur listé dans `OTEL_METRICS_EXPORTER`, Claude Code omet les unités `USD`, `tokens`, et `s` des métriques exportées afin que le scrape reste au format texte Prometheus valide. Les noms de métriques ne changent pas, et les configurations qui combinent des exportateurs, par exemple `otlp,prometheus`, conservent les unités. Avant v2.1.216, le scrape Prometheus incluait des lignes `# UNIT` uniquement OpenMetrics que certains scrapers rejetaient.636Lorsque `prometheus` est le seul exportateur listé dans `OTEL_METRICS_EXPORTER`, Claude Code omet les unités `USD`, `tokens` et `s` des métriques exportées afin que le scrape reste au format texte Prometheus valide. Les noms de métriques ne changent pas, et les configurations qui combinent des exportateurs, par exemple `otlp,prometheus`, conservent les unités. Avant v2.1.216, le scrape Prometheus incluait des lignes `# UNIT` OpenMetrics uniquement que certains scrapers rejetaient.
597 637
598<h3 id="metric-details">638<h3 id="metric-details">
599 Détails des métriques639 Détails des métriques
602Chaque métrique inclut les attributs standard listés ci-dessus. Les métriques avec des attributs supplémentaires spécifiques au contexte sont notées ci-dessous.642Chaque métrique inclut les attributs standard listés ci-dessus. Les métriques avec des attributs supplémentaires spécifiques au contexte sont notées ci-dessous.
603 643
604<h4 id="session-counter">644<h4 id="session-counter">
605 Compteur de session645 Compteur de sessions
606</h4>646</h4>
607 647
608Incrémenté au début de chaque session.648Incrémenté au début de chaque session.
610**Attributs** :650**Attributs** :
611 651
612* Tous les [attributs standard](#standard-attributes)652* Tous les [attributs standard](#standard-attributes)
613* `start_type` : Comment la session a été démarrée. L'une de `"fresh"`, `"resume"`, `"continue"`, ou `"agents_view"`. La valeur `"agents_view"` identifie le processus du tableau de bord `claude agents`, une interface utilisateur locale lancée par l'utilisateur plutôt qu'une session conversationnelle. Filtrez sur cette valeur pour séparer les lancements de processus d'interface utilisateur des sessions conversationnelles dans vos tableaux de bord.653* `start_type` : Comment la session a été démarrée. L'une de `"fresh"`, `"resume"`, `"continue"`, ou `"agents_view"`. La valeur `"agents_view"` identifie le processus du tableau de bord `claude agents`, une interface utilisateur locale lancée par l'utilisateur plutôt qu'une session conversationnelle. Filtrez sur cette valeur pour séparer les lancements de processus UI des sessions conversationnelles dans vos tableaux de bord.
614 654
615<h4 id="lines-of-code-counter">655<h4 id="lines-of-code-counter">
616 Compteur de lignes de code656 Compteur de lignes de code
617</h4>657</h4>
618 658
619Incrémenté quand du code est ajouté ou supprimé.659Incrémenté lorsque du code est ajouté ou supprimé.
620 660
621**Attributs** :661**Attributs** :
622 662
625* `model` : Identifiant du modèle pour le modèle qui a effectué la modification (par exemple, « claude-sonnet-5 »)665* `model` : Identifiant du modèle pour le modèle qui a effectué la modification (par exemple, « claude-sonnet-5 »)
626 666
627<h4 id="pull-request-counter">667<h4 id="pull-request-counter">
628 Compteur de demande de tirage668 Compteur de demandes de tirage
629</h4>669</h4>
630 670
631Incrémenté quand Claude Code crée une demande de tirage ou de fusion via une commande shell ou un outil MCP.671Incrémenté lorsque Claude Code crée une demande de tirage ou de fusion via une commande shell ou un outil MCP.
632 672
633**Attributs** :673**Attributs** :
634 674
635* Tous les [attributs standard](#standard-attributes)675* Tous les [attributs standard](#standard-attributes)
636 676
637<h4 id="commit-counter">677<h4 id="commit-counter">
638 Compteur de commit678 Compteur de commits
639</h4>679</h4>
640 680
641Incrémenté lors de la création de commits git via Claude Code.681Incrémenté lors de la création de commits git via Claude Code.
645* Tous les [attributs standard](#standard-attributes)685* Tous les [attributs standard](#standard-attributes)
646 686
647<h4 id="cost-counter">687<h4 id="cost-counter">
648 Compteur de coût688 Compteur de coûts
649</h4>689</h4>
650 690
651Incrémenté après chaque demande API.691Incrémenté après chaque demande API.
652 692
693Les attributs `agent.name`, `skill.name`, `plugin.name`, `mcp_server.name` et `mcp_tool.name` rédactent chacun certains noms à un espace réservé `"custom"` ou `"third-party"` par défaut. Si vous définissez `OTEL_LOG_TOOL_DETAILS=1`, ils portent les noms réels à la place. Avant v2.1.273, les compteurs de coûts et de jetons et les événements `api_request`, `api_error` et `api_refusal` portaient les valeurs rédactées même avec `OTEL_LOG_TOOL_DETAILS=1` défini.
694
653**Attributs** :695**Attributs** :
654 696
655* Tous les [attributs standard](#standard-attributes)697* Tous les [attributs standard](#standard-attributes)
656* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)698* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)
657* `query_source` : Catégorie du sous-système qui a émis la demande. L'une de `"main"`, `"subagent"`, ou `"auxiliary"`699* `query_source` : Catégorie du sous-système qui a émis la demande. L'une de `"main"`, `"subagent"`, ou `"auxiliary"`
658* `speed` : `"fast"` quand la demande a utilisé le mode rapide. Absent sinon700* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon
659* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent quand Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.701* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent lorsque Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.
660* `agent.name` : Type de sous-agent qui a émis la demande. Les noms d'agents intégrés et les agents des plugins de la place de marché officielle apparaissent textuellement. Les autres noms d'agents définis par l'utilisateur sont remplacés par `"custom"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Absent quand la demande n'a pas été émise par un type de sous-agent nommé.702* `agent.name` : Type de sous-agent qui a émis la demande. Les noms d'agents intégrés et les agents des plugins de la place de marché officielle apparaissent textuellement. Les autres noms d'agents définis par l'utilisateur sont remplacés par `"custom"`. Absent lorsque la demande n'a pas été émise par un type de sous-agent nommé.
661* `skill.name` : Compétence active pour la demande, définie par l'outil Skill, une commande `/`, ou héritée par un sous-agent généré. Les noms de compétences intégrés, groupés, définis par l'utilisateur et de la place de marché officielle des plugins apparaissent textuellement. Les noms de compétences des plugins tiers sont remplacés par `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Absent quand aucune compétence n'est active.703* `skill.name` : Compétence active pour la demande, définie par l'outil Skill ou une commande `/`, ou héritée par un sous-agent généré. Les noms de compétences intégrés, groupés, définis par l'utilisateur et de la place de marché officielle des plugins apparaissent textuellement. Les noms de compétences des plugins tiers sont remplacés par `"third-party"`. Absent lorsqu'aucune compétence n'est active.
662* `plugin.name` : Plugin propriétaire quand la compétence active ou le sous-agent est fourni par un plugin. Les noms de plugins de la place de marché officielle apparaissent textuellement. Les noms de plugins tiers sont remplacés par `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Absent quand ni la compétence ni le sous-agent n'a de plugin propriétaire.704* `plugin.name` : Plugin propriétaire lorsque la compétence active ou le sous-agent est fourni par un plugin. Les noms des plugins de la place de marché officielle apparaissent textuellement. Les noms des plugins tiers sont remplacés par `"third-party"`. Absent lorsque ni la compétence ni le sous-agent n'a de plugin propriétaire.
663* `marketplace.name` : Place de marché à partir de laquelle le plugin propriétaire a été installé. Émis uniquement pour les plugins de la place de marché officielle. Absent sinon.705* `marketplace.name` : Place de marché à partir de laquelle le plugin propriétaire a été installé. Émis uniquement pour les plugins de la place de marché officielle, même avec `OTEL_LOG_TOOL_DETAILS=1` défini. Absent sinon.
664* `mcp_server.name` : Serveur MCP dont le résultat de l'outil cette demande a consommé. Les noms de serveurs intégrés, proxifiés par claude.ai, et de registre officiel apparaissent textuellement. Les noms de serveurs configurés par l'utilisateur sont remplacés par `"custom"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini. Absent quand la demande n'a consommé aucun résultat d'outil MCP. Avant v2.1.222, Claude Code définissait cet attribut sur chaque demande après un appel d'outil MCP, pas seulement sur les demandes qui ont consommé un résultat d'outil, donc les tableaux de bord qui l'agrègent montrent une baisse après la mise à niveau.706* `mcp_server.name` : Serveur MCP dont le résultat d'outil cette demande a consommé. Les noms des serveurs intégrés, proxifiés par claude.ai et du registre officiel apparaissent textuellement. Les noms des serveurs configurés par l'utilisateur sont remplacés par `"custom"`. Absent lorsque la demande n'a consommé aucun résultat d'outil MCP. Avant v2.1.222, Claude Code définissait cet attribut sur chaque demande après un appel d'outil MCP, pas seulement sur les demandes qui ont consommé un résultat d'outil, donc les tableaux de bord qui l'agrègent montrent une baisse après la mise à niveau.
665* `mcp_tool.name` : Outil MCP dont le résultat cette demande a consommé, avec le même comportement de rédaction et de version que `mcp_server.name`. Absent quand la demande n'a consommé aucun résultat d'outil MCP.707* `mcp_tool.name` : Outil MCP dont le résultat cette demande a consommé, avec le même comportement de rédaction et de version que `mcp_server.name`. Absent lorsque la demande n'a consommé aucun résultat d'outil MCP.
666 708
667<h4 id="token-counter">709<h4 id="token-counter">
668 Compteur de jetons710 Compteur de jetons
676* `type` : (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)718* `type` : (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)
677* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)719* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)
678* `query_source` : Catégorie du sous-système qui a émis la demande. L'une de `"main"`, `"subagent"`, ou `"auxiliary"`720* `query_source` : Catégorie du sous-système qui a émis la demande. L'une de `"main"`, `"subagent"`, ou `"auxiliary"`
679* `speed` : `"fast"` quand la demande a utilisé le mode rapide. Absent sinon721* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon
680* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Voir [Compteur de coût](#cost-counter) pour les détails.722* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Voir [Compteur de coûts](#cost-counter) pour les détails.
681* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coût](#cost-counter) pour les définitions et le comportement de rédaction.723* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de rédaction.
682 724
683<h4 id="code-edit-tool-decision-counter">725<h4 id="code-edit-tool-decision-counter">
684 Compteur de décision de l'outil d'édition de code726 Compteur de décisions de l'outil d'édition de code
685</h4>727</h4>
686 728
687Incrémenté quand l'utilisateur accepte ou rejette l'utilisation de l'outil Edit, Write, ou NotebookEdit.729Incrémenté lorsque l'utilisateur accepte ou rejette l'utilisation de l'outil Edit, Write ou NotebookEdit.
688 730
689**Attributs** :731**Attributs** :
690 732
691* Tous les [attributs standard](#standard-attributes)733* Tous les [attributs standard](#standard-attributes)
692* `tool_name` : Nom de l'outil (`"Edit"`, `"Write"`, `"NotebookEdit"`)734* `tool_name` : Nom de l'outil (`"Edit"`, `"Write"`, `"NotebookEdit"`)
693* `decision` : Décision de l'utilisateur (`"accept"`, `"reject"`)735* `decision` : Décision de l'utilisateur (`"accept"`, `"reject"`)
694* `source` : D'où provient la décision. L'une de `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, ou `"user_reject"`. Voir l'[événement de décision d'outil](#tool-decision-event) pour ce que chaque valeur signifie.736* `source` : D'où provient la décision. L'une de `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, ou `"user_reject"`. Voir l'[événement de décision d'outil](#tool-decision-event) pour ce que signifie chaque valeur.
695* `language` : Langage de programmation du fichier édité, par exemple `"TypeScript"`, `"Python"`, `"JavaScript"`, ou `"Markdown"`. Retourne `"unknown"` pour les extensions de fichier non reconnues.737* `language` : Langage de programmation du fichier édité, par exemple `"TypeScript"`, `"Python"`, `"JavaScript"`, ou `"Markdown"`. Retourne `"unknown"` pour les extensions de fichier non reconnues.
696 738
697<h4 id="active-time-counter">739<h4 id="active-time-counter">
698 Compteur de temps actif740 Compteur de temps actif
699</h4>741</h4>
700 742
701Suit le temps réel passé à utiliser activement Claude Code, excluant le temps d'inactivité. Cette métrique est incrémentée lors des interactions utilisateur, par exemple la saisie et la lecture des réponses, et lors du traitement CLI, par exemple l'exécution d'outils et la génération de réponses IA.743Suit le temps réel passé à utiliser activement Claude Code, excluant le temps d'inactivité. Cette métrique est incrémentée lors des interactions utilisateur, telles que la saisie et la lecture des réponses, et lors du traitement CLI, tel que l'exécution d'outils et la génération de réponses IA.
702 744
703**Attributs** :745**Attributs** :
704 746
709 Événements751 Événements
710</h3>752</h3>
711 753
712Claude Code exporte les événements suivants via les journaux/événements OpenTelemetry (quand `OTEL_LOGS_EXPORTER` est configuré) :754Claude Code exporte les événements suivants via les journaux/événements OpenTelemetry (lorsque `OTEL_LOGS_EXPORTER` est configuré) :
713 755
714<h4 id="event-correlation-attributes">756<h4 id="event-correlation-attributes">
715 Attributs de corrélation d'événements757 Attributs de corrélation d'événements
716</h4>758</h4>
717 759
718Quand un utilisateur soumet une invite, Claude Code peut effectuer plusieurs appels API et exécuter plusieurs outils. L'attribut `prompt.id` vous permet de lier tous ces événements à l'invite unique qui les a déclenchés.760Lorsqu'un utilisateur soumet une invite, Claude Code peut effectuer plusieurs appels API et exécuter plusieurs outils. L'attribut `prompt.id` vous permet de lier tous ces événements à l'invite unique qui les a déclenchés.
719 761
720| Attribut | Description |762| Attribut | Description |
721| - | - |763| - | - |
722| `prompt.id` | Identifiant UUID v4 liant tous les événements produits lors du traitement d'une invite utilisateur unique |764| `prompt.id` | Identifiant UUID v4 reliant tous les événements produits lors du traitement d'une seule invite utilisateur |
723| `event.sequence` | Compteur basé sur 0 pour ordonner les événements, compté par processus Claude Code plutôt que par session |765| `event.sequence` | Compteur basé sur 0 pour ordonner les événements, compté par processus Claude Code plutôt que par session |
724| `message.uuid` | UUID du message tel que persisté dans la transcription de session, les fichiers `~/.claude/projects/*/*.jsonl`. Présent sur `assistant_response`, sur `api_response_body`, et sur `user_prompt` sauf pour les dispatches de commande, qui peuvent produire zéro ou plusieurs messages. Sur `assistant_response` et `api_response_body`, c'est l'entrée de transcription finale de la réponse, à partir de laquelle le `parentUuid` du tour suivant s'enchaîne. Nécessite Claude Code v2.1.214 ou ultérieur, ou v2.1.274 ou ultérieur sur `api_response_body` |766| `message.uuid` | UUID du message tel que persisté dans la transcription de session, les fichiers `~/.claude/projects/*/*.jsonl`. Présent sur `assistant_response`, sur `api_response_body`, et sur `user_prompt` sauf pour les dispatches de commandes, qui peuvent produire zéro ou plusieurs messages. Sur `assistant_response` et `api_response_body`, c'est l'entrée de transcription finale de la réponse, à partir de laquelle le `parentUuid` du tour suivant s'enchaîne. Nécessite Claude Code v2.1.214 ou ultérieur, ou v2.1.274 ou ultérieur sur `api_response_body` |
725| `client_request_id` | UUID généré par le client envoyé comme en-tête de demande `x-client-request-id`. Présent sur `api_request` et `api_error` sur les connexions API de première partie ; absent sur les backends de fournisseurs tiers et quand la demande a été retentée via le secours non-streaming. Associe une demande à sa réponse et reste disponible pour les défaillances telles que les délais d'expiration qui n'ont jamais produit un `request_id` serveur. Correspond au même attribut sur la plage de trace `llm_request`. Nécessite Claude Code v2.1.214 ou ultérieur |767| `request_id` | ID assigné par le serveur de la demande API, lu à partir de l'en-tête de réponse `request-id`, par exemple `req_011...`. Sur une réponse sans en-tête `request-id`, comme sur [Amazon Bedrock](/docs/fr/amazon-bedrock), la valeur provient de l'en-tête `x-amzn-requestid` à la place. Présent sur `api_request`, `api_error`, `api_refusal`, `assistant_response`, et `api_response_body` lorsque la réponse porte l'un ou l'autre en-tête. Correspond au même attribut sur la plage de trace `llm_request`. La source `x-amzn-requestid` nécessite Claude Code v2.1.282 ou ultérieur |
768| `client_request_id` | UUID généré par le client envoyé comme en-tête de demande `x-client-request-id`. Présent sur `api_request` et `api_error` sur les connexions API propriétaires ; absent sur les backends de fournisseurs tiers et lorsque la demande a été retentée via le secours non-streaming. Apparie une demande avec sa réponse et reste disponible pour les défaillances telles que les délais d'expiration qui n'ont jamais produit de `request_id` serveur. Correspond au même attribut sur la plage de trace `llm_request`. Nécessite Claude Code v2.1.214 ou ultérieur |
726 769
727Pour tracer toute l'activité déclenchée par une invite unique, filtrez vos événements par une valeur `prompt.id` spécifique. Cela retourne l'événement user\_prompt, tous les événements api\_request, et tous les événements tool\_result qui se sont produits lors du traitement de cette invite.770Pour tracer toute l'activité déclenchée par une seule invite, filtrez vos événements par une valeur `prompt.id` spécifique. Cela retourne l'événement user\_prompt, tous les événements api\_request, et tous les événements tool\_result qui se sont produits lors du traitement de cette invite.
728 771
729`event.sequence` commence à 0 chaque fois qu'un processus Claude Code démarre et compte jusqu'à la fin de ce processus. Il continue de compter à travers `/clear`, qui assigne un nouveau `session.id`. Si vous [reprenez une session sans la forker](/docs/fr/how-claude-code-works#resume-or-fork-sessions), la session conserve son `session.id` mais prend ses valeurs `event.sequence` du processus qui l'a reprise, donc dans une session un événement ultérieur peut porter une valeur inférieure à celle d'un événement antérieur, ou en répéter une. Pour ordonner les événements d'une session, triez par `event.timestamp` et utilisez `event.sequence` pour ordonner les événements qui partagent un timestamp.772`event.sequence` commence à 0 chaque fois qu'un processus Claude Code démarre et compte jusqu'à la fin de ce processus. Il continue de compter à travers `/clear`, qui assigne un nouveau `session.id`. Si vous [reprenez une session sans la forker](/docs/fr/how-claude-code-works#resume-or-fork-sessions), la session conserve son `session.id` mais prend ses valeurs `event.sequence` du processus qui l'a reprise, donc au sein d'une session un événement ultérieur peut porter une valeur inférieure à celle d'un événement antérieur, ou en répéter une. Pour ordonner les événements d'une session, triez par `event.timestamp` et utilisez `event.sequence` pour ordonner les événements qui partagent un timestamp.
730 773
731Pour la reconstruction au niveau du message, chaque classe d'événement porte une clé qui correspond à un champ dans la transcription de session. Le format d'entrée de transcription est [interne à Claude Code](/docs/fr/sessions#where-transcripts-are-stored) et change entre les versions, donc un pipeline qui se joint sur ces champs peut se casser à chaque version ; traitez les jointures comme spécifiques à la version plutôt que comme un contrat stable :774Pour la reconstruction au niveau du message, chaque classe d'événement porte une clé qui correspond à un champ dans la transcription de session. Le format d'entrée de transcription est [interne à Claude Code](/docs/fr/sessions#where-transcripts-are-stored) et change entre les versions, donc un pipeline qui se joint sur ces champs peut se casser à chaque version ; traitez les jointures comme spécifiques à la version plutôt que comme un contrat stable :
732 775
738 Événement d'invite utilisateur781 Événement d'invite utilisateur
739</h4>782</h4>
740 783
741Enregistré quand un utilisateur soumet une invite.784Enregistré lorsqu'un utilisateur soumet une invite.
742 785
743**Nom de l'événement** : `claude_code.user_prompt`786**Nom de l'événement** : `claude_code.user_prompt`
744 787
750* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)793* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
751* `prompt_length` : Longueur de l'invite794* `prompt_length` : Longueur de l'invite
752* `prompt` : Contenu de l'invite. Rédacté par défaut. Définissez `OTEL_LOG_USER_PROMPTS=1` pour l'inclure795* `prompt` : Contenu de l'invite. Rédacté par défaut. Définissez `OTEL_LOG_USER_PROMPTS=1` pour l'inclure
753* `message.uuid` : UUID du message utilisateur résultant, correspondant à l'entrée de transcription persistée. Absent sur les dispatches de commande, qui peuvent produire zéro ou plusieurs messages. Nécessite Claude Code v2.1.214 ou ultérieur796* `message.uuid` : UUID du message utilisateur résultant, correspondant à l'entrée de transcription persistée. Absent sur les dispatches de commandes, qui peuvent produire zéro ou plusieurs messages. Nécessite Claude Code v2.1.214 ou ultérieur
754* `command_name` : Nom de la commande quand l'invite en invoque une. Les noms de commande intégrés et groupés tels que `compact` ou `debug` sont émis tels quels ; les alias tels que `reset` émettent tels que tapés plutôt que le nom canonique. Les noms de commande personnalisés, de plugins et MCP s'effondrent en `custom` ou `mcp` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini797* `command_name` : Nom de la commande lorsque l'invite en invoque une. Les noms de commandes intégrés et groupés tels que `compact` ou `debug` sont émis tels quels ; les alias tels que `reset` émettent tels que tapés plutôt que le nom canonique. Les noms de commandes personnalisés, de plugins et MCP s'effondrent à `custom` ou `mcp` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini
755* `command_source` : Origine de la commande quand présente : `builtin`, `custom`, ou `mcp`. Les commandes fournies par les plugins signalent comme `custom`798* `command_source` : Origine de la commande lorsqu'elle est présente : `builtin`, `custom`, ou `mcp`. Les commandes fournies par les plugins signalent comme `custom`
756 799
757<h4 id="assistant-response-event">800<h4 id="assistant-response-event">
758 Événement de réponse d'assistant801 Événement de réponse d'assistant
769* `event.timestamp` : Timestamp ISO 8601812* `event.timestamp` : Timestamp ISO 8601
770* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)813* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
771* `response_length` : Longueur du texte de réponse en caractères814* `response_length` : Longueur du texte de réponse en caractères
772* `response` : Texte de réponse, tronqué à la limite de contenu (60 Ko par défaut). Rédacté à `<REDACTED>` par défaut. Définissez `OTEL_LOG_ASSISTANT_RESPONSES=1` pour l'inclure. Quand `OTEL_LOG_ASSISTANT_RESPONSES` n'est pas défini, `OTEL_LOG_USER_PROMPTS` le contrôle à la place, donc définissez `OTEL_LOG_ASSISTANT_RESPONSES=0` pour garder les réponses rédactées tandis que la journalisation des invites est activée815* `response` : Texte de réponse, tronqué à la limite de contenu (60 KB par défaut). Rédacté à `<REDACTED>` par défaut. Définissez `OTEL_LOG_ASSISTANT_RESPONSES=1` pour l'inclure. Lorsque `OTEL_LOG_ASSISTANT_RESPONSES` n'est pas défini, `OTEL_LOG_USER_PROMPTS` le contrôle à la place, donc définissez `OTEL_LOG_ASSISTANT_RESPONSES=0` pour garder les réponses rédactées tandis que la journalisation des invites est activée
773* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)816* `model` : Identifiant du modèle (par exemple, « claude-sonnet-5 »)
774* `request_id` : ID de demande API Anthropic de l'en-tête `request-id` de la réponse. Présent uniquement quand l'API en retourne un817* `request_id` : ID de demande API, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
775* `message.uuid` : UUID de l'entrée de transcription finale de la réponse. Une réponse API est persistée comme une entrée de transcription par bloc de contenu ; c'est la dernière, à partir de laquelle le `parentUuid` du tour suivant s'enchaîne. Nécessite Claude Code v2.1.214 ou ultérieur818* `message.uuid` : UUID de l'entrée de transcription finale de la réponse. Une réponse API est persistée comme une entrée de transcription par bloc de contenu ; c'est la dernière, à partir de laquelle le `parentUuid` du tour suivant s'enchaîne. Nécessite Claude Code v2.1.214 ou ultérieur
776* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent819* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent
777 820
779 Événement de résultat d'outil822 Événement de résultat d'outil
780</h4>823</h4>
781 824
782Enregistré quand un outil termine son exécution. Non émis si l'appel d'outil a été rejeté ; voir l'[événement de décision d'outil](#tool-decision-event) pour les rejets.825Enregistré lorsqu'un outil termine son exécution. Non émis si l'appel d'outil a été rejeté ; voir l'[événement de décision d'outil](#tool-decision-event) pour les rejets.
783 826
784**Nom de l'événement** : `claude_code.tool_result`827**Nom de l'événement** : `claude_code.tool_result`
785 828
793* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.836* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.
794* `success` : `"true"` ou `"false"`837* `success` : `"true"` ou `"false"`
795* `duration_ms` : Temps d'exécution en millisecondes838* `duration_ms` : Temps d'exécution en millisecondes
796* `error_type` : Chaîne de catégorie d'erreur quand l'outil a échoué, par exemple `"Error:ENOENT"` ou `"ShellError"`839* `error_type` : Chaîne de catégorie d'erreur lorsque l'outil a échoué, par exemple `"Error:ENOENT"` ou `"ShellError"`
797* `error` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet quand l'outil a échoué840* `error` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet lorsque l'outil a échoué
798* `decision_type` : Toujours `"accept"`, puisque cet événement n'est émis qu'après l'exécution de l'outil. Les appels rejetés ne produisent pas de résultat d'outil841* `decision_type` : Toujours `"accept"`, puisque cet événement n'est émis qu'après l'exécution de l'outil. Les appels rejetés ne produisent pas de résultat d'outil
799* `decision_source` : D'où provient la décision de permission. L'une de `"config"`, `"hook"`, `"user_permanent"`, ou `"user_temporary"`. Voir l'[événement de décision d'outil](#tool-decision-event) pour ce que chaque valeur signifie. Les sources réservées au rejet `"user_abort"` et `"user_reject"` n'apparaissent jamais sur cet événement.842* `decision_source` : D'où provient la décision de permission. L'une de `"config"`, `"hook"`, `"user_permanent"`, ou `"user_temporary"`. Voir l'[événement de décision d'outil](#tool-decision-event) pour ce que signifie chaque valeur. Les sources réservées au rejet `"user_abort"` et `"user_reject"` n'apparaissent jamais sur cet événement.
800* `tool_input_size_bytes` : Taille de l'entrée d'outil sérialisée en JSON en octets843* `tool_input_size_bytes` : Taille de l'entrée d'outil sérialisée en JSON en octets
801* `tool_result_size_bytes` : Taille du résultat d'outil en octets844* `tool_result_size_bytes` : Taille du résultat d'outil en octets
802* `mcp_server_scope` : Identifiant de portée du serveur MCP (pour les outils MCP)845* `mcp_server_scope` : Identifiant de portée du serveur MCP (pour les outils MCP)
803* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (quand `OTEL_LOG_TOOL_DETAILS=1`) : l'identité du commit d'une exécution `git commit` réussie par l'outil Bash ou PowerShell. `vcs.ref.head.revision` est le SHA du commit, `vcs.ref.head.name` est la branche sur laquelle il a été commité, et `vcs.ref.head.type` est `branch`. Le nom et le type sont omis quand le commit a été effectué sur un HEAD détaché. Nécessite Claude Code v2.1.269 ou ultérieur846* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : l'identité de commit d'une exécution `git commit` réussie par l'outil Bash ou PowerShell. `vcs.ref.head.revision` est le SHA du commit, `vcs.ref.head.name` est la branche sur laquelle il a été commité, et `vcs.ref.head.type` est `branch`. Le nom et le type sont omis lorsque le commit a été effectué sur un HEAD détaché. Nécessite Claude Code v2.1.269 ou ultérieur
804* `tool_parameters` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Chaîne JSON contenant les paramètres spécifiques à l'outil. Pour les serveurs intégrés de Claude Desktop, dans les sessions que Claude Desktop possède, la paire `mcp_server_name`/`mcp_tool_name` est incluse même avec le drapeau désactivé, la même exception créée par l'hôte que l'[événement de décision d'outil](#tool-decision-event), nécessitant Claude Code v2.1.214 ou ultérieur. Les paramètres varient selon l'outil :847* `tool_parameters` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Chaîne JSON contenant les paramètres spécifiques à l'outil. Pour les serveurs intégrés du Claude Desktop, dans les sessions que Claude Desktop possède, la paire `mcp_server_name`/`mcp_tool_name` est incluse même avec le drapeau désactivé, la même exception créée par l'hôte que l'[événement de décision d'outil](#tool-decision-event), nécessitant Claude Code v2.1.214 ou ultérieur. Les paramètres varient selon l'outil :
805 * Pour l'outil Bash : inclut `bash_command`, `full_command`, `timeout`, `description`, et `dangerouslyDisableSandbox`, plus `git_commit_id` et `git_branch` quand une commande `git commit` réussit. `git_commit_id` est le SHA du commit complet quand le commit est le HEAD du répertoire de travail de la session, et le SHA abrégé de git sinon. `git_branch` est la branche sur laquelle il a été commité, omis sur un HEAD détaché848 * Pour l'outil Bash : inclut `bash_command`, `full_command`, `timeout`, `description`, et `dangerouslyDisableSandbox`, plus `git_commit_id` et `git_branch` lorsqu'une commande `git commit` réussit. `git_commit_id` est le SHA complet du commit lorsque le commit est le HEAD du répertoire de travail de la session, et le SHA abrégé de git sinon. `git_branch` est la branche sur laquelle il a été commité, omis sur un HEAD détaché
806 * Pour l'outil Bash d'espace de travail de l'application de bureau, qui signale également `tool_name` comme `Bash` : inclut uniquement `bash_command`, `full_command`, et `timeout`849 * Pour l'outil Bash d'espace de travail de l'application de bureau, qui signale également `tool_name` comme `Bash` : inclut uniquement `bash_command`, `full_command`, et `timeout`
807 * Pour les outils MCP : inclut `mcp_server_name`, `mcp_tool_name`850 * Pour les outils MCP : inclut `mcp_server_name`, `mcp_tool_name`
808 * Pour l'outil Skill : inclut `skill_name`851 * Pour l'outil Skill : inclut `skill_name`
809 * Pour l'outil Agent ou l'outil Task hérité : inclut `subagent_type`852 * Pour l'outil Agent ou l'outil Task hérité : inclut `subagent_type`
810* `tool_input` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Arguments d'outil sérialisés en JSON. Les valeurs individuelles sur 512 caractères sont tronquées, et la charge utile complète est bornée à environ 4 K caractères. S'applique à tous les outils, y compris les outils MCP.853* `tool_input` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Arguments d'outil sérialisés en JSON. Les valeurs individuelles supérieures à 512 caractères sont tronquées, et la charge utile complète est limitée à environ 4 K caractères. S'applique à tous les outils, y compris les outils MCP.
811 854
812<h4 id="api-request-event">855<h4 id="api-request-event">
813 Événement de demande API856 Événement de demande API
825* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)868* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
826* `model` : Modèle utilisé (par exemple, « claude-sonnet-5 »)869* `model` : Modèle utilisé (par exemple, « claude-sonnet-5 »)
827* `cost_usd` : Coût estimé en USD870* `cost_usd` : Coût estimé en USD
828* `cost_usd_micros` : Coût estimé en millionièmes de dollar américain, émis comme un entier871* `cost_usd_micros` : Coût estimé en millionièmes de dollar américain, émis sous forme d'entier
829* `duration_ms` : Durée de la demande en millisecondes872* `duration_ms` : Durée de la demande en millisecondes
830* `input_tokens` : Nombre de jetons d'entrée873* `input_tokens` : Nombre de jetons d'entrée
831* `output_tokens` : Nombre de jetons de sortie874* `output_tokens` : Nombre de jetons de sortie
832* `cache_read_tokens` : Nombre de jetons lus du cache875* `cache_read_tokens` : Nombre de jetons lus du cache
833* `cache_creation_tokens` : Nombre de jetons utilisés pour la création du cache876* `cache_creation_tokens` : Nombre de jetons utilisés pour la création du cache
834* `request_id` : ID de demande API Anthropic de l'en-tête `request-id` de la réponse, par exemple `"req_011..."`. Présent uniquement quand l'API en retourne un.877* `request_id` : ID de demande API, par exemple `"req_011..."`, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes).
835* `client_request_id` : UUID généré par le client envoyé comme en-tête de demande `x-client-request-id` ; voir le tableau [attributs de corrélation d'événements](#event-correlation-attributes) pour quand il est présent. Nécessite Claude Code v2.1.214 ou ultérieur878* `client_request_id` : UUID généré par le client envoyé comme en-tête de demande `x-client-request-id` ; voir le tableau [attributs de corrélation d'événements](#event-correlation-attributes) pour savoir quand il est présent. Nécessite Claude Code v2.1.214 ou ultérieur
836* `speed` : `"fast"` ou `"normal"`, indiquant si le mode rapide était actif879* `speed` : `"fast"` ou `"normal"`, indiquant si le mode rapide était actif
837* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent880* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent
838* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent quand Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.881* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent lorsque Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.
839* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coût](#cost-counter) pour les définitions et le comportement de rédaction.882* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de rédaction.
840 883
841<h4 id="api-error-event">884<h4 id="api-error-event">
842 Événement d'erreur API885 Événement d'erreur API
843</h4>886</h4>
844 887
845Enregistré quand une demande API à Claude échoue.888Enregistré lorsqu'une demande API à Claude échoue.
846 889
847**Nom de l'événement** : `claude_code.api_error`890**Nom de l'événement** : `claude_code.api_error`
848 891
854* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)897* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
855* `model` : Modèle utilisé (par exemple, « claude-sonnet-5 »)898* `model` : Modèle utilisé (par exemple, « claude-sonnet-5 »)
856* `error` : Message d'erreur899* `error` : Message d'erreur
857* `status_code` : Code de statut HTTP en tant que nombre. Absent pour les erreurs non-HTTP telles que les défaillances de connexion.900* `status_code` : Code de statut HTTP sous forme de nombre. Absent pour les erreurs non-HTTP telles que les défaillances de connexion.
858* `duration_ms` : Durée de la demande en millisecondes901* `duration_ms` : Durée de la demande en millisecondes
859* `attempt` : Nombre total de tentatives effectuées, y compris la demande initiale (`1` signifie qu'aucune nouvelle tentative ne s'est produite)902* `attempt` : Nombre total de tentatives effectuées, y compris la demande initiale (`1` signifie qu'aucune nouvelle tentative n'a eu lieu)
860* `request_id` : ID de demande API Anthropic de l'en-tête `request-id` de la réponse, par exemple `"req_011..."`. Présent uniquement quand l'API en retourne un.903* `request_id` : ID de demande API, par exemple `"req_011..."`, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes).
861* `client_request_id` : UUID généré par le client envoyé comme en-tête de demande `x-client-request-id`. Disponible même quand une défaillance telle qu'un délai d'expiration ou une erreur de connexion n'a jamais produit un `request_id` serveur ; voir le tableau [attributs de corrélation d'événements](#event-correlation-attributes) pour quand il est présent. Nécessite Claude Code v2.1.214 ou ultérieur904* `client_request_id` : UUID généré par le client envoyé comme en-tête de demande `x-client-request-id`. Disponible même lorsqu'une défaillance telle qu'un délai d'expiration ou une erreur de connexion n'a jamais produit de `request_id` serveur ; voir le tableau [attributs de corrélation d'événements](#event-correlation-attributes) pour savoir quand il est présent. Nécessite Claude Code v2.1.214 ou ultérieur
862* `speed` : `"fast"` ou `"normal"`, indiquant si le mode rapide était actif905* `speed` : `"fast"` ou `"normal"`, indiquant si le mode rapide était actif
863* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent906* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent
864* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Absent quand Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.907* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Absent lorsque Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.
865* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coût](#cost-counter) pour les définitions et le comportement de rédaction.908* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de rédaction.
866 909
867<h4 id="api-refusal-event">910<h4 id="api-refusal-event">
868 Événement de refus API911 Événement de refus API
869</h4>912</h4>
870 913
871Enregistré quand une demande API retourne `stop_reason: "refusal"`. Les refus arrivent sur un flux de réponse réussi plutôt que comme une erreur HTTP, donc l'événement `api_error` ne se déclenche pas pour eux. Cet événement vous permet de suivre la fréquence des refus et de regrouper les refus par les mêmes attributs que `api_request` et `api_error`.914Enregistré lorsqu'une demande API retourne `stop_reason: "refusal"`. Les refus arrivent sur un flux de réponse réussi plutôt que comme une erreur HTTP, donc l'événement `api_error` ne se déclenche pas pour eux. Cet événement vous permet de suivre la fréquence des refus et de regrouper les refus par les mêmes attributs que `api_request` et `api_error`.
872 915
873**Nom de l'événement** : `claude_code.api_refusal`916**Nom de l'événement** : `claude_code.api_refusal`
874 917
879* `event.timestamp` : Timestamp ISO 8601922* `event.timestamp` : Timestamp ISO 8601
880* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)923* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
881* `model` : Identifiant du modèle de la demande924* `model` : Identifiant du modèle de la demande
882* `request_id` : ID de demande API Anthropic de l'en-tête `request-id` de la réponse, par exemple `"req_011..."`. Présent uniquement quand l'API en retourne un.925* `request_id` : ID de demande API, par exemple `"req_011..."`, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes).
883* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent. Voir [`api_request`](#api-request-event) pour les définitions.926* `query_source` : Sous-système qui a émis la demande, par exemple `"repl_main_thread"`, `"compact"`, ou un nom de sous-agent. Voir [`api_request`](#api-request-event) pour les définitions.
884* `speed` : Soit `"fast"` quand le [Mode rapide](/docs/fr/fast-mode) est actif, soit `"normal"`927* `speed` : Soit `"fast"` lorsque le [Mode rapide](/docs/fr/fast-mode) est actif, soit `"normal"`
885* `attempt` : Numéro de tentative de nouvelle tentative. La première tentative est `1`.928* `attempt` : Numéro de tentative de nouvelle tentative. La première tentative est `1`.
886* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Absent quand Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.929* `effort` : [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) appliqué à la demande. Absent lorsque Claude Code n'envoie aucun niveau d'effort, par exemple sur un modèle qui ne supporte pas l'effort.
887* `server_fallback_hop` : `true` quand le secours du modèle côté serveur de l'API a déjà retesté ce refus sur un modèle différent, donc l'utilisateur n'a pas vu ce refus particulier. `false` quand la demande s'est terminée par un refus. Un seul tour peut émettre à la fois un événement `true` hop et un événement `false` final ultérieur quand le modèle de secours refuse également.930* `server_fallback_hop` : `true` lorsque le secours du modèle côté serveur de l'API a déjà retesté ce refus sur un modèle différent, donc l'utilisateur n'a pas vu ce refus particulier. `false` lorsque la demande s'est terminée par un refus. Un seul tour peut émettre à la fois un événement `true` hop et un événement `false` final ultérieur lorsque le modèle de secours refuse également.
888* `has_category` : `true` quand la réponse API portait une `stop_details.category` de `"cyber"`, `"bio"`, `"frontier_llm"`, ou `"reasoning_extraction"`. `false` quand la réponse ne portait aucune catégorie ou une valeur en dehors de cet ensemble. Absent quand `server_fallback_hop` est `true`, car les blocs hop ne portent pas `stop_details`.931* `has_category` : `true` lorsque la réponse API portait une `stop_details.category` de `"cyber"`, `"bio"`, `"frontier_llm"`, ou `"reasoning_extraction"`. `false` lorsque la réponse ne portait aucune catégorie ou une valeur en dehors de cet ensemble. Absent lorsque `server_fallback_hop` est `true`, car les blocs hop ne portent pas `stop_details`.
889* `has_explanation` : `true` quand la réponse API portait une `stop_details.explanation`, sinon `false`. Absent quand `server_fallback_hop` est `true`.932* `has_explanation` : `true` lorsque la réponse API portait une `stop_details.explanation`, sinon `false`. Absent lorsque `server_fallback_hop` est `true`.
890* `category` : La valeur `stop_details.category` de la réponse API. L'une de `"cyber"`, `"bio"`, `"frontier_llm"`, ou `"reasoning_extraction"`. Présent uniquement quand `OTEL_LOG_TOOL_DETAILS=1` est défini et `has_category` est `true`.933* `category` : La valeur `stop_details.category` de la réponse API. L'une de `"cyber"`, `"bio"`, `"frontier_llm"`, ou `"reasoning_extraction"`. Présent uniquement lorsque `OTEL_LOG_TOOL_DETAILS=1` est défini et `has_category` est `true`.
891* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coût](#cost-counter) pour les définitions et le comportement de rédaction.934* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de rédaction.
892 935
893<h4 id="api-request-body-event">936<h4 id="api-request-body-event">
894 Événement de corps de demande API937 Événement de corps de demande API
895</h4>938</h4>
896 939
897Enregistré pour chaque tentative de demande API quand `OTEL_LOG_RAW_API_BODIES` est défini. Un événement est émis par tentative, donc les nouvelles tentatives avec des paramètres ajustés produisent chacune leur propre événement.940Enregistré pour chaque tentative de demande API lorsque `OTEL_LOG_RAW_API_BODIES` est défini. Un événement est émis par tentative, donc les nouvelles tentatives avec des paramètres ajustés produisent chacune leur propre événement.
898 941
899**Nom de l'événement** : `claude_code.api_request_body`942**Nom de l'événement** : `claude_code.api_request_body`
900 943
904* `event.name` : `"api_request_body"`947* `event.name` : `"api_request_body"`
905* `event.timestamp` : Timestamp ISO 8601948* `event.timestamp` : Timestamp ISO 8601
906* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)949* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
907* `body` : Paramètres de demande API Messages sérialisés en JSON, par exemple l'invite système, les messages et les outils, tronqués à la limite de contenu (60 Ko par défaut). Le contenu de réflexion étendue dans les tours d'assistant antérieurs est rédacté. Émis uniquement en mode en ligne (`OTEL_LOG_RAW_API_BODIES=1`).950* `body` : Paramètres de demande API Messages sérialisés en JSON, tels que l'invite système, les messages et les outils, tronqués à la limite de contenu (60 KB par défaut). Le contenu de réflexion étendue dans les tours d'assistant antérieurs est rédacté. Émis uniquement en mode en ligne (`OTEL_LOG_RAW_API_BODIES=1`).
908* `body_ref` : Chemin absolu vers un fichier `<dir>/<uuid>.request.json` contenant le corps non tronqué. Émis uniquement en mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).951* `body_ref` : Chemin absolu vers un fichier `<dir>/<uuid>.request.json` contenant le corps non tronqué. Émis uniquement en mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).
909* `body_length` : Longueur du corps non tronqué. Octets UTF-8 quand `OTEL_LOG_RAW_API_BODIES=file:<dir>`, ou unités de code UTF-16 quand `=1`952* `body_length` : Longueur du corps non tronqué. Octets UTF-8 lorsque `OTEL_LOG_RAW_API_BODIES=file:<dir>`, ou unités de code UTF-16 lorsque `=1`
910* `body_truncated` : `"true"` quand la troncature en ligne s'est produite. Absent en mode fichier et quand aucune troncature ne s'est produite.953* `body_truncated` : `"true"` lorsque la troncature en ligne s'est produite. Absent en mode fichier et lorsqu'aucune troncature ne s'est produite.
911* `model` : Identifiant du modèle à partir des paramètres de demande954* `model` : Identifiant du modèle à partir des paramètres de demande
912* `query_source` : Sous-système qui a émis la demande (par exemple, `"compact"`)955* `query_source` : Sous-système qui a émis la demande (par exemple, `"compact"`)
913* `request_body_id` : UUID qui identifie le corps de demande de cette tentative. L'[événement `api_response_body`](#api-response-body-event) pour la tentative qui réussit porte la même valeur, donc vous pouvez associer une réponse à la demande exacte qui l'a produite. Nécessite Claude Code v2.1.274 ou ultérieur956* `request_body_id` : UUID qui identifie le corps de demande de cette tentative. L'[événement `api_response_body`](#api-response-body-event) pour la tentative qui réussit porte la même valeur, afin que vous puissiez appairer une réponse avec la demande exacte qui l'a produite. Nécessite Claude Code v2.1.274 ou ultérieur
914 957
915<h4 id="api-response-body-event">958<h4 id="api-response-body-event">
916 Événement de corps de réponse API959 Événement de corps de réponse API
917</h4>960</h4>
918 961
919Enregistré pour chaque réponse API réussie quand `OTEL_LOG_RAW_API_BODIES` est défini.962Enregistré pour chaque réponse API réussie lorsque `OTEL_LOG_RAW_API_BODIES` est défini.
920 963
921En mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code ajoute également une ligne JSON à `<dir>/index.jsonl` pour chaque réponse réussie, avec les champs `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, et `response_file`. Lisez-le pour trouver les fichiers de demande et de réponse derrière un message de transcription donné sans interroger votre backend de télémétrie. Le fichier d'index nécessite Claude Code v2.1.274 ou ultérieur.964En mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code ajoute également une ligne JSON à `<dir>/index.jsonl` pour chaque réponse réussie, avec les champs `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, et `response_file`. Lisez-le pour trouver les fichiers de demande et de réponse derrière un message de transcription donné sans interroger votre backend de télémétrie. Le fichier d'index nécessite Claude Code v2.1.274 ou ultérieur.
922 965
928* `event.name` : `"api_response_body"`971* `event.name` : `"api_response_body"`
929* `event.timestamp` : Timestamp ISO 8601972* `event.timestamp` : Timestamp ISO 8601
930* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)973* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
931* `body` : Réponse API Messages sérialisée en JSON, y compris l'id, les blocs de contenu, l'utilisation et la raison d'arrêt, tronquée à la limite de contenu (60 Ko par défaut). Le contenu de réflexion étendue est rédacté. Émis uniquement en mode en ligne (`OTEL_LOG_RAW_API_BODIES=1`).974* `body` : Réponse API Messages sérialisée en JSON, y compris l'id, les blocs de contenu, l'utilisation et la raison d'arrêt, tronquée à la limite de contenu (60 KB par défaut). Le contenu de réflexion étendue est rédacté. Émis uniquement en mode en ligne (`OTEL_LOG_RAW_API_BODIES=1`).
932* `body_ref` : Chemin absolu vers un fichier `<dir>/<request_id>.response.json` contenant le corps non tronqué. Émis uniquement en mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).975* `body_ref` : Chemin absolu vers un fichier `<dir>/<request_id>.response.json` contenant le corps non tronqué. Émis uniquement en mode fichier (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).
933* `body_length` : Longueur du corps non tronqué. Octets UTF-8 quand `OTEL_LOG_RAW_API_BODIES=file:<dir>`, ou unités de code UTF-16 quand `=1`976* `body_length` : Longueur du corps non tronqué. Octets UTF-8 lorsque `OTEL_LOG_RAW_API_BODIES=file:<dir>`, ou unités de code UTF-16 lorsque `=1`
934* `body_truncated` : `"true"` quand la troncature en ligne s'est produite. Absent en mode fichier et quand aucune troncature ne s'est produite.977* `body_truncated` : `"true"` lorsque la troncature en ligne s'est produite. Absent en mode fichier et lorsqu'aucune troncature ne s'est produite.
935* `model` : Identifiant du modèle978* `model` : Identifiant du modèle
936* `query_source` : Sous-système qui a émis la demande979* `query_source` : Sous-système qui a émis la demande
937* `request_id` : ID de demande API Anthropic de l'en-tête `request-id` de la réponse, par exemple `"req_011..."`. Présent uniquement quand l'API en retourne un.980* `request_id` : ID de demande API, par exemple `"req_011..."`, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes).
938* `request_body_id` : Le `request_body_id` de l'[événement `api_request_body`](#api-request-body-event) auquel cette réponse répond. Nécessite Claude Code v2.1.274 ou ultérieur981* `request_body_id` : Le `request_body_id` de l'[événement `api_request_body`](#api-request-body-event) auquel cette réponse répond. Nécessite Claude Code v2.1.274 ou ultérieur
939* `message.id` : ID de message que l'API a assigné à la réponse, le champ `id` du corps de réponse. Nécessite Claude Code v2.1.274 ou ultérieur982* `message.id` : ID de message que l'API a assigné à la réponse, le champ `id` du corps de réponse. Nécessite Claude Code v2.1.274 ou ultérieur
940* `message.uuid` : UUID de l'entrée de transcription finale de la réponse. Avec `request_body_id`, il lie un message de transcription aux corps de demande et de réponse derrière lui. Nécessite Claude Code v2.1.274 ou ultérieur983* `message.uuid` : UUID de l'entrée de transcription finale de la réponse. Avec `request_body_id`, il lie un message de transcription aux corps de demande et de réponse derrière lui. Nécessite Claude Code v2.1.274 ou ultérieur
943 Événement de décision d'outil986 Événement de décision d'outil
944</h4>987</h4>
945 988
946Enregistré quand une décision de permission d'outil est prise (accepter/rejeter).989Enregistré lorsqu'une décision de permission d'outil est prise (accepter/rejeter).
947 990
948**Nom de l'événement** : `claude_code.tool_decision`991**Nom de l'événement** : `claude_code.tool_decision`
949 992
956* `tool_name` : Nom de l'outil (par exemple, « Read », « Edit », « Write », « NotebookEdit »)999* `tool_name` : Nom de l'outil (par exemple, « Read », « Edit », « Write », « NotebookEdit »)
957* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.1000* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.
958* `decision` : Soit `"accept"` soit `"reject"`1001* `decision` : Soit `"accept"` soit `"reject"`
959* `tool_source` : Toujours présent. La provenance de l'outil, comme un ensemble fermé de valeurs créées par l'interface de ligne de commande. Nécessite Claude Code v2.1.214 ou ultérieur1002* `tool_source` : Toujours présent. La provenance de l'outil, comme un ensemble fermé de valeurs créées par la CLI. Nécessite Claude Code v2.1.214 ou ultérieur
960 * `"builtin"` : les outils de l'interface de ligne de commande elle-même1003 * `"builtin"` : les outils propres de la CLI
961 * `"mcp"` : serveurs MCP en général1004 * `"mcp"` : serveurs MCP en général
962 * `"sdk_host_builtin_mcp"` : un serveur en processus intégré à Claude Desktop lui-même, dans une session que Claude Desktop possède. Claude Desktop possède une session qu'il a démarrée à partir de l'un de ses propres points d'entrée, `claude-desktop`, `claude-desktop-3p`, ou `local-agent`, quand cette session n'est pas un enfant imbriqué ; les sessions imbriquées, y compris les sessions que Claude Code lui-même génère, signalent ces serveurs comme `"mcp"`1005 * `"sdk_host_builtin_mcp"` : un serveur en processus intégré à Claude Desktop lui-même, dans une session que Claude Desktop possède. Claude Desktop possède une session qu'il a lancée à partir de l'un de ses propres points d'entrée, `claude-desktop`, `claude-desktop-3p`, ou `local-agent`, lorsque cette session n'est pas un enfant imbriqué ; les sessions imbriquées, y compris les sessions que Claude Code lui-même génère, signalent ces serveurs comme `"mcp"`
963* `source` : D'où provient la décision :1006* `source` : D'où provient la décision :
964 * `"config"` : Décidé automatiquement sans invite, basé sur les paramètres du projet, les règles d'autorisation ou de refus dans les paramètres personnels de l'utilisateur, la politique gérée par l'entreprise, les drapeaux `--allowedTools` ou `--disallowedTools`, le mode de permission actif, une subvention à portée de session d'une invite antérieure dans la même session CLI interactive, ou parce que l'outil est intrinsèquement sûr. L'événement n'indique pas laquelle de ces sources a correspondu. Claude Code signale également `"config"` quand la demande d'invite de permission elle-même échoue, par exemple quand le rappel [`canUseTool`](/docs/fr/agent-sdk/typescript#canusetool) du SDK Agent ou l'outil [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) retourne un résultat invalide, ou quand le flux d'entrée se ferme tandis que la demande est en attente. Avant v2.1.216, Claude Code signalait ces défaillances comme `"user_reject"`.1007 * `"config"` : Décidé automatiquement sans invite, basé sur les paramètres du projet, les règles d'autorisation ou de refus dans les paramètres personnels de l'utilisateur, la politique gérée par l'entreprise, les drapeaux `--allowedTools` ou `--disallowedTools`, le mode de permission actif, une subvention à portée de session d'une invite antérieure dans la même session CLI interactive, ou parce que l'outil est intrinsèquement sûr. L'événement n'indique pas laquelle de ces sources a correspondu. Claude Code signale également `"config"` lorsque la demande d'invite de permission elle-même échoue, par exemple lorsque le rappel [`canUseTool`](/docs/fr/agent-sdk/typescript#canusetool) du SDK Agent ou l'outil [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) retourne un résultat invalide, ou lorsque le flux d'entrée se ferme pendant que la demande est en attente. Avant v2.1.216, Claude Code signalait ces défaillances comme `"user_reject"`.
965 * `"hook"` : Un hook `PreToolUse` ou `PermissionRequest` a retourné la décision.1008 * `"hook"` : Un hook `PreToolUse` ou `PermissionRequest` a retourné la décision.
966 * `"user_permanent"` : Émis quand l'utilisateur a choisi « Oui, et ne me demande plus pour ... » à une invite de permission, ce qui enregistre une règle d'autorisation dans ses paramètres personnels. Dans l'interface de ligne de commande interactive, ceci n'est émis que pour ce choix lui-même ; les appels ultérieurs qui correspondent à la règle enregistrée émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, à la fois le choix initial et les correspondances de règles ultérieures émettent `"user_permanent"`. Traité comme une acceptation.1009 * `"user_permanent"` : Émis lorsque l'utilisateur a choisi « Oui, et ne me demande plus pour ... » à une invite de permission, ce qui enregistre une règle d'autorisation dans ses paramètres personnels. Dans la CLI interactive, ceci n'est émis que pour ce choix lui-même ; les appels ultérieurs qui correspondent à la règle enregistrée émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, à la fois le choix initial et les correspondances de règles ultérieures émettent `"user_permanent"`. Traité comme une acceptation.
967 * `"user_temporary"` : Émis quand l'utilisateur a choisi « Oui » à une invite de permission pour une approbation unique, ou a choisi une option qui accorde l'accès pour le reste de la session sur une invite d'édition ou de lecture de fichier. Dans l'interface de ligne de commande interactive, ceci n'est émis que pour le choix lui-même ; les appels ultérieurs autorisés par cette subvention à portée de session émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, à la fois le choix et les correspondances ultérieures émettent `"user_temporary"`. Traité comme une acceptation.1010 * `"user_temporary"` : Émis lorsque l'utilisateur a choisi « Oui » à une invite de permission pour une approbation unique, ou a choisi une option qui accorde l'accès pour le reste de la session sur une invite d'édition ou de lecture de fichier. Dans la CLI interactive, ceci n'est émis que pour le choix lui-même ; les appels ultérieurs autorisés par cette subvention à portée de session émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, à la fois le choix et les correspondances ultérieures émettent `"user_temporary"`. Traité comme une acceptation.
968 * `"user_abort"` : Émis quand l'utilisateur a fermé l'invite de permission sans répondre. Dans les sessions SDK Agent et non-interactive `-p`, ceci inclut l'interruption du tour tandis qu'une demande de permission `canUseTool` ou `--permission-prompt-tool` est en attente ; avant v2.1.216, Claude Code signalait cette interruption comme `"user_reject"`. Traité comme un rejet.1011 * `"user_abort"` : Émis lorsque l'utilisateur a fermé l'invite de permission sans répondre. Dans les sessions SDK Agent et non-interactive `-p`, cela inclut l'interruption du tour pendant qu'une demande de permission `canUseTool` ou `--permission-prompt-tool` est en attente ; avant v2.1.216, Claude Code signalait cette interruption comme `"user_reject"`. Traité comme un rejet.
969 * `"user_reject"` : Émis quand l'utilisateur a choisi « Non » quand invité. Dans l'interface de ligne de commande interactive, ceci n'est émis que pour ce choix lui-même ; les appels qui correspondent à une règle de refus dans les paramètres personnels de l'utilisateur émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, les appels qui correspondent à une règle de refus dans les paramètres personnels émettent `"user_reject"`. Traité comme un rejet.1012 * `"user_reject"` : Émis lorsque l'utilisateur a choisi « Non » lorsqu'on lui a demandé. Dans la CLI interactive, ceci n'est émis que pour ce choix lui-même ; les appels qui correspondent à une règle de refus dans les paramètres personnels de l'utilisateur émettent `"config"` à la place. Dans les sessions SDK Agent ou non-interactive `-p`, les appels qui correspondent à une règle de refus dans les paramètres personnels émettent `"user_reject"`. Traité comme un rejet.
970* `tool_parameters` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Chaîne JSON contenant les paramètres spécifiques à l'outil. Même forme que l'[événement de résultat d'outil](#tool-result-event), moins les champs post-exécution tels que `git_commit_id`. Les valeurs peuvent différer de `tool_result` pour un appel accepté si la décision de permission réécrit l'entrée d'outil via `updatedInput`. Utilisez cet attribut pour voir quelle commande a été rejetée quand `decision` est `"reject"`.1013* `tool_parameters` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Chaîne JSON contenant les paramètres spécifiques à l'outil. Même forme que l'[événement de résultat d'outil](#tool-result-event), moins les champs post-exécution tels que `git_commit_id`. Les valeurs peuvent différer de `tool_result` pour un appel accepté si la décision de permission réécrit l'entrée d'outil via `updatedInput`. Utilisez cet attribut pour voir quelle commande a été rejetée lorsque `decision` est `"reject"`.
971 * Pour les outils `"sdk_host_builtin_mcp"` : `mcp_server_name` et `mcp_tool_name` sont inclus même quand `OTEL_LOG_TOOL_DETAILS` est désactivé, car l'application hôte définit ces noms ; sans eux, un appel rejeté à l'un de ces serveurs intégrés serait non attribuable sur le flux par défaut. Pour les serveurs MCP configurés par l'utilisateur, le `tool_name` de l'événement est toujours le littéral `"mcp_tool"`, et les noms du serveur et de l'outil n'apparaissent que dans `tool_parameters` avec le drapeau activé ; le contenu des arguments nécessite le drapeau partout. Nécessite Claude Code v2.1.214 ou ultérieur1014 * Pour les outils `"sdk_host_builtin_mcp"` : `mcp_server_name` et `mcp_tool_name` sont inclus même lorsque `OTEL_LOG_TOOL_DETAILS` est désactivé, car l'application hôte définit ces noms ; sans eux, un appel rejeté à l'un de ces serveurs intégrés serait non attribuable sur le flux par défaut. Pour les serveurs MCP configurés par l'utilisateur, le `tool_name` de l'événement est toujours le littéral `"mcp_tool"`, et les noms du serveur et de l'outil apparaissent uniquement dans `tool_parameters` avec le drapeau activé ; le contenu des arguments nécessite le drapeau partout. Nécessite Claude Code v2.1.214 ou ultérieur
972 * Pour l'outil Bash : inclut `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. L'outil bash d'espace de travail de l'application de bureau signale également `tool_name` comme `Bash`, mais inclut uniquement `bash_command`, `full_command`, et `timeout`1015 * Pour l'outil Bash : inclut `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. L'outil bash d'espace de travail de l'application de bureau signale également `tool_name` comme `Bash`, mais inclut uniquement `bash_command`, `full_command`, et `timeout`
973 * Pour les outils MCP : inclut `mcp_server_name`, `mcp_tool_name`1016 * Pour les outils MCP : inclut `mcp_server_name`, `mcp_tool_name`
974 * Pour l'outil Skill : inclut `skill_name`1017 * Pour l'outil Skill : inclut `skill_name`
978 Événement de changement de mode de permission1021 Événement de changement de mode de permission
979</h4>1022</h4>
980 1023
981Enregistré quand le mode de permission change, par exemple à partir du cycle Maj+Tab, de la sortie du mode plan, ou d'une vérification de porte en mode automatique.1024Enregistré lorsque le mode de permission change, par exemple à partir du cyclage `Shift+Tab`, de la sortie du mode plan, ou d'une vérification de porte en mode automatique.
982 1025
983**Nom de l'événement** : `claude_code.permission_mode_changed`1026**Nom de l'événement** : `claude_code.permission_mode_changed`
984 1027
990* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1033* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
991* `from_mode` : Le mode de permission précédent, par exemple `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, ou `"bypassPermissions"`1034* `from_mode` : Le mode de permission précédent, par exemple `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, ou `"bypassPermissions"`
992* `to_mode` : Le nouveau mode de permission1035* `to_mode` : Le nouveau mode de permission
993* `trigger` : Ce qui a causé le changement. L'une de `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, ou `"auto_opt_in"`. Absent quand la transition provient du SDK ou du pont1036* `trigger` : Ce qui a causé le changement. L'une de `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, ou `"auto_opt_in"`. Absent lorsque la transition provient du SDK ou du pont
994 1037
995<h4 id="auth-event">1038<h4 id="auth-event">
996 Événement d'authentification1039 Événement d'authentification
997</h4>1040</h4>
998 1041
999Enregistré quand `/login` ou `/logout` se termine.1042Enregistré lorsque `/login` ou `/logout` se termine.
1000 1043
1001**Nom de l'événement** : `claude_code.auth`1044**Nom de l'événement** : `claude_code.auth`
1002 1045
1009* `action` : `"login"` ou `"logout"`1052* `action` : `"login"` ou `"logout"`
1010* `success` : `"true"` ou `"false"`1053* `success` : `"true"` ou `"false"`
1011* `auth_method` : Méthode d'authentification, par exemple `"oauth"`1054* `auth_method` : Méthode d'authentification, par exemple `"oauth"`
1012* `error_category` : Type d'erreur catégorique quand l'action a échoué. Le message d'erreur brut n'est jamais inclus1055* `error_category` : Type d'erreur catégorique lorsque l'action a échoué. Le message d'erreur brut n'est jamais inclus
1013* `status_code` : Code de statut HTTP en tant que chaîne quand l'action a échoué avec une erreur HTTP1056* `status_code` : Code de statut HTTP sous forme de chaîne lorsque l'action a échoué avec une erreur HTTP
1014 1057
1015<h4 id="mcp-server-connection-event">1058<h4 id="mcp-server-connection-event">
1016 Événement de connexion du serveur MCP1059 Événement de connexion du serveur MCP
1017</h4>1060</h4>
1018 1061
1019Enregistré quand un serveur MCP se connecte, se déconnecte, ou échoue à se connecter.1062Enregistré lorsqu'un serveur MCP se connecte, se déconnecte ou échoue à se connecter.
1020 1063
1021**Nom de l'événement** : `claude_code.mcp_server_connection`1064**Nom de l'événement** : `claude_code.mcp_server_connection`
1022 1065
1030* `transport_type` : Transport du serveur, par exemple `"stdio"`, `"sse"`, ou `"http"`1073* `transport_type` : Transport du serveur, par exemple `"stdio"`, `"sse"`, ou `"http"`
1031* `server_scope` : Portée à laquelle le serveur est configuré, par exemple `"user"`, `"project"`, ou `"local"`1074* `server_scope` : Portée à laquelle le serveur est configuré, par exemple `"user"`, `"project"`, ou `"local"`
1032* `duration_ms` : Durée de la tentative de connexion en millisecondes1075* `duration_ms` : Durée de la tentative de connexion en millisecondes
1033* `error_code` : Code d'erreur quand la connexion a échoué1076* `error_code` : Code d'erreur lorsque la connexion a échoué
1034* `is_plugin` : `true` quand le serveur est fourni par un plugin, `false` sinon1077* `is_plugin` : `true` lorsque le serveur est fourni par un plugin, `false` sinon
1035* `plugin_id_hash` (quand `is_plugin` est `true`) : Hash stable du nom du plugin et de la place de marché, pour regrouper les événements par plugin sans exposer le nom. Claude Code le calcule comme décrit sous l'[événement de plugin chargé](#plugin-loaded-event)1078* `plugin_id_hash` (lorsque `is_plugin` est `true`) : Hash stable du nom du plugin et de la place de marché, pour regrouper les événements par plugin sans exposer le nom. Claude Code le calcule comme décrit sous l'[événement de plugin chargé](#plugin-loaded-event)
1036* `plugin.name` (quand `is_plugin` est `true`) : Nom du plugin qui fournit le serveur. Pour les plugins tiers, c'est la chaîne littérale `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` ; ceci protège les noms de plugins tiers d'apparaître dans les journaux par défaut. Les plugins de sources Anthropic officielles sont toujours identifiés par nom. Les attributs `plugin_id_hash` et `plugin.name` circulent vers votre propre backend de surveillance et ne sont pas envoyés à Anthropic1079* `plugin.name` (lorsque `is_plugin` est `true`) : Nom du plugin qui fournit le serveur. Pour les plugins tiers, c'est la chaîne littérale `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` ; cela protège les noms des plugins tiers d'apparaître dans les journaux par défaut. Les plugins provenant de sources Anthropic officielles sont toujours identifiés par nom. Les attributs `plugin_id_hash` et `plugin.name` circulent vers votre propre backend de surveillance et ne sont pas envoyés à Anthropic
1037* `server_name` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Nom du serveur configuré1080* `server_name` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Nom du serveur configuré
1038* `error` (quand `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet quand la connexion a échoué1081* `error` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet lorsque la connexion a échoué
1039 1082
1040<h4 id="internal-error-event">1083<h4 id="internal-error-event">
1041 Événement d'erreur interne1084 Événement d'erreur interne
1042</h4>1085</h4>
1043 1086
1044Enregistré quand Claude Code capture une erreur interne inattendue. Seul le nom de la classe d'erreur et un code de style errno sont enregistrés. Le message d'erreur et la trace de pile ne sont jamais inclus. Cet événement n'est pas émis lors de l'exécution contre Amazon Bedrock, la plateforme d'agents de Google Cloud, ou Microsoft Foundry, ou quand `DISABLE_ERROR_REPORTING` est défini.1087Enregistré lorsque Claude Code détecte une erreur interne inattendue. Seul le nom de la classe d'erreur et un code de style errno sont enregistrés. Le message d'erreur et la trace de pile ne sont jamais inclus. Cet événement n'est pas émis lors de l'exécution sur Amazon Bedrock, Google Cloud's Agent Platform, ou Microsoft Foundry, ou lorsque `DISABLE_ERROR_REPORTING` est défini.
1045 1088
1046**Nom de l'événement** : `claude_code.internal_error`1089**Nom de l'événement** : `claude_code.internal_error`
1047 1090
1052* `event.timestamp` : Timestamp ISO 86011095* `event.timestamp` : Timestamp ISO 8601
1053* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1096* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1054* `error_name` : Nom de la classe d'erreur, par exemple `"TypeError"` ou `"SyntaxError"`1097* `error_name` : Nom de la classe d'erreur, par exemple `"TypeError"` ou `"SyntaxError"`
1055* `error_code` : Code errno Node.js tel que `"ENOENT"` quand présent sur l'erreur1098* `error_code` : Code errno Node.js tel que `"ENOENT"` lorsqu'il est présent sur l'erreur
1056 1099
1057<h4 id="plugin-installed-event">1100<h4 id="plugin-installed-event">
1058 Événement de plugin installé1101 Événement de plugin installé
1059</h4>1102</h4>
1060 1103
1061Enregistré quand un plugin termine son installation, à partir à la fois de la commande CLI `claude plugin install` et de l'interface utilisateur interactive `/plugin`.1104Enregistré lorsqu'un plugin termine son installation, à partir à la fois de la commande CLI `claude plugin install` et de l'interface utilisateur interactive `/plugin`.
1062 1105
1063**Nom de l'événement** : `claude_code.plugin_installed`1106**Nom de l'événement** : `claude_code.plugin_installed`
1064 1107
1068* `event.name` : `"plugin_installed"`1111* `event.name` : `"plugin_installed"`
1069* `event.timestamp` : Timestamp ISO 86011112* `event.timestamp` : Timestamp ISO 8601
1070* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1113* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1071* `marketplace.is_official` : `"true"` si la place de marché est une place de marché officielle Anthropic, `"false"` sinon1114* `marketplace.is_official` : `"true"` si la place de marché est une place de marché Anthropic officielle, `"false"` sinon
1072* `install.trigger` : `"cli"` ou `"ui"`1115* `install.trigger` : `"cli"` ou `"ui"`
1073* `plugin.name` : Nom du plugin installé. Pour les places de marché tiers, ceci n'est inclus que quand `OTEL_LOG_TOOL_DETAILS=1`1116* `plugin.name` : Nom du plugin installé. Pour les places de marché tiers, ceci n'est inclus que lorsque `OTEL_LOG_TOOL_DETAILS=1`
1074* `plugin.version` : Version du plugin quand déclarée dans l'entrée de la place de marché. Pour les places de marché tiers, ceci n'est inclus que quand `OTEL_LOG_TOOL_DETAILS=1`1117* `plugin.version` : Version du plugin lorsqu'elle est déclarée dans l'entrée de la place de marché. Pour les places de marché tiers, ceci n'est inclus que lorsque `OTEL_LOG_TOOL_DETAILS=1`
1075* `marketplace.name` : Place de marché à partir de laquelle le plugin a été installé. Pour les places de marché tiers, ceci n'est inclus que quand `OTEL_LOG_TOOL_DETAILS=1`1118* `marketplace.name` : Place de marché à partir de laquelle le plugin a été installé. Pour les places de marché tiers, ceci n'est inclus que lorsque `OTEL_LOG_TOOL_DETAILS=1`
1076 1119
1077<h4 id="plugin-loaded-event">1120<h4 id="plugin-loaded-event">
1078 Événement de plugin chargé1121 Événement de plugin chargé
1079</h4>1122</h4>
1080 1123
1081Enregistré une fois par plugin activé au démarrage de la session. Utilisez cet événement pour inventorier quels plugins sont actifs dans votre flotte, en complément de `plugin_installed` qui enregistre l'action d'installation elle-même.1124Enregistré une fois par plugin activé au démarrage de la session. Utilisez cet événement pour inventorier les plugins actifs dans votre flotte, en complément de `plugin_installed` qui enregistre l'action d'installation elle-même.
1082 1125
1083**Nom de l'événement** : `claude_code.plugin_loaded`1126**Nom de l'événement** : `claude_code.plugin_loaded`
1084 1127
1089* `event.timestamp` : Timestamp ISO 86011132* `event.timestamp` : Timestamp ISO 8601
1090* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1133* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1091* `plugin.name` : nom du plugin. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`1134* `plugin.name` : nom du plugin. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`
1092* `marketplace.name` : place de marché à partir de laquelle le plugin a été installé, quand connue. Rédacté à `"third-party"` sous la même condition que `plugin.name`1135* `marketplace.name` : place de marché à partir de laquelle le plugin a été installé, lorsqu'elle est connue. Rédactée à `"third-party"` sous la même condition que `plugin.name`
1093* `plugin.version` : version du manifeste du plugin. Inclus uniquement quand le nom n'est pas rédacté et que le manifeste déclare une version1136* `plugin.version` : version du manifeste du plugin. Inclus uniquement lorsque le nom n'est pas rédacté et que le manifeste déclare une version
1094* `plugin.scope` : catégorie de provenance pour le plugin : `"official"`, `"community"`, `"org"`, `"user-local"`, ou `"default-bundle"`1137* `plugin.scope` : catégorie de provenance du plugin : `"official"`, `"community"`, `"org"`, `"user-local"`, ou `"default-bundle"`
1095* `enabled_via` : comment le plugin en est venu à être activé : `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, ou `"user-install"`. La valeur `"admin-install"` signifie que le plugin est défini comme obligatoire ou auto-installation pour votre organisation dans [**Paramètres de l'organisation > Plugins et compétences**](https://claude.ai/admin-settings/skills?tab=inventory). Avant v2.1.246, Claude Code signalait ces plugins comme `"user-install"` ou `"seed-mount"`1138* `enabled_via` : comment le plugin en est venu à être activé : `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, ou `"user-install"`. La valeur `"admin-install"` signifie que le plugin est défini comme obligatoire ou auto-installation pour votre organisation dans [**Paramètres d'organisation > Plugins et compétences**](https://claude.ai/admin-settings/skills?tab=inventory). Avant v2.1.246, Claude Code signalait ces plugins comme `"user-install"` ou `"seed-mount"`
1096* `plugin_id_hash` : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins tiers distincts chargés dans votre flotte sans enregistrer leurs noms. Pour les [plugins synchronisés à partir de claude.ai](/docs/fr/plugins/loading#synced-plugins), Claude Code hache le nom du plugin avec le nom de la place de marché que claude.ai signale pour le plugin, ou avec `synced` sinon. Avant v2.1.246, Claude Code n'utilisait pas le nom de la place de marché que claude.ai signale dans le hash1139* `plugin_id_hash` : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins tiers distincts chargés dans votre flotte sans enregistrer leurs noms. Pour les [plugins synchronisés à partir de claude.ai](/docs/fr/plugins/loading#synced-plugins), Claude Code hache le nom du plugin avec le nom de la place de marché que claude.ai signale pour le plugin, ou avec `synced` sinon. Avant v2.1.246, Claude Code n'utilisait pas le nom de la place de marché que claude.ai signale dans le hash
1097* `has_hooks` : si le plugin contribue des hooks1140* `has_hooks` : si le plugin contribue des hooks
1098* `has_mcp` : si le plugin contribue des serveurs MCP1141* `has_mcp` : si le plugin contribue des serveurs MCP
1099* `host_owned_mcp` : `true` quand l'hôte SDK gère les connexions MCP de ce plugin et Claude Code a ignoré la lecture de la configuration du serveur MCP du plugin, `false` sinon. Nécessite Claude Code v2.1.172 ou ultérieur1142* `host_owned_mcp` : `true` lorsque l'hôte SDK gère les connexions MCP de ce plugin et Claude Code a ignoré la lecture de la configuration du serveur MCP du plugin, `false` sinon. Nécessite Claude Code v2.1.172 ou ultérieur
1100* `skill_path_count` : nombre de répertoires de compétences que le plugin déclare1143* `skill_path_count` : nombre de répertoires de compétences que le plugin déclare
1101* `command_path_count` : nombre de répertoires de commandes que le plugin déclare1144* `command_path_count` : nombre de répertoires de commandes que le plugin déclare
1102* `agent_path_count` : nombre de répertoires d'agents que le plugin déclare1145* `agent_path_count` : nombre de répertoires d'agents que le plugin déclare
1103* `safe_mode` : `"true"` quand la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. En mode sûr, cet événement signale uniquement l'inventaire configuré ; les commandes, compétences, hooks et serveurs MCP du plugin ne se chargent pas. Nécessite Claude Code v2.1.169 ou ultérieur1146* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. En mode sûr, cet événement signale uniquement l'inventaire configuré ; les commandes, compétences, hooks et serveurs MCP du plugin ne se chargent pas. Nécessite Claude Code v2.1.169 ou ultérieur
1104 1147
1105<h4 id="skill-activated-event">1148<h4 id="skill-activated-event">
1106 Événement de compétence activée1149 Événement de compétence activée
1107</h4>1150</h4>
1108 1151
1109Enregistré quand une compétence est invoquée, que Claude l'appelle via l'outil Skill ou que vous l'exécutiez en tant que commande `/`.1152Enregistré lorsqu'une compétence est invoquée, que Claude l'appelle via l'outil Skill ou que vous l'exécutiez en tant que commande `/`.
1110 1153
1111**Nom de l'événement** : `claude_code.skill_activated`1154**Nom de l'événement** : `claude_code.skill_activated`
1112 1155
1119* `skill.name` : Nom de la compétence. Pour les compétences définies par l'utilisateur et les plugins tiers, la valeur est l'espace réservé `"custom_skill"` sauf si `OTEL_LOG_TOOL_DETAILS=1`1162* `skill.name` : Nom de la compétence. Pour les compétences définies par l'utilisateur et les plugins tiers, la valeur est l'espace réservé `"custom_skill"` sauf si `OTEL_LOG_TOOL_DETAILS=1`
1120* `invocation_trigger` : Comment la compétence a été déclenchée (`"user-slash"`, `"claude-proactive"`, ou `"nested-skill"`)1163* `invocation_trigger` : Comment la compétence a été déclenchée (`"user-slash"`, `"claude-proactive"`, ou `"nested-skill"`)
1121* `skill.source` : D'où la compétence a été chargée (par exemple, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)1164* `skill.source` : D'où la compétence a été chargée (par exemple, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)
1122* `skill.kind` : `"workflow"` quand la compétence est une compétence de flux de travail. Absent sinon1165* `skill.kind` : `"workflow"` lorsque la compétence est une compétence de flux de travail. Absent sinon
1123* `plugin.name` (quand `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Nom du plugin propriétaire quand la compétence est fournie par un plugin1166* `plugin.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Nom du plugin propriétaire lorsque la compétence est fournie par un plugin
1124* `marketplace.name` (quand `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Place de marché à partir de laquelle le plugin propriétaire a été installé, quand la compétence est fournie par un plugin1167* `marketplace.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Place de marché à partir de laquelle le plugin propriétaire a été installé, lorsque la compétence est fournie par un plugin
1125 1168
1126<h4 id="at-mention-event">1169<h4 id="at-mention-event">
1127 Événement de mention @1170 Événement de mention @
1128</h4>1171</h4>
1129 1172
1130Enregistré quand Claude Code résout une mention `@` dans une invite. Pas chaque mention n'émet un événement : les chemins de sortie anticipée tels que les refus de permission, les fichiers surdimensionnés, les pièces jointes de référence PDF et les défaillances de listage de répertoires retournent sans journalisation.1173Enregistré lorsque Claude Code résout une mention `@` dans une invite. Pas chaque mention n'émet un événement : les chemins de sortie anticipée tels que les refus de permission, les fichiers surdimensionnés, les pièces jointes de référence PDF et les défaillances de listage de répertoires retournent sans journalisation.
1131 1174
1132**Nom de l'événement** : `claude_code.at_mention`1175**Nom de l'événement** : `claude_code.at_mention`
1133 1176
1141* `success` : Si la mention a été résolue avec succès (`"true"` ou `"false"`)1184* `success` : Si la mention a été résolue avec succès (`"true"` ou `"false"`)
1142 1185
1143<h4 id="api-retries-exhausted-event">1186<h4 id="api-retries-exhausted-event">
1144 Événement de nouvelles tentatives API épuisées1187 Événement de tentatives API épuisées
1145</h4>1188</h4>
1146 1189
1147Enregistré une fois quand une demande API échoue après plus d'une tentative. Émis aux côtés de l'événement `api_error` final.1190Enregistré une fois lorsqu'une demande API échoue après plus d'une tentative. Émis aux côtés de l'événement `api_error` final.
1148 1191
1149**Nom de l'événement** : `claude_code.api_retries_exhausted`1192**Nom de l'événement** : `claude_code.api_retries_exhausted`
1150 1193
1156* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1199* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1157* `model` : Modèle utilisé1200* `model` : Modèle utilisé
1158* `error` : Message d'erreur final1201* `error` : Message d'erreur final
1159* `status_code` : Code de statut HTTP en tant que nombre. Absent pour les erreurs non-HTTP.1202* `status_code` : Code de statut HTTP sous forme de nombre. Absent pour les erreurs non-HTTP.
1160* `total_attempts` : Nombre total de tentatives effectuées1203* `total_attempts` : Nombre total de tentatives effectuées
1161* `total_retry_duration_ms` : Temps mural total à travers toutes les tentatives1204* `total_retry_duration_ms` : Temps mural total sur toutes les tentatives
1162* `speed` : `"fast"` ou `"normal"`1205* `speed` : `"fast"` ou `"normal"`
1163 1206
1164<h4 id="hook-registered-event">1207<h4 id="hook-registered-event">
1165 Événement de hook enregistré1208 Événement de hook enregistré
1166</h4>1209</h4>
1167 1210
1168Enregistré une fois par hook configuré au démarrage de la session. Utilisez cet événement pour inventorier quels hooks sont actifs dans votre flotte, en complément des événements par exécution `hook_execution_start` et `hook_execution_complete`.1211Enregistré une fois par hook configuré au démarrage de la session. Utilisez cet événement pour inventorier les hooks actifs dans votre flotte, en complément des événements par exécution `hook_execution_start` et `hook_execution_complete`.
1169 1212
1170**Nom de l'événement** : `claude_code.hook_registered`1213**Nom de l'événement** : `claude_code.hook_registered`
1171 1214
1178* `hook_event` : type d'événement hook, par exemple `"PreToolUse"` ou `"PostToolUse"`1221* `hook_event` : type d'événement hook, par exemple `"PreToolUse"` ou `"PostToolUse"`
1179* `hook_type` : type d'implémentation du hook : `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, ou `"agent"`1222* `hook_type` : type d'implémentation du hook : `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, ou `"agent"`
1180* `hook_source` : où le hook est défini : `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, ou `"pluginHook"`1223* `hook_source` : où le hook est défini : `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, ou `"pluginHook"`
1181* `safe_mode` : `"true"` quand la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur1224* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur
1182* `hook_matcher` (quand `OTEL_LOG_TOOL_DETAILS=1`) : la chaîne de correspondance de la configuration du hook, quand une est définie1225* `hook_matcher` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : la chaîne de correspondance de la configuration du hook, lorsqu'une est définie
1183* `plugin.name` (quand `hook_source` est `"pluginHook"`) : nom du plugin contributeur. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`1226* `plugin.name` (lorsque `hook_source` est `"pluginHook"`) : nom du plugin contributeur. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`
1184* `plugin_id_hash` (quand `hook_source` est `"pluginHook"`) : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins contributeurs distincts sans enregistrer leurs noms. Claude Code le calcule comme décrit sous l'[événement de plugin chargé](#plugin-loaded-event)1227* `plugin_id_hash` (lorsque `hook_source` est `"pluginHook"`) : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins contributeurs distincts sans enregistrer leurs noms. Claude Code le calcule comme décrit sous l'[événement de plugin chargé](#plugin-loaded-event)
1185 1228
1186<h4 id="hook-execution-start-event">1229<h4 id="hook-execution-start-event">
1187 Événement de début d'exécution de hook1230 Événement de début d'exécution de hook
1188</h4>1231</h4>
1189 1232
1190Enregistré quand un ou plusieurs hooks commencent à s'exécuter pour un événement hook.1233Enregistré lorsqu'un ou plusieurs hooks commencent à s'exécuter pour un événement hook.
1191 1234
1192**Nom de l'événement** : `claude_code.hook_execution_start`1235**Nom de l'événement** : `claude_code.hook_execution_start`
1193 1236
1198* `event.timestamp` : Timestamp ISO 86011241* `event.timestamp` : Timestamp ISO 8601
1199* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1242* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1200* `hook_event` : Type d'événement hook, par exemple `"PreToolUse"` ou `"PostToolUse"`1243* `hook_event` : Type d'événement hook, par exemple `"PreToolUse"` ou `"PostToolUse"`
1201* `hook_name` : Nom complet du hook incluant la correspondance, par exemple `"PreToolUse:Write"`1244* `hook_name` : Nom complet du hook incluant le correspondant, par exemple `"PreToolUse:Write"`
1202* `num_hooks` : Nombre de commandes hook correspondantes1245* `num_hooks` : Nombre de commandes hook correspondantes
1203* `managed_only` : `"true"` quand seuls les hooks de politique gérée sont autorisés1246* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés
1204* `hook_source` : `"policySettings"` ou `"merged"`1247* `hook_source` : `"policySettings"` ou `"merged"`
1205* `safe_mode` : `"true"` quand la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur1248* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur
1206* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement quand le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés1249* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés
1207 1250
1208<h4 id="hook-execution-complete-event">1251<h4 id="hook-execution-complete-event">
1209 Événement de fin d'exécution de hook1252 Événement de fin d'exécution de hook
1210</h4>1253</h4>
1211 1254
1212Enregistré quand tous les hooks pour un événement hook ont terminé.1255Enregistré lorsque tous les hooks pour un événement hook ont terminé.
1213 1256
1214**Nom de l'événement** : `claude_code.hook_execution_complete`1257**Nom de l'événement** : `claude_code.hook_execution_complete`
1215 1258
1220* `event.timestamp` : Timestamp ISO 86011263* `event.timestamp` : Timestamp ISO 8601
1221* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1264* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1222* `hook_event` : Type d'événement hook1265* `hook_event` : Type d'événement hook
1223* `hook_name` : Nom complet du hook incluant la correspondance1266* `hook_name` : Nom complet du hook incluant le correspondant
1224* `num_hooks` : Nombre de commandes hook correspondantes1267* `num_hooks` : Nombre de commandes hook correspondantes
1225* `num_success` : Nombre qui ont terminé avec succès1268* `num_success` : Nombre qui ont réussi
1226* `num_blocking` : Nombre qui ont retourné une décision de blocage1269* `num_blocking` : Nombre qui ont retourné une décision de blocage
1227* `num_non_blocking_error` : Nombre qui ont échoué sans bloquer1270* `num_non_blocking_error` : Nombre qui ont échoué sans bloquer
1228* `num_cancelled` : Nombre annulé avant la fin1271* `num_cancelled` : Nombre annulé avant la fin
1229* `total_duration_ms` : Durée mural de tous les hooks correspondants1272* `total_duration_ms` : Durée mural de tous les hooks correspondants
1230* `stdout_chars` : Nombre total de caractères de stdout à travers les hooks correspondants qui ont réussi. Nécessite Claude Code v2.1.280 ou ultérieur1273* `stdout_chars` : Nombre total de caractères de stdout sur les hooks correspondants qui ont réussi. Nécessite Claude Code v2.1.280 ou ultérieur
1231* `additional_context_chars` : Nombre total de caractères de `additionalContext` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur1274* `additional_context_chars` : Nombre total de caractères de `additionalContext` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur
1232* `system_message_chars` : Nombre total de caractères de `systemMessage` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur1275* `system_message_chars` : Nombre total de caractères de `systemMessage` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur
1233* `initial_user_message_chars` : Nombre total de caractères de `initialUserMessage` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur1276* `initial_user_message_chars` : Nombre total de caractères de `initialUserMessage` retournés par les hooks correspondants. Nécessite Claude Code v2.1.280 ou ultérieur
1234* `num_outputs_persisted` : Nombre de sorties de hook au-delà de la [limite de 10 000 caractères](/docs/fr/hooks#json-output) que Claude Code a enregistrées dans un fichier. Nécessite Claude Code v2.1.280 ou ultérieur1277* `num_outputs_persisted` : Nombre de sorties de hook au-delà de la [limite de 10 000 caractères](/docs/fr/hooks#json-output) que Claude Code a enregistrées dans un fichier. Nécessite Claude Code v2.1.280 ou ultérieur
1235* `managed_only` : `"true"` quand seuls les hooks de politique gérée sont autorisés1278* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés
1236* `hook_source` : `"policySettings"` ou `"merged"`1279* `hook_source` : `"policySettings"` ou `"merged"`
1237* `safe_mode` : `"true"` quand la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur1280* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/docs/fr/cli-reference), `"false"` sinon. Nécessite Claude Code v2.1.169 ou ultérieur
1238* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement quand le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés1281* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés
1239 1282
1240<h4 id="hook-plugin-metrics-event">1283<h4 id="hook-plugin-metrics-event">
1241 Événement de métriques de plugin de hook1284 Événement de métriques de plugin de hook
1242</h4>1285</h4>
1243 1286
1244Enregistré quand un hook de plugin de la place de marché officielle émet des métriques par invocation. Seuls les plugins installés à partir d'une place de marché Anthropic officielle peuvent émettre ceci. Les plugins de place de marché tiers et les hooks configurés par l'utilisateur n'émettent pas vers cet événement. Utilisez cet événement pour surveiller le comportement du plugin, par exemple les taux de découverte, les coûts et les durées à partir de votre propre pile d'observabilité.1287Enregistré lorsqu'un hook de plugin de place de marché officielle émet des métriques par invocation. Seuls les plugins installés à partir d'une place de marché Anthropic officielle peuvent émettre ceci. Les plugins de place de marché tiers et les hooks configurés par l'utilisateur n'émettent pas vers cet événement. Utilisez cet événement pour surveiller le comportement du plugin, par exemple les taux de découverte, les coûts et les durées à partir de votre propre pile d'observabilité.
1245 1288
1246**Nom de l'événement** : `claude_code.hook_plugin_metrics`1289**Nom de l'événement** : `claude_code.hook_plugin_metrics`
1247 1290
1259 Événement de compaction1302 Événement de compaction
1260</h4>1303</h4>
1261 1304
1262Enregistré quand la compaction de conversation se termine.1305Enregistré lorsque la compaction de conversation se termine.
1263 1306
1264**Nom de l'événement** : `claude_code.compaction`1307**Nom de l'événement** : `claude_code.compaction`
1265 1308
1274* `duration_ms` : Durée de compaction1317* `duration_ms` : Durée de compaction
1275* `pre_tokens` : Nombre approximatif de jetons avant compaction1318* `pre_tokens` : Nombre approximatif de jetons avant compaction
1276* `post_tokens` : Nombre approximatif de jetons après compaction1319* `post_tokens` : Nombre approximatif de jetons après compaction
1277* `error` : Message d'erreur quand la compaction a échoué1320* `error` : Message d'erreur lorsque la compaction a échoué
1278* `precompute_reuse` : Défini uniquement quand `trigger` est `"manual"`. La compaction automatique peut préparer un résumé en arrière-plan avant que la fenêtre de contexte se remplisse, et cet attribut enregistre si `/compact` a réutilisé ce résumé préparé. `"hit"` signifie qu'il a été réutilisé ; `"miss_custom_instructions"`, `"miss_hook"`, et `"miss_not_ready"` donnent la raison pour laquelle un résumé frais a été calculé à la place. Nécessite Claude Code v2.1.153 ou ultérieur1321* `precompute_reuse` : Défini uniquement lorsque `trigger` est `"manual"`. La compaction automatique peut préparer un résumé en arrière-plan avant que la fenêtre de contexte ne se remplisse, et cet attribut enregistre si `/compact` a réutilisé ce résumé préparé. `"hit"` signifie qu'il a été réutilisé ; `"miss_custom_instructions"`, `"miss_hook"`, et `"miss_not_ready"` donnent la raison pour laquelle un résumé frais a été calculé à la place. Nécessite Claude Code v2.1.153 ou ultérieur
1279 1322
1280<h4 id="subagent-completed-event">1323<h4 id="subagent-completed-event">
1281 Événement de sous-agent terminé1324 Événement de fin de sous-agent
1282</h4>1325</h4>
1283 1326
1284Enregistré quand un [sous-agent](/docs/fr/sub-agents) se termine et retourne son résultat à la conversation qui l'a démarré. Utilisez-le pour cumuler l'utilisation d'outils et le temps d'exécution par type de sous-agent ; pour les cumuls de jetons ou de coûts, utilisez le [compteur de jetons](#token-counter) et le [compteur de coût](#cost-counter) filtrés sur `query_source` `"subagent"`, puisque le `total_tokens` de cet événement couvre uniquement la demande finale. La catégorie `"subagent"` compte également les demandes des hooks basés sur les agents, qui n'émettent aucun événement de sous-agent.1327Enregistré lorsqu'un [sous-agent](/docs/fr/sub-agents) se termine et retourne son résultat à la conversation qui l'a démarré. Utilisez-le pour regrouper l'utilisation d'outils et le temps d'exécution par type de sous-agent ; pour les regroupements de jetons ou de coûts, utilisez le [compteur de jetons](#token-counter) et le [compteur de coûts](#cost-counter) filtrés sur `query_source` `"subagent"`, puisque le `total_tokens` de cet événement couvre uniquement la demande finale. La catégorie `"subagent"` compte également les demandes des hooks basés sur des agents, qui n'émettent aucun événement de sous-agent.
1285 1328
1286**Nom de l'événement** : `claude_code.subagent_completed`1329**Nom de l'événement** : `claude_code.subagent_completed`
1287 1330
1292* `event.timestamp` : Timestamp ISO 86011335* `event.timestamp` : Timestamp ISO 8601
1293* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1336* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1294* `agent_type` : Le type de sous-agent. Les noms d'agents intégrés et les agents des plugins de la place de marché officielle apparaissent textuellement ; les autres noms d'agents sont remplacés par `"custom"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini1337* `agent_type` : Le type de sous-agent. Les noms d'agents intégrés et les agents des plugins de la place de marché officielle apparaissent textuellement ; les autres noms d'agents sont remplacés par `"custom"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini
1295* `agent.source` : D'où provient la définition de l'agent : `built-in`, `plugin`, ou la source de paramètres qui a défini un agent personnalisé, par exemple `userSettings` ou `projectSettings`1338* `agent.source` : D'où la définition d'agent provient : `built-in`, `plugin`, ou la source de paramètres qui a défini un agent personnalisé, par exemple `userSettings` ou `projectSettings`
1296* `is_built_in` : Si le sous-agent est un type d'agent intégré1339* `is_built_in` : Si le sous-agent est un type d'agent intégré
1297* `is_async` : Si le sous-agent s'est exécuté en [arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background)1340* `is_async` : Si le sous-agent s'exécutait en [arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background)
1298* `total_tokens` : L'empreinte de jeton de la demande API finale du sous-agent : les jetons d'entrée, de création de cache, de lecture de cache et de sortie de cette seule demande, à peu près la taille du contexte du sous-agent à la fin. Pas une somme à travers l'exécution1341* `total_tokens` : L'empreinte de jetons de la demande API finale du sous-agent : les jetons d'entrée, de création de cache, de lecture de cache et de sortie de cette seule demande, à peu près la taille du contexte du sous-agent à la fin. Pas une somme sur l'exécution
1299* `total_tool_uses` : Nombre d'appels d'outils que le sous-agent a effectués à travers toute l'exécution1342* `total_tool_uses` : Nombre d'appels d'outils que le sous-agent a effectués sur toute l'exécution
1300* `duration_ms` : Temps d'exécution en millisecondes1343* `duration_ms` : Temps d'exécution en millisecondes
1301* `model` : Le modèle auquel le sous-agent a été résolu pour s'exécuter1344* `model` : Le modèle auquel le sous-agent a été résolu pour s'exécuter
1302* `final_model` : Le modèle qui a produit la réponse finale du sous-agent, qui diffère de `model` après un changement en cours d'exécution tel qu'un secours. Nécessite Claude Code v2.1.212 ou ultérieur1345* `final_model` : Le modèle qui a produit la réponse finale du sous-agent, qui diffère de `model` après un changement en cours d'exécution tel qu'un secours. Nécessite Claude Code v2.1.212 ou ultérieur
1303* `model_swapped` : Si plus d'un modèle a servi les demandes du sous-agent. Nécessite Claude Code v2.1.212 ou ultérieur1346* `model_swapped` : Si plus d'un modèle a servi les demandes du sous-agent. Nécessite Claude Code v2.1.212 ou ultérieur
1304* `plugin_id_hash`, `plugin.name` : Présent pour les agents fournis par les plugins. Les noms de plugins de la place de marché officielle apparaissent textuellement ; les autres noms de plugins sont remplacés par `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini1347* `plugin_id_hash`, `plugin.name` : Présent pour les agents fournis par les plugins. Les noms des plugins de la place de marché officielle apparaissent textuellement ; les autres noms de plugins sont remplacés par `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` est défini
1305 1348
1306<h4 id="feedback-survey-event">1349<h4 id="feedback-survey-event">
1307 Événement d'enquête de rétroaction1350 Événement d'enquête de rétroaction
1308</h4>1351</h4>
1309 1352
1310Enregistré quand une enquête de qualité de session est affichée ou répondue. Voir [Enquêtes de qualité de session](/docs/fr/data-usage#session-quality-surveys) pour ce que les enquêtes collectent et comment les contrôler.1353Enregistré lorsqu'une enquête de qualité de session est affichée ou répondue. Voir [Enquêtes de qualité de session](/docs/fr/data-usage#session-quality-surveys) pour ce que les enquêtes collectent et comment les contrôler.
1311 1354
1312**Nom de l'événement** : `claude_code.feedback_survey`1355**Nom de l'événement** : `claude_code.feedback_survey`
1313 1356
1318* `event.timestamp` : Timestamp ISO 86011361* `event.timestamp` : Timestamp ISO 8601
1319* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1362* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1320* `event_type` : Événement du cycle de vie de l'enquête, par exemple `"appeared"`, `"responded"`, ou `"transcript_prompt_appeared"`1363* `event_type` : Événement du cycle de vie de l'enquête, par exemple `"appeared"`, `"responded"`, ou `"transcript_prompt_appeared"`
1321* `appearance_id` : ID unique liant les événements émis pour une instance d'enquête1364* `appearance_id` : ID unique reliant les événements émis pour une instance d'enquête
1322* `survey_type` : Quelle enquête a produit l'événement. `"session"` est l'invite d'évaluation « Comment Claude se débrouille-t-il ? »1365* `survey_type` : Quelle enquête a produit l'événement. `"session"` est l'invite d'évaluation « Comment Claude se débrouille-t-il ? »
1323* `response` : La sélection de l'utilisateur sur les événements `responded`1366* `response` : La sélection de l'utilisateur sur les événements `responded`
1324* `enabled_via_override` : `true` quand [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/fr/env-vars) est défini. Émis comme un booléen, pas une chaîne. Présent sur les événements d'enquête `session`. Filtrez sur cet attribut pour confirmer que le remplacement est appliqué dans une flotte1367* `enabled_via_override` : `true` lorsque [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/fr/env-vars) est défini. Émis sous forme de booléen, pas de chaîne. Présent sur les événements d'enquête `session`. Filtrez sur cet attribut pour confirmer que le remplacement est appliqué dans une flotte
1325 1368
1326<h4 id="retention-sweep-event">1369<h4 id="retention-sweep-event">
1327 Événement de balayage de rétention1370 Événement de balayage de rétention
1328</h4>1371</h4>
1329 1372
1330Enregistré une fois par exécution du balayage de nettoyage de rétention, qui supprime les [transcriptions de session et autres données d'application](/docs/fr/claude-directory#cleaned-up-automatically) plus anciennes que le paramètre [`cleanupPeriodDays`](/docs/fr/settings-reference#cleanupperioddays). Claude Code exécute le balayage en arrière-plan au maximum une fois par session, et une exécution qui ne supprime rien émet quand même l'événement. Si Claude Code a exécuté le balayage dans n'importe quelle session sur la même machine au cours des 24 dernières heures, il retarde le balayage de cette session d'au moins 10 minutes, donc une session qui se termine plus tôt n'émet rien. Quand vous exécutez `claude -p` avec `--bare`, Claude Code n'exécute pas le balayage et n'émet rien.1373Enregistré une fois par exécution du balayage de nettoyage de rétention, qui supprime les [transcriptions de session et autres données d'application](/docs/fr/claude-directory#cleaned-up-automatically) plus anciennes que le paramètre [`cleanupPeriodDays`](/docs/fr/settings-reference#cleanupperioddays). Claude Code exécute le balayage en arrière-plan au maximum une fois par session, et une exécution qui ne supprime rien émet quand même l'événement. Si Claude Code a exécuté le balayage dans n'importe quelle session sur la même machine au cours des 24 dernières heures, il retarde le balayage de cette session d'au moins 10 minutes, donc une session qui se termine plus tôt n'émet rien. Lorsque vous exécutez `claude -p` avec `--bare`, Claude Code n'exécute pas le balayage et n'émet rien.
1331 1374
1332Comme chaque événement OTel sur cette page, il va uniquement au backend de télémétrie que vous configurez. Nécessite Claude Code v2.1.227 ou ultérieur.1375Comme chaque événement OTel sur cette page, il va uniquement au backend de télémétrie que vous configurez. Nécessite Claude Code v2.1.227 ou ultérieur.
1333 1376
1334Quand Claude Code ne peut pas déterminer avec certitude la période de rétention, il met en pause le balayage et émet l'événement avec `result` défini à `"skipped"` et une `skip_reason`. Quand les [paramètres gérés](/docs/fr/server-managed-settings) définissent `cleanupPeriodDays`, la valeur gérée épingle la période de rétention et le balayage s'exécute même quand un fichier de paramètres dans une portée de priorité inférieure est cassé ou invalide. Quand `managed-settings.json` lui-même ne peut pas être lu, Claude Code met quand même en pause le balayage sauf si le [niveau géré](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) fournit `cleanupPeriodDays` d'ailleurs, par exemple les paramètres gérés par le serveur ou une suppression `managed-settings.d/` à côté du fichier cassé. Les attributs du compteur de suppression sont présents uniquement quand `result` est `"complete"`.1377Lorsque Claude Code ne peut pas déterminer avec certitude la période de rétention, il met en pause le balayage et émet l'événement avec `result` défini à `"skipped"` et une `skip_reason`. Lorsque les [paramètres gérés](/docs/fr/server-managed-settings) définissent `cleanupPeriodDays`, la valeur gérée épingle la période de rétention et le balayage s'exécute même lorsqu'un fichier de paramètres dans une portée de priorité inférieure est cassé ou invalide. Lorsque `managed-settings.json` lui-même ne peut pas être lu, Claude Code met quand même en pause le balayage sauf si le [niveau géré](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) fournit `cleanupPeriodDays` d'ailleurs, par exemple à partir des paramètres gérés par le serveur ou d'une suppression `managed-settings.d/` à côté du fichier cassé. Les attributs du compteur de suppression sont présents uniquement lorsque `result` est `"complete"`.
1335 1378
1336**Nom de l'événement** : `claude_code.retention_sweep`1379**Nom de l'événement** : `claude_code.retention_sweep`
1337 1380
1341* `event.name` : `"retention_sweep"`1384* `event.name` : `"retention_sweep"`
1342* `event.timestamp` : Timestamp ISO 86011385* `event.timestamp` : Timestamp ISO 8601
1343* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1386* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1344* `result` : `"complete"` quand le balayage s'est exécuté, `"skipped"` quand Claude Code l'a mis en pause1387* `result` : `"complete"` lorsque le balayage s'est exécuté, `"skipped"` lorsque Claude Code l'a mis en pause
1345* `period_days` : La valeur `cleanupPeriodDays` des paramètres fusionnés, en jours, ou `30` quand aucune source ne la définit. Sur les événements ignorés, la valeur que le balayage aurait utilisée, calculée à partir des sources de paramètres que Claude Code a pu lire1388* `period_days` : La valeur `cleanupPeriodDays` à partir des paramètres fusionnés, en jours, ou `30` lorsqu'aucune source ne la définit. Sur les événements ignorés, la valeur que le balayage aurait utilisée, calculée à partir des sources de paramètres que Claude Code pouvait lire
1346* `used_default` : `"true"` quand aucune source de paramètres lisible ne définit `cleanupPeriodDays`, `"false"` sinon. Sur les événements complets, `"true"` signifie que la valeur par défaut de 30 jours s'appliquait1389* `used_default` : `"true"` lorsqu'aucune source de paramètres lisible ne définit `cleanupPeriodDays`, `"false"` sinon. Sur les événements complets, `"true"` signifie que la valeur par défaut de 30 jours s'appliquait
1347* `skip_reason` : Pourquoi Claude Code a mis en pause le balayage. Présent uniquement quand `result` est `"skipped"` :1390* `skip_reason` : Pourquoi Claude Code a mis en pause le balayage. Présent uniquement lorsque `result` est `"skipped"` :
1348 * `"user_source_disabled"` : Les paramètres utilisateur sont exclus, par exemple par le drapeau [`--setting-sources`](/docs/fr/cli-reference#cli-flags) ou l'option [`settingSources`](/docs/fr/agent-sdk/typescript#options) du SDK, et aucune source activée ne fournit `cleanupPeriodDays`1391 * `"user_source_disabled"` : Les paramètres utilisateur sont exclus, par exemple par le drapeau [`--setting-sources`](/docs/fr/cli-reference#cli-flags) ou l'option [`settingSources`](/docs/fr/agent-sdk/typescript#options) du SDK, et aucune source activée ne fournit `cleanupPeriodDays`
1349 * `"settings_unknowable"` : Un fichier de paramètres n'a pas pu être lu ou analysé, donc `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` peut être défini à une valeur que Claude Code ne peut pas voir1392 * `"settings_unknowable"` : Un fichier de paramètres n'a pas pu être lu ou analysé, donc `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` peut être défini à une valeur que Claude Code ne peut pas voir
1350 * `"settings_invalid_key_set"` : Les paramètres ont des erreurs de validation et `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` est explicitement défini, donc revenir à la valeur par défaut pourrait supprimer ou conserver des fichiers contre ce paramètre1393 * `"settings_invalid_key_set"` : Les paramètres ont des erreurs de validation et `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` est explicitement défini, donc revenir à la valeur par défaut pourrait supprimer ou conserver des fichiers contre ce paramètre
1351* `transcripts_deleted` : Nombre de transcriptions de session, les fichiers `~/.claude/projects/*/*.jsonl` de niveau supérieur, que le balayage a supprimés1394* `transcripts_deleted` : Nombre de transcriptions de session, les fichiers `~/.claude/projects/*/*.jsonl` de niveau supérieur, que le balayage a supprimés
1352* `transcripts_exempted_desktop` : Nombre de transcriptions au-delà de la période de rétention que le balayage a conservées selon la [règle Claude Desktop et Cowork](/docs/fr/claude-directory#cleaned-up-automatically). Celles-ci ne comptent pas vers `files_past_cutoff`. Nécessite Claude Code v2.1.248 ou ultérieur1395* `transcripts_exempted_desktop` : Nombre de transcriptions au-delà de la période de rétention que le balayage a conservées selon la [règle Claude Desktop et Cowork](/docs/fr/claude-directory#cleaned-up-automatically). Celles-ci ne comptent pas vers `files_past_cutoff`. Nécessite Claude Code v2.1.248 ou ultérieur
1353* `session_files_deleted` : Nombre d'artefacts que le balayage des fichiers de session a supprimés : transcriptions plus fichiers compagnons par session tels que les barres latérales, les enregistrements et les résultats d'outils1396* `session_files_deleted` : Nombre d'artefacts que le balayage des fichiers de session a supprimés : transcriptions plus fichiers compagnons par session tels que les barres latérales, les enregistrements et les résultats d'outils
1354* `artifacts_deleted` : Nombre total d'éléments que le balayage a supprimés à travers les répertoires de données qu'il couvre, y compris les fichiers de session. Certains balayages comptent un arbre de répertoires supprimé entier comme un élément et quelques passes de nettoyage ne contribuent pas au compteur, donc traitez la valeur comme un plancher plutôt qu'un nombre de fichiers exact1397* `artifacts_deleted` : Nombre total d'éléments que le balayage a supprimés dans les répertoires de données qu'il couvre, y compris les fichiers de session. Certains balayages comptent un arbre de répertoires supprimé entier comme un élément et quelques passes de nettoyage ne contribuent pas au compteur, donc traitez la valeur comme un plancher plutôt qu'un nombre exact de fichiers
1355* `files_retained_fresh` : Fichiers inspectés et laissés en place car ils sont toujours dans la période de rétention. Seuls les balayages par fichier comptent ceux-ci, donc la valeur est un plancher ; une valeur non nulle est l'état stable normal1398* `files_retained_fresh` : Fichiers inspectés et laissés en place car ils sont toujours dans la période de rétention. Seuls les balayages par fichier comptent ceux-ci, donc la valeur est un plancher ; une valeur non nulle est l'état stable normal
1356* `files_past_cutoff` : Fichiers plus anciens que la période de rétention que le balayage n'a pas pu supprimer, par exemple en raison d'une erreur de permission ou d'un fichier maintenu ouvert. Une valeur supérieure à zéro signifie que les fichiers ont dépassé la période de rétention configurée ; zéro n'est pas la preuve qu'aucun ne l'a fait, car une suppression échouée d'un répertoire entier compte vers `error_count` à la place1399* `files_past_cutoff` : Fichiers plus anciens que la période de rétention que le balayage n'a pas pu supprimer, par exemple en raison d'une erreur de permission ou d'un fichier maintenu ouvert. Une valeur supérieure à zéro signifie que les fichiers ont dépassé la période de rétention configurée ; zéro n'est pas la preuve qu'aucun ne l'a fait, car une suppression échouée d'un répertoire entier compte vers `error_count` à la place
1357* `error_count` : Nombre d'erreurs que le balayage a rencontrées lors de la liste ou de la suppression de fichiers1400* `error_count` : Nombre d'erreurs que le balayage a rencontrées lors de la liste ou de la suppression de fichiers
1360 Événement de paramètres gérés résolus1403 Événement de paramètres gérés résolus
1361</h4>1404</h4>
1362 1405
1363Enregistré avec les [paramètres gérés](/docs/fr/managed-settings) qu'une session a résolus : une fois au démarrage de la session, à nouveau quand soit les paramètres gérés soit l'état de l'[assistant de politique](/docs/fr/managed-settings#compute-the-policy-with-a-helper-program) change pendant la session, et quand Claude Code refuse de démarrer ou termine la session pour l'une des raisons que l'attribut `error.type` liste.1406Enregistré avec les [paramètres gérés](/docs/fr/managed-settings) qu'une session a résolus : une fois au démarrage de la session, à nouveau lorsque soit les paramètres gérés soit l'état de l'[assistant de politique](/docs/fr/managed-settings#compute-the-policy-with-a-helper-program) change pendant la session, et lorsque Claude Code refuse de démarrer ou termine la session pour l'une des raisons que l'attribut `error.type` énumère.
1364Utilisez cet événement pour trouver les machines exécutées sur une source gérée inattendue, les machines dont l'assistant de politique échoue, et la raison pour laquelle une machine a refusé de démarrer.1407Utilisez cet événement pour trouver les machines exécutées sur une source gérée inattendue, les machines dont l'assistant de politique échoue, et la raison pour laquelle une machine a refusé de démarrer.
1365Nécessite Claude Code v2.1.274 ou ultérieur.1408Nécessite Claude Code v2.1.274 ou ultérieur.
1366 1409
1379* `event.name` : `"managed_settings_resolved"`1422* `event.name` : `"managed_settings_resolved"`
1380* `event.timestamp` : Timestamp ISO 86011423* `event.timestamp` : Timestamp ISO 8601
1381* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)1424* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation d'événements](#event-correlation-attributes)
1382* `managed_settings.trigger` : `"startup"` pour l'événement de démarrage de session, `"change"` quand les paramètres gérés ou l'état de l'assistant de politique ont changé plus tard dans la session, ou `"refused"` quand une politique de paramètres gérés a arrêté la session. Claude Code envoie un événement `change` uniquement quand un attribut diffère du dernier événement qu'il a envoyé, et une valeur de paramètre modifiée compte même quand `OTEL_LOG_MANAGED_SETTINGS` est désactivé1425* `managed_settings.trigger` : `"startup"` pour l'événement de démarrage de session, `"change"` lorsque les paramètres gérés ou l'état de l'assistant de politique ont changé plus tard dans la session, ou `"refused"` lorsqu'une politique de paramètres gérés a arrêté la session. Claude Code envoie un événement `change` uniquement lorsqu'un attribut diffère du dernier événement qu'il a envoyé, et une valeur de paramètre modifiée compte même lorsque `OTEL_LOG_MANAGED_SETTINGS` est désactivé
1383* `error.type` : pourquoi Claude Code a arrêté la session. Présent uniquement sur les événements `refused` :1426* `error.type` : pourquoi Claude Code a arrêté la session. Présent uniquement sur les événements `refused` :
1384 * `"helper_failed"` : une [exécution d'assistant de politique a échoué](/docs/fr/settings-reference#helper-failures)1427 * `"helper_failed"` : une [exécution d'assistant de politique a échoué](/docs/fr/settings-reference#helper-failures)
1385 * `"policy_invalid"` : les paramètres gérés contiennent une erreur qui arrête Claude Code de démarrer, ou une source d'administration n'a pas pu se charger, donc Claude Code ne peut pas vérifier l'application de la connexion de l'organisation1428 * `"policy_invalid"` : les paramètres gérés contiennent une erreur qui arrête Claude Code de démarrer, ou une source d'administration n'a pas pu se charger, donc Claude Code ne peut pas vérifier l'application de la connexion à l'organisation
1386 * `"consent_rejected"` : l'utilisateur a rejeté la [boîte de dialogue d'approbation de sécurité](/docs/fr/server-managed-settings#security-approval-dialogs) pour les paramètres gérés par le serveur1429 * `"consent_rejected"` : l'utilisateur a rejeté la [boîte de dialogue d'approbation de sécurité](/docs/fr/server-managed-settings#security-approval-dialogs) pour les paramètres gérés par le serveur
1387 * `"force_refresh_failed"` : l'extraction de paramètres que [`forceRemoteSettingsRefresh`](/docs/fr/settings-reference#forceremotesettingsrefresh) nécessite a échoué1430 * `"force_refresh_failed"` : la récupération de paramètres que [`forceRemoteSettingsRefresh`](/docs/fr/settings-reference#forceremotesettingsrefresh) nécessite a échoué
1388 * `"gateway_rejected"` : une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) a répondu au chargement des paramètres gérés avec HTTP 4031431 * `"gateway_rejected"` : une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) a répondu au chargement des paramètres gérés avec HTTP 403
1389 * `"version_below_minimum"` : cette version de Claude Code est en dessous de [`requiredMinimumVersion`](/docs/fr/settings-reference#requiredminimumversion) ou au-dessus de [`requiredMaximumVersion`](/docs/fr/settings-reference#requiredmaximumversion)1432 * `"version_below_minimum"` : cette version de Claude Code est inférieure à [`requiredMinimumVersion`](/docs/fr/settings-reference#requiredminimumversion) ou supérieure à [`requiredMaximumVersion`](/docs/fr/settings-reference#requiredmaximumversion)
1390 * `"_OTHER"` : le chargement des paramètres gérés de la passerelle d'applications Claude a échoué pour une autre raison1433 * `"_OTHER"` : le chargement des paramètres gérés de la passerelle d'applications Claude a échoué pour une autre raison
1391* `managed_settings.sources` : chaque source gérée qui fournit au moins une [clé de politique](/docs/fr/managed-settings#how-claude-code-combines-managed-sources), priorité la plus élevée en premier, y compris les sources dont les clés ne prennent pas effet sous `first-wins`. Les valeurs sont `"remote"`, `"plist"` ou `"hklm"` pour la politique MDM ou au niveau du système d'exploitation, `"file"` pour les fichiers de paramètres gérés et les suppressions, `"parent"` quand un [hôte d'intégration](/docs/fr/managed-settings#let-an-embedding-host-add-policy) fournit des paramètres, et `"hkcu"` pour la [valeur du registre Windows HKCU](/docs/fr/managed-settings#where-each-mechanism-stores-the-policy) quand Claude Code la [lit](/docs/fr/managed-settings#how-claude-code-combines-managed-sources). Une source qui porte uniquement des clés de contrôle, ou que Claude Code n'a pas pu lire, n'est pas listée. Émis comme un tableau de chaînes, vide quand aucune source gérée ne fournit une clé de politique1434* `managed_settings.sources` : chaque source gérée qui fournit au moins une [clé de politique](/docs/fr/managed-settings#how-claude-code-combines-managed-sources), priorité la plus élevée en premier, y compris les sources dont les clés ne prennent pas effet sous `first-wins`. Les valeurs sont `"remote"`, `"plist"` ou `"hklm"` pour la politique MDM ou au niveau du système d'exploitation, `"file"` pour les fichiers de paramètres gérés et les suppressions, `"parent"` lorsqu'un [hôte d'intégration](/docs/fr/managed-settings#let-an-embedding-host-add-policy) fournit des paramètres, et `"hkcu"` pour la [valeur du registre Windows HKCU](/docs/fr/managed-settings#where-each-mechanism-stores-the-policy) lorsque Claude Code la [lit](/docs/fr/managed-settings#how-claude-code-combines-managed-sources). Une source qui porte uniquement des clés de contrôle, ou que Claude Code n'a pas pu lire, n'est pas listée. Émis sous forme de tableau de chaînes, vide lorsqu'aucune source gérée ne fournit une clé de politique
1392* `managed_settings.source_behavior` : la valeur [`managedSourcesBehavior`](/docs/fr/settings-reference#managedsourcesbehavior) que Claude Code a lue, `"first-wins"` ou `"merge"`. `"first-wins"` quand aucune source ne définit la clé1435* `managed_settings.source_behavior` : la valeur [`managedSourcesBehavior`](/docs/fr/settings-reference#managedsourcesbehavior) que Claude Code a lue, `"first-wins"` ou `"merge"`. `"first-wins"` lorsqu'aucune source ne définit la clé
1393* `managed_settings.helper.state` : état de l'assistant de politique que la source MDM ou fichier sélectionnée configure :1436* `managed_settings.helper.state` : état de l'assistant de politique que la source MDM ou fichier sélectionnée configure :
1394 * `"ok"` : la sortie de l'assistant sert de paramètres gérés1437 * `"ok"` : la sortie de l'assistant sert de paramètres gérés
1395 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, ou `"schema_rejected"` : la dernière exécution de l'assistant a échoué. Les [défaillances d'assistant](/docs/fr/settings-reference#helper-failures) décrivent les cas1438 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, ou `"schema_rejected"` : la dernière exécution de l'assistant a échoué. Les [défaillances d'assistant](/docs/fr/settings-reference#helper-failures) décrivent les cas
1396 * `"none"` : aucun assistant n'est configuré, ou la source qui le configure n'est pas une politique MDM ou un fichier de paramètres gérés1439 * `"none"` : aucun assistant n'est configuré, ou la source qui le configure n'est pas une politique MDM ou un fichier de paramètres gérés
1397* `managed_settings.helper.applied` : `"output"` tandis que la propre sortie de l'assistant sert de paramètres gérés, `"none"` quand ce n'est pas le cas1440* `managed_settings.helper.applied` : `"output"` tandis que la sortie propre de l'assistant sert de paramètres gérés, `"none"` lorsqu'elle ne le fait pas
1398* `managed_settings.helper.entry` : `"policyHelper"` quand Claude Code a sélectionné un [`policyHelper`](/docs/fr/settings-reference#policyhelper). Absent quand il n'a sélectionné aucun assistant1441* `managed_settings.helper.entry` : `"policyHelper"` lorsque Claude Code a sélectionné un [`policyHelper`](/docs/fr/settings-reference#policyhelper). Absent lorsqu'il n'a sélectionné aucun assistant
1399* `managed_settings.helper.path` : le [`path`](/docs/fr/settings-reference#policyhelper-path) configuré de l'assistant. Présent chaque fois que Claude Code a sélectionné un assistant, que `OTEL_LOG_MANAGED_SETTINGS` soit défini ou non1442* `managed_settings.helper.path` : le [`path`](/docs/fr/settings-reference#policyhelper-path) configuré de l'assistant. Présent chaque fois que Claude Code a sélectionné un assistant, qu'il ait réussi ou non
1400* `managed_settings.resolved_sha256` (quand `OTEL_LOG_MANAGED_SETTINGS=1`) : SHA-256 des paramètres gérés résolus avant rédaction, sérialisé en JSON avec les clés triées récursivement et sans espace blanc. Les machines avec le même digest exécutent la même politique. Claude Code envoie le digest uniquement avec l'opt-in car une politique courte peut être récupérée en hachant des suppositions. Absent quand aucun paramètre géré n'a été résolu, et sur les événements `refused`1443* `managed_settings.resolved_sha256` (lorsque `OTEL_LOG_MANAGED_SETTINGS=1`) : SHA-256 des paramètres gérés résolus avant rédaction, sérialisés en JSON avec les clés triées récursivement et sans espace blanc. Les machines avec le même digest exécutent la même politique. Claude Code envoie le digest uniquement avec l'opt-in car une politique courte peut être récupérée en hachant des suppositions. Absent lorsqu'aucun paramètre géré n'a été résolu, et sur les événements `refused`
1401* `managed_settings.settings` (quand `OTEL_LOG_MANAGED_SETTINGS=1`) : les noms et la forme des paramètres gérés résolus sous forme de chaîne JSON, avec les valeurs rédactées. Absent sur les événements `refused`. Claude Code le construit à partir de son schéma de paramètres :1444* `managed_settings.settings` (lorsque `OTEL_LOG_MANAGED_SETTINGS=1`) : les noms et la forme des paramètres gérés résolus sous forme de chaîne JSON, avec les valeurs rédactées. Absent sur les événements `refused`. Claude Code le construit à partir de son schéma de paramètres :
1402 1445
1403 * Un nom de paramètre que le schéma déclare est exporté, et une clé qu'il ne déclare pas est laissée de côté1446 * Un nom de paramètre que le schéma déclare est exporté, et une clé qu'il ne déclare pas est laissée de côté
1404 * Les booléens, les nombres et les valeurs de chaîne que le schéma restreint à un ensemble fixe d'options, par exemple `permissions.defaultMode`, sont exportés tels quels. `sandbox.network.httpProxyPort` et `sandbox.network.socksProxyPort` sont exportés comme `"[REDACTED]"`1447 * Les booléens, les nombres et les valeurs de chaîne que le schéma restreint à un ensemble fixe d'options, par exemple `permissions.defaultMode`, sont exportés tels quels. `sandbox.network.httpProxyPort` et `sandbox.network.socksProxyPort` sont exportés comme `"[REDACTED]"`
1405 * Chaque autre chaîne, par exemple `model`, `apiKeyHelper`, chaque valeur `env`, chaque URL et chaque commande, est exportée comme `"[REDACTED]"`1448 * Chaque autre chaîne, par exemple `model`, `apiKeyHelper`, chaque valeur `env`, chaque URL et chaque commande, est exportée comme `"[REDACTED]"`
1406 * Les noms d'entrée des cartes, par exemple les noms de variables `env` et les ID de plugins, sont exportés tels quels. Un paramètre dont les entrées le schéma ne tape pas, par exemple `vimInsertModeRemaps`, est exporté comme un seul `"[REDACTED]"`, et `sandbox.ignoreViolations` est exporté comme une liste de ses listes de chemins sans les modèles de commande1449 * Les noms d'entrée des cartes, par exemple les noms de variables `env` et les ID de plugins, sont exportés tels quels. Un paramètre dont les entrées le schéma ne tape pas, par exemple `vimInsertModeRemaps`, est exporté comme un seul `"[REDACTED]"`, et `sandbox.ignoreViolations` est exporté comme une liste de ses listes de chemins sans les modèles de commande
1407 * Une liste conserve sa longueur, avec chaque entrée rédactée par les mêmes règles1450 * Une liste conserve sa longueur, avec chaque entrée rédactée par les mêmes règles
1408 * Une règle `permissions.allow`, `permissions.deny`, ou `permissions.ask` est exportée comme son nom d'outil avec le contenu rédacté, par exemple `Read([REDACTED])`, quand l'outil est intégré à cette version de Claude Code ou est une référence `mcp__` telle que `mcp__jira__create_issue`. Toute autre règle est exportée comme `"[REDACTED]"`1451 * Une règle `permissions.allow`, `permissions.deny`, ou `permissions.ask` est exportée comme son nom d'outil avec le contenu rédacté, par exemple `Read([REDACTED])`, lorsque l'outil est intégré à cette version de Claude Code ou est une référence `mcp__` telle que `mcp__jira__create_issue`. Toute autre règle est exportée comme `"[REDACTED]"`
1409 * Les hooks suivent les mêmes règles, donc les champs à option fixe et numériques tels que `type` et `timeout` s'affichent, tandis que chaque commande, URL, `matcher`, et condition `if` est exportée comme `"[REDACTED]"`1452 * Les hooks suivent les mêmes règles, donc les champs à option fixe et numériques tels que `type` et `timeout` s'affichent, tandis que chaque commande, URL, `matcher` et condition `if` est exportée comme `"[REDACTED]"`
1410 1453
1411 Par exemple, les paramètres gérés avec `apiKeyHelper`, deux variables `env`, et une règle de refus sont exportés comme `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.1454 Par exemple, les paramètres gérés avec `apiKeyHelper`, deux variables `env` et une règle de refus sont exportés comme `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.
1412 1455
1413 Claude Code coupe la valeur à 8 Ko d'UTF-8, et la valeur coupée n'est pas du JSON valide1456 Claude Code coupe la valeur à 8 KB d'UTF-8, et la valeur coupée n'est pas un JSON valide
1414* `managed_settings.settings_truncated` (quand `managed_settings.settings` est présent) : `true` quand Claude Code a coupé `managed_settings.settings` à 8 Ko, `false` sinon. Émis comme un booléen, pas une chaîne1457* `managed_settings.settings_truncated` (lorsque `managed_settings.settings` est présent) : `true` lorsque Claude Code a coupé `managed_settings.settings` à 8 KB, `false` sinon. Émis sous forme de booléen, pas de chaîne
1415 1458
1416<h2 id="interpret-metrics-and-events-data">1459<h2 id="interpret-metrics-and-events-data">
1417 Interpréter les données de métriques et d'événements1460 Interpréter les données de métriques et d'événements
1499 1542
1500Les [attributs standard](#standard-attributes) sur chaque événement incluent l'identité de l'utilisateur authentifié : `user.email`, `user.account_uuid`, `user.account_id`, et `organization.id` lorsqu'il est connecté avec un compte Claude ou, dans une [session cloud](/docs/fr/claude-code-on-the-web), lorsque les propres identifiants de la session les portent, plus `user.id` et le per-session `session.id`. `user.id` est un identifiant limité à l'installation, sauf sur les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), où il s'agit du sujet IdP du jeton émis par la passerelle.1543Les [attributs standard](#standard-attributes) sur chaque événement incluent l'identité de l'utilisateur authentifié : `user.email`, `user.account_uuid`, `user.account_id`, et `organization.id` lorsqu'il est connecté avec un compte Claude ou, dans une [session cloud](/docs/fr/claude-code-on-the-web), lorsque les propres identifiants de la session les portent, plus `user.id` et le per-session `session.id`. `user.id` est un identifiant limité à l'installation, sauf sur les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), où il s'agit du sujet IdP du jeton émis par la passerelle.
1501 1544
1502Les appels d'outils MCP, les commandes Bash et les éditions de fichiers sont donc attribués au développeur qui a démarré la session. Claude Code n'agit pas sous un compte de service distinct ; l'identité enregistrée sur chaque événement est le propre compte Claude du développeur, ou l'identité IdP du développeur sur une session de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway).1545Dans une session qu'un développeur démarre, les appels d'outils MCP, les commandes Bash et les éditions de fichiers sont donc attribués à ce développeur. Claude Code n'agit pas sous un compte de service distinct ; l'identité enregistrée sur chaque événement est le propre compte Claude du développeur, ou l'identité IdP du développeur sur une session de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway). Dans les sessions de canal Claude Tag, Claude fonctionne plutôt comme l'[identité partagée](/docs/fr/cloud-environments#set-the-environment-a-claude-tag-channel-uses) de votre organisation.
1503 1546
1504Lorsque Claude Code s'authentifie avec une clé API directe, ou contre Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, il n'y a pas de compte Claude dans la session et seuls `user.id` et `session.id` sont remplis. Dans ces déploiements, attachez l'identité utilisateur vous-même avec `OTEL_RESOURCE_ATTRIBUTES`, défini par utilisateur via le fichier [paramètres gérés](#administrator-configuration) ou un wrapper de lancement. Les sessions de passerelle d'applications Claude n'ont besoin d'aucune de ces opérations : le CLI horodate l'identité IdP automatiquement, comme décrit dans [Attributs standard](#standard-attributes).1547Lorsque Claude Code s'authentifie avec une clé API directe, ou contre Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, il n'y a pas de compte Claude dans la session et seuls `user.id` et `session.id` sont remplis. Dans ces déploiements, attachez l'identité utilisateur vous-même avec `OTEL_RESOURCE_ATTRIBUTES`, défini par utilisateur via le fichier [paramètres gérés](#administrator-configuration) ou un wrapper de lancement. Les sessions de passerelle d'applications Claude n'ont besoin d'aucune de ces opérations : le CLI horodate l'identité IdP automatiquement, comme décrit dans [Attributs standard](#standard-attributes).
1505 1548
1563}1606}
1564```1607```
1565 1608
1566Pour confirmer que les événements arrivent, soumettez une invite dans une session exécutée sous cette configuration et vérifiez votre SIEM pour l'événement `claude_code.user_prompt`. Si rien n'arrive, exécutez `claude --debug` et vérifiez le journal de débogage pour les erreurs d'exportation `[3P telemetry]`.1609Pour confirmer que les événements arrivent, soumettez une invite dans une session exécutée sous cette configuration et vérifiez votre SIEM pour l'événement `claude_code.user_prompt`. Si rien n'arrive, démarrez Claude Code avec `claude --debug-file <path>` et vérifiez ce journal pour les erreurs d'exportation `[3P telemetry]`.
1567 1610
1568<h2 id="backend-considerations">1611<h2 id="backend-considerations">
1569 Considérations relatives aux backends1612 Considérations relatives aux backends
1633 * Les événements `tool_result` et `tool_decision` incluent un attribut `tool_parameters` avec les commandes Bash, les noms de serveur MCP et d'outil, et les noms de compétences. Les champs tels que `full_command` sont émis sans troncature1676 * Les événements `tool_result` et `tool_decision` incluent un attribut `tool_parameters` avec les commandes Bash, les noms de serveur MCP et d'outil, et les noms de compétences. Les champs tels que `full_command` sont émis sans troncature
1634 * Les événements `tool_result` incluent également un attribut `tool_input` avec les chemins de fichiers, les URL, les modèles de recherche et d'autres arguments. Les valeurs individuelles dépassant 512 caractères sont tronquées et le total est limité à environ 4 K caractères1677 * Les événements `tool_result` incluent également un attribut `tool_input` avec les chemins de fichiers, les URL, les modèles de recherche et d'autres arguments. Les valeurs individuelles dépassant 512 caractères sont tronquées et le total est limité à environ 4 K caractères
1635 * Les événements `user_prompt` incluent le `command_name` verbatim pour les commandes personnalisées, de plugin et MCP1678 * Les événements `user_prompt` incluent le `command_name` verbatim pour les commandes personnalisées, de plugin et MCP
1679 * Les [compteurs de coût et de jeton](#cost-counter) et les événements `api_request`, `api_error` et `api_refusal` portent les noms réels d'agent, de compétence, de plugin et de serveur MCP et d'outil dans leurs attributs d'attribution
1636 * Les intervalles de trace incluent le même attribut `tool_input` et les attributs dérivés de l'entrée tels que `file_path`, avec la même troncature que `tool_input`1680 * Les intervalles de trace incluent le même attribut `tool_input` et les attributs dérivés de l'entrée tels que `file_path`, avec la même troncature que `tool_input`
1637* Le contenu d'outil n'est pas enregistré dans les intervalles de trace par défaut. Pour l'inclure, définissez `OTEL_LOG_TOOL_CONTENT=1`. L'intervalle `claude_code.tool` porte alors un [événement d'intervalle `tool.output`](#tool-output-span-event) avec les contenus de fichiers bruts et la sortie de commande Bash, tronqués à la limite de contenu (60 Ko par défaut) par attribut. Le contenu d'outil atteint également les intervalles via [`new_context`, dont la porte diffère par intervalle](#new-context-gates). Configurez votre backend de télémétrie pour filtrer ou masquer ces attributs selon les besoins1681* Le contenu d'outil n'est pas enregistré dans les intervalles de trace par défaut. Pour l'inclure, définissez `OTEL_LOG_TOOL_CONTENT=1`. L'intervalle `claude_code.tool` porte alors un [événement d'intervalle `tool.output`](#tool-output-span-event) avec les contenus de fichiers bruts, la sortie de commande Bash, et ce que les outils MCP, WebFetch et WebSearch retournent, tronqués à la limite de contenu (60 Ko par défaut) par attribut. Les résultats des outils MCP, WebFetch et WebSearch nécessitent Claude Code v2.1.283 ou version ultérieure. Le contenu d'outil atteint également les intervalles via [`new_context`, dont la porte diffère par intervalle](#new-context-gates). Configurez votre backend de télémétrie pour filtrer ou masquer ces attributs selon les besoins
1638* Les corps bruts de la demande et de la réponse de l'API Messages d'Anthropic ne sont pas enregistrés par défaut. Pour les inclure, définissez `OTEL_LOG_RAW_API_BODIES` dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Il est ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Les corps contiennent l'historique complet de la conversation, y compris l'invite système, chaque tour d'utilisateur et d'assistant antérieur, et les résultats d'outils, donc l'activation de cette option implique le consentement à tout ce que les autres drapeaux de contenu `OTEL_LOG_*` révèleraient. Claude Code masque toujours le contenu de réflexion étendue de Claude de ces corps, indépendamment des autres paramètres. La valeur que vous définissez détermine comment Claude Code livre les corps :1682* Les corps bruts de la demande et de la réponse de l'API Messages d'Anthropic ne sont pas enregistrés par défaut. Pour les inclure, définissez `OTEL_LOG_RAW_API_BODIES` dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Il est ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Les corps contiennent l'historique complet de la conversation, y compris l'invite système, chaque tour d'utilisateur et d'assistant antérieur, et les résultats d'outils, donc l'activation de cette option implique le consentement à tout ce que les autres drapeaux de contenu `OTEL_LOG_*` révèleraient. Claude Code masque toujours le contenu de réflexion étendue de Claude de ces corps, indépendamment des autres paramètres. La valeur que vous définissez détermine comment Claude Code livre les corps :
1639 * Avec `=1`, Claude Code émet des événements de journaux `api_request_body` et `api_response_body` pour chaque appel d'API. L'attribut `body` des événements porte la charge utile sérialisée en JSON, tronquée à la limite de contenu (60 Ko par défaut)1683 * Avec `=1`, Claude Code émet des événements de journaux `api_request_body` et `api_response_body` pour chaque appel d'API. L'attribut `body` des événements porte la charge utile sérialisée en JSON, tronquée à la limite de contenu (60 Ko par défaut)
1640 * Avec `=file:<dir>`, Claude Code écrit les corps non tronqués dans les fichiers `.request.json` et `.response.json` sous ce répertoire, et les événements portent un chemin `body_ref` à la place du corps en ligne. Livrez le répertoire avec un collecteur de journaux ou un sidecar plutôt que via le flux de télémétrie.1684 * Avec `=file:<dir>`, Claude Code écrit les corps non tronqués dans les fichiers `.request.json` et `.response.json` sous ce répertoire, et les événements portent un chemin `body_ref` à la place du corps en ligne. Livrez le répertoire avec un collecteur de journaux ou un sidecar plutôt que via le flux de télémétrie.