OpenTelemetry
Copilot CLI 內建以 OpenTelemetry 提供的追蹤功能。只要在 SDK 端進行設定,即可收集 CLI 程序的追蹤資料。基本用法
啟用 CLI 程序追蹤
在config/copilot.php 加入 telemetry 設定,或直接以選項指定。
TelemetryConfig 選項
W3C Trace Context 傳遞
大多數使用者不需要此功能。僅使用上述
TelemetryConfig 即可收集 CLI 的追蹤資料。以下為進階功能,適用於在應用程式端建立自訂 OpenTelemetry span,並希望與 CLI 的 span 顯示在同一分散式追蹤中的情況。traceparent/tracestate)注入 session.create、session.resume、session.send 的 JSON-RPC 請求。
自動傳遞(建議)
只要安裝open-telemetry/api 套件,追蹤 context 就會自動傳遞。
自訂 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.json 的 suggest。即使未安裝,SDK 本身仍可正常運作。
最新資訊請參閱 GitHub 儲存庫。