OpenTelemetry
Copilot CLI include il tracciamento OpenTelemetry integrato. Con la sola configurazione lato SDK puoi raccogliere i dati di trace del processo CLI.Ricevere gli eventi di telemetria di GitHub
Indipendentemente da OpenTelemetry, puoi ricevere gli eventi di telemetria di GitHub con l’opzione clientonGitHubTelemetry (o on_github_telemetry). Quando imposti un handler, l’SDK abilita l’inoltro alla connessione e ogni volta che una sessione viene creata o ripresa. L’handler del client ha priorità su enableGitHubTelemetryForwarding: false nella configurazione di sessione.
Uso di base
Abilitare il tracing del processo CLI
Aggiungi la configurazione telemetry inconfig/copilot.php o passala direttamente come opzione.
Opzioni di TelemetryConfig
Propagazione del W3C Trace Context
Per la maggior parte degli utenti questa funzionalità non è necessaria. Con la sola
TelemetryConfig sopra puoi raccogliere i trace della CLI. Quanto segue è una funzionalità avanzata utile se vuoi creare span OpenTelemetry propri dall’applicazione e farli comparire nello stesso trace distribuito degli span della CLI.traceparent/tracestate) nelle richieste JSON-RPC session.create, session.resume e session.send.
Propagazione automatica (consigliata)
Basta installare il pacchettoopen-telemetry/api per far propagare automaticamente il trace context.
Provider personalizzato
Se vuoi usare una logica personalizzata per ottenere il trace context:SDK → CLI (in uscita)
traceparent/tracestate vengono automaticamente iniettati nelle seguenti chiamate RPC.
session.create— alla creazione della sessionesession.resume— alla ripresa della sessionesession.send— all’invio del messaggio
CLI → SDK (in entrata)
Quando la CLI invoca uno strumento, l’array$invocation dell’handler dello strumento contiene il trace context.
open-telemetry/api è installato, il contesto OpenTelemetry durante l’esecuzione dell’handler dello strumento è collegato automaticamente allo span della CLI. Non serve usare esplicitamente traceparent.
Dipendenze
open-telemetry/api è incluso nel suggest di composer.json. Anche se non è installato, l’SDK funziona correttamente.
Per le informazioni più recenti fai riferimento al repository GitHub.