Skip to main content

OpenTelemetry

Le Copilot CLI intègre un tracing OpenTelemetry. Il suffit de le configurer côté SDK pour collecter les données de trace du processus CLI.

Recevoir les événements de télémétrie GitHub

Indépendamment d’OpenTelemetry, vous pouvez recevoir les événements de télémétrie GitHub avec l’option client onGitHubTelemetry (ou on_github_telemetry). Lorsque vous définissez un gestionnaire, le SDK active le transfert à la connexion ainsi qu’à chaque création ou reprise de session. Le gestionnaire du client est prioritaire sur enableGitHubTelemetryForwarding: false dans la configuration de session.

Utilisation de base

Activer le tracing du processus CLI

Ajoutez la configuration telemetry à config/copilot.php ou spécifiez-la directement en option.
Ou directement :
Avec le client directement :

Options de TelemetryConfig

Propagation du W3C Trace Context

La plupart des utilisateurs n’ont pas besoin de cette fonctionnalité. La TelemetryConfig ci-dessus suffit à collecter les traces du CLI. Ci-dessous, il s’agit d’une capacité avancée pour ceux qui créent leurs propres spans OpenTelemetry côté application et souhaitent les voir dans la même trace distribuée que celles du CLI.
Le SDK injecte automatiquement le W3C Trace Context (traceparent/tracestate) dans les requêtes JSON-RPC session.create, session.resume et session.send.

Propagation automatique (recommandée)

Il suffit d’installer le paquet open-telemetry/api pour que le trace context soit propagé automatiquement.
Une fois installé, aucune configuration supplémentaire n’est nécessaire : les spans de votre application et ceux du CLI sont liés dans la même trace distribuée.

Fournisseur personnalisé

Pour utiliser votre propre logique de récupération du trace context :

SDK → CLI (sortant)

traceparent/tracestate sont injectés automatiquement dans les appels RPC suivants.
  • session.create — création de session
  • session.resume — reprise de session
  • session.send — envoi de message

CLI → SDK (entrant)

Lorsque le CLI appelle un outil, le trace context se retrouve dans le tableau $invocation du gestionnaire d’outil.
Si open-telemetry/api est installé, le contexte OpenTelemetry pendant l’exécution du gestionnaire d’outil est automatiquement lié au span du CLI. Il n’est pas nécessaire d’utiliser explicitement traceparent.

Dépendances

open-telemetry/api est référencé en suggest de composer.json. Le SDK fonctionne aussi sans qu’il soit installé.
Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 19 octobre 2026