コンテンツにスキップ

Claude Code 向けエンタープライズ OpenTelemetry を構成する

Claude Code の OpenTelemetry エクスポートは、ガバナンス下のフリートにとっての 認可された観測経路です。プラン制限の対象ではなく、セッションに帰属するテレメトリを 運び、managed settings 層によってすべての開発者に対して有効化できます — しかも何も プロキシしません。本ページは Connect Claude Code の 上に重ねる エンタープライズ 構成です。フリート全体に何を設定するか、各設定が何を もたらすか、そしてそれがどのような責務を生むかを扱います。以下のキー名とセマンティクスは Claude Code 自身のドキュメントに対して 2026-06-10 に検証済みです(クライアント 2.1.17x)。 新しいものをエンコードする前にそこで再確認してください — 急速に変化します。

設定もたらすもの生じる責務
managed テレメトリ envすべてのセッションがあなたのコレクターへ OTLP をエクスポート — 開発者自身の構成に左右されない観測なし — 既定で構造的テレメトリ
OTEL_RESOURCE_ATTRIBUTESすべてのメトリックデータポイントおよびイベントレコード に組織定義のラベル(チーム、プロジェクト、コストセンター)が付く。control plane がそれらを FinOps の支出次元へルーティングするラベル値を機微でないものに保つこと。コネクタが許可リスト化しスクラブする
トレーシング betaclaude_code.llm_request / claude_code.tool スパンが agent_id / parent_agent_id を運ぶ — アクセスグラフ内の インスタンス単位のサブエージェント階層beta 面: アップグレード時に検証すること
OTEL_LOG_TOOL_DETAILS=1ツールイベントに tool_parameters を付与 — 拒否されたツール判定で どのコマンドが拒否されたか を含むツール入力がホスト外へ出る: あなたが負うべきレジデンシー/秘匿化の責務
OTEL_METRICS_INCLUDE_ENTRYPOINT=trueapp.entrypoint(cli / sdk-ts / claude-vscode …)— 各セッションを起動した面なし(低カーディナリティのラベル)

ステップ 1 — managed 層からエクスポートを有効化する

Section titled “ステップ 1 — managed 層からエクスポートを有効化する”

managed settings ポリシーでテレメトリ env を記述します(managed-settings コネクタの TelemetryEnv ヘルパーがまさにこの態勢をレンダリングします)。テレメトリを 有効化し、OTLP エクスポーターを control-plane のコレクターに向け、メトリックとログの 両方をエクスポートします。完全な変数リファレンスは Claude Code 自身の監視ドキュメントに 委ねてください — ここから値を手書きでコピーしないこと。

コンテンツのキャプチャ(プロンプト、ツール本体)はオプトインしない限り オフ のままです — そして control-plane コネクタは、クライアントが何を発しようとも、独立して構造データのみを 保持します。

ステップ 2 — FinOps 向けにフリートをラベル付けする

Section titled “ステップ 2 — FinOps 向けにフリートをラベル付けする”

同じ managed env 内で OTEL_RESOURCE_ATTRIBUTES を、厳密な W3C Baggage 形式で 設定します(値をパーセントエンコードし、スペースや引用符を入れない):

OTEL_RESOURCE_ATTRIBUTES=team=payments,project=atlas,cost_center=cc-42

クライアント 2.1.161 以降、これらの値は OTLP リソースブロックだけでなく すべてのメトリックデータポイントおよびイベントレコード に乗ります — そしてカスタム キーは標準属性を決して上書きしません。control plane 側では、honor するキーを claude コネクタの resource_labels 許可リストに列挙します。コネクタは値をスクラブし、セッションの アイデンティティエッジおよびすべてのコストサンプルにラベルとして付与します。FinOps は teamproject を第一級の支出次元に昇格させるため、「Claude Code の支出をチーム単位で 切り分ける」がエンドツーエンドで機能します。許可リストにないキーは破棄されます — 既定で最小データです。

ステップ 3 — サブエージェント階層(トレーシング beta)

Section titled “ステップ 3 — サブエージェント階層(トレーシング beta)”

スパンを得るには、managed env で拡張テレメトリ beta とトレースエクスポーターを有効化します。 サブエージェントのアイデンティティ属性(agent_idparent_agent_id)は スパン専用 です — いかなるメトリックにもログイベントにも現れません — そして claude_code.llm_request (2.1.139 以降)と claude_code.tool(2.1.145 以降)のスパンに存在します。コネクタは それらをアクセスグラフへ次のようにマッピングします:

  • session → identity.subagent — 行為した インスタンス のサブエージェント、および
  • parent agent → identity.subagent誰がそれを生成したか(メインセッションが直接 生成したエージェントでは欠落)。

これが、同じ型の 2 つの並行サブエージェントを区別可能にするものです — Agent ツールの subagent_type だけでは型ラベルであり、インスタンスではありません。

ステップ 4 — 任意の忠実度設定

Section titled “ステップ 4 — 任意の忠実度設定”
  • OTEL_LOG_TOOL_DETAILS=1 はツールイベントに tool_parameters を追加します — 拒否されたツール判定でも(2.1.157 以降)。そのため拒否の finding が、ブロックされた サニタイズ済みコマンドを名指しできます。コネクタは取り込み時に入力を秘匿化された リソース参照に縮約し、決して生のまま保存しません。ただし値は開発者のホスト外へ 出るため、これを有効化することは意図的なレジデンシー判断です。
  • OTEL_METRICS_INCLUDE_ENTRYPOINT=true はすべてのメトリックとイベントに app.entrypoint を追加します(既定でオフ)。コネクタはこれをセッショントポロジーとして 記録します — SDK 埋め込みのフリートは、対話的な CLI 利用とは異なるリスク態勢を持ちます。
  • 未認証のループバック取り込み。 協調レシーバーは既定でループバックにバインドし、 そこに留まらなければなりません。到達可能なものは何でもテレメトリを偽造できます (Connect Claude Code を参照)。
  • サブプロセスはカバーされない。 OTEL_* は Bash/フック/MCP サブプロセスに届きません。 トレーシング下では TRACEPARENT のみが継承されます。
  • admin-plane フィードはサードパーティプロバイダーを見られない。 Claude Code Analytics API は Claude API 上の使用量のみを追跡します — Claude Platform on AWS、 Microsoft Foundry、Amazon Bedrock、Gemini Enterprise Agent Platform (formerly Vertex AI) は含まれません。これらの面のフリートでは、 この OTel 経路があなたの持つ唯一の観測 であり、admin フィードのシャドウ認証 ディテクターはそれらをクリアできません。
  • ここでのコスト数値は推定値。 リクエスト単位のコストテレメトリは、権威ある コストレポートに対して照合されます。セッションあたりのコストの出典は 1 つであり、 決して両方ではありません。