Naar hoofdinhoud gaan

OpenTelemetry

De Copilot CLI heeft ingebouwde tracing via OpenTelemetry. Je hoeft dit alleen aan de SDK-kant te configureren om tracedata van het CLI-proces te verzamelen.

Telemetrie van modelaanroepen

Via het CLI-event assistant.usage kun je aantallen opvragen over toolaanroepen van vóór het opschonen van de request.
data['requestFingerprint'] van het event model.call_failure kan structurele informatie over de mislukte request bevatten, zoals het aantal berichten, afbeeldingen en toolaanroepen. De inhoud van de request wordt niet opgenomen. errorCode en errorType zijn waarden afkomstig van de server en bedoeld voor beperkte telemetrie. De SDK bewaart de eventdata ongewijzigd. Stuur deze waarden en errorMessage niet door naar niet-goedgekeurde logs of externe diensten.

GitHub-telemetry-events ontvangen

Los van OpenTelemetry kun je GitHub-telemetry-events ontvangen met de clientoptie onGitHubTelemetry (of on_github_telemetry). Wanneer je een handler instelt, schakelt de SDK het doorsturen in bij het verbinden en telkens wanneer een sessie wordt aangemaakt of hervat. De clienthandler heeft voorrang op enableGitHubTelemetryForwarding: false in de sessieconfiguratie.

Basisgebruik

Tracing van het CLI-proces inschakelen

Voeg een telemetry-configuratie toe aan config/copilot.php, of geef die rechtstreeks als optie mee.
Of geef het rechtstreeks op.
Als je de client rechtstreeks gebruikt:

TelemetryConfig-opties

W3C Trace Context-propagatie

De meeste gebruikers hebben deze functie niet nodig. Met alleen de bovenstaande TelemetryConfig kun je al traces van de CLI verzamelen. Wat volgt is een geavanceerde functie voor als je aan de applicatiekant eigen OpenTelemetry-spans wilt maken en die in dezelfde gedistribueerde trace wilt tonen als de spans van de CLI.
De SDK injecteert automatisch W3C Trace Context (traceparent/tracestate) in de JSON-RPC-requests session.create, session.resume en session.send.

Automatische propagatie (aanbevolen)

Installeer alleen het pakket open-telemetry/api en de tracecontext wordt automatisch gepropageerd.
Na installatie is er geen speciale configuratie nodig en worden de spans van je applicatie en de spans van de CLI gekoppeld in dezelfde gedistribueerde trace.

Custom provider

Als je je eigen logica wilt gebruiken om de tracecontext op te halen:

SDK → CLI (uitgaand)

traceparent/tracestate worden automatisch geïnjecteerd in de volgende RPC-aanroepen.
  • session.create — bij het aanmaken van een sessie
  • session.resume — bij het hervatten van een sessie
  • session.send — bij het versturen van een bericht

CLI → SDK (inkomend)

Wanneer de CLI een tool aanroept, bevat de $invocation-array van de toolhandler de tracecontext.
Als open-telemetry/api is geïnstalleerd, wordt de OpenTelemetry-context tijdens het uitvoeren van de toolhandler automatisch gekoppeld aan de span van de CLI. Je hoeft traceparent niet expliciet te gebruiken.

Afhankelijkheden

open-telemetry/api staat in de suggest-sectie van composer.json. De SDK zelf werkt gewoon, ook als het pakket niet is geïnstalleerd.
Zie de GitHub-repository voor de meest recente informatie.
Laatst gewijzigd op 26 oktober 2026