Skip to main content

OpenTelemetry

Copilot CLI には OpenTelemetry によるトレース機能が組み込まれています。SDK 側で設定するだけで、CLI プロセスのトレースデータを収集できます。

基本的な使い方

CLIプロセスのトレース有効化

config/copilot.php に telemetry 設定を追加するか、直接オプションで指定します。
または直接指定します。
クライアントを直接使う場合:

TelemetryConfigオプション

W3C Trace Context プロパゲーション

ほとんどのユーザーにはこの機能は不要です。上記の TelemetryConfig だけで CLI のトレースを収集できます。以下はアプリケーション側で独自の OpenTelemetry スパンを作成し、CLI のスパンと同じ分散トレースに表示させたい場合の高度な機能です。
SDK は session.createsession.resumesession.send の JSON-RPC リクエストに W3C Trace Context(traceparent/tracestate)を自動的に注入します。

自動プロパゲーション(推奨)

open-telemetry/api パッケージをインストールするだけで、トレースコンテキストが自動的に伝搬されます。
インストール後は特別な設定不要で、アプリケーションのスパンと CLI のスパンが同一の分散トレースにリンクされます。

カスタムプロバイダー

独自のトレースコンテキスト取得ロジックを使いたい場合:

SDK → CLI(アウトバウンド)

以下の RPC 呼び出しに自動的に traceparent/tracestate が注入されます。
  • session.create — セッション作成時
  • session.resume — セッション再開時
  • session.send — メッセージ送信時

CLI → SDK(インバウンド)

CLI がツールを呼び出す際、ツールハンドラの $invocation 配列にトレースコンテキストが含まれます。
open-telemetry/api がインストールされている場合、ツールハンドラ実行中の OpenTelemetry コンテキストは CLI のスパンに自動的にリンクされます。明示的に traceparent を使う必要はありません。

依存関係

open-telemetry/apicomposer.jsonsuggest に含まれています。インストールされていなくても、SDK 自体は正常に動作します。
最新情報は GitHub リポジトリ を参照してください。
最終更新日 2026年4月22日