OpenTelemetry
In die Copilot CLI ist eine Tracing-Funktion auf Basis von OpenTelemetry integriert. Allein durch die Konfiguration auf SDK-Seite können Sie Trace-Daten des CLI-Prozesses sammeln.Grundlegende Verwendung
Tracing für den CLI-Prozess aktivieren
Ergänzen Sie die Telemetry-Konfiguration inconfig/copilot.php oder geben Sie sie direkt als Option an.
Optionen von TelemetryConfig
| Option | Beschreibung |
|---|---|
otlpEndpoint | URL des OTLP-HTTP-Endpunkts |
filePath | Dateipfad für die JSON-lines-Trace-Ausgabe |
exporterType | "otlp-http" oder "file" |
sourceName | Name des Instrumentierungs-Scopes |
captureContent | Ob Nachrichteninhalte (Prompts, Antworten) erfasst werden |
W3C-Trace-Context-Propagation
Für die meisten Nutzer ist diese Funktion nicht erforderlich. Bereits mit der obigen
TelemetryConfig werden CLI-Traces gesammelt. Das Folgende ist eine erweiterte Funktion, wenn Sie auf Anwendungsseite eigene OpenTelemetry-Spans erzeugen und im selben Distributed Trace wie die CLI-Spans anzeigen möchten.session.create, session.resume und session.send automatisch den W3C-Trace-Context (traceparent/tracestate).
Automatische Propagation (empfohlen)
Sie installieren lediglich das Paketopen-telemetry/api, dann wird der Trace-Kontext automatisch weitergegeben.
Benutzerdefinierter Provider
Wenn Sie eine eigene Logik zur Ermittlung des Trace-Kontexts verwenden möchten:SDK → CLI (Outbound)
traceparent/tracestate werden automatisch in folgende RPC-Aufrufe injiziert.
session.create— Beim Erstellen einer Sessionsession.resume— Beim Fortsetzen einer Sessionsession.send— Beim Senden einer Nachricht
CLI → SDK (Inbound)
Wenn die CLI ein Tool aufruft, ist im Array$invocation des Tool-Handlers der Trace-Kontext enthalten.
open-telemetry/api installiert, wird der OpenTelemetry-Kontext während der Tool-Handler-Ausführung automatisch mit dem CLI-Span verknüpft. Ein expliziter Umgang mit traceparent ist nicht nötig.
Abhängigkeiten
| Paket | Zweck |
|---|---|
open-telemetry/api | Automatische Trace-Kontext-Weitergabe (suggest, optional) |
open-telemetry/sdk | Export der Trace-Daten |
open-telemetry/api ist im suggest-Bereich der composer.json gelistet. Auch ohne diese Installation funktioniert das SDK selbst einwandfrei.
Aktuelle Informationen finden Sie im GitHub-Repository.