Skip to main content

OpenTelemetry

Copilot CLI 內建以 OpenTelemetry 提供的追蹤功能。只要在 SDK 端進行設定,即可收集 CLI 程序的追蹤資料。

基本用法

啟用 CLI 程序追蹤

config/copilot.php 加入 telemetry 設定,或直接以選項指定。
或直接指定。
直接使用 Client 時:

TelemetryConfig 選項

W3C Trace Context 傳遞

大多數使用者不需要此功能。僅使用上述 TelemetryConfig 即可收集 CLI 的追蹤資料。以下為進階功能,適用於在應用程式端建立自訂 OpenTelemetry span,並希望與 CLI 的 span 顯示在同一分散式追蹤中的情況。
SDK 會自動將 W3C Trace Context(traceparent/tracestate)注入 session.createsession.resumesession.send 的 JSON-RPC 請求。

自動傳遞(建議)

只要安裝 open-telemetry/api 套件,追蹤 context 就會自動傳遞。
安裝後無需額外設定,應用程式 span 與 CLI span 就會連結至同一個分散式追蹤。

自訂 Provider

若要使用自訂的追蹤 context 取得邏輯:

SDK → CLI(對外)

以下 RPC 呼叫會自動注入 traceparent/tracestate
  • session.create — 建立 Session 時
  • session.resume — 恢復 Session 時
  • session.send — 傳送訊息時

CLI → SDK(對內)

當 CLI 呼叫工具時,工具處理器的 $invocation 陣列中會包含追蹤 context。
若安裝了 open-telemetry/api,工具處理器執行中的 OpenTelemetry context 會自動連結至 CLI 的 span。不需要明確使用 traceparent

依賴套件

open-telemetry/api 已列於 composer.jsonsuggest。即使未安裝,SDK 本身仍可正常運作。
最新資訊請參閱 GitHub 儲存庫
最後修改於 2026年8月2日

相關主題

Streaming Events