Skip to main content

OpenTelemetry

Copilot CLI include il tracciamento OpenTelemetry integrato. Con la sola configurazione lato SDK puoi raccogliere i dati di trace del processo CLI.

Uso di base

Abilitare il tracing del processo CLI

Aggiungi la configurazione telemetry in config/copilot.php o passala direttamente come opzione.
Oppure specificala direttamente.
Uso diretto del client:

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.
L’SDK inietta automaticamente il W3C Trace Context (traceparent/tracestate) nelle richieste JSON-RPC session.create, session.resume e session.send.

Propagazione automatica (consigliata)

Basta installare il pacchetto open-telemetry/api per far propagare automaticamente il trace context.
Dopo l’installazione, senza configurazioni particolari, gli span dell’applicazione e quelli della CLI sono collegati nello stesso trace distribuito.

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 sessione
  • session.resume — alla ripresa della sessione
  • session.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.
Se 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.
Ultima modifica il 13 luglio 2026