はじめに
2026年10月14日、Anthropicは OpenTelemetryエクスポート をベータ版として公開しました。Messages APIへのリクエストと、Claude Managed Agentsのセッションを、自社が使っているオブザーバビリティ基盤からトレースできるようになります。
Claude SDKは Python / TypeScript / C# / Go / Java / PHP / Ruby の7言語 でクライアント側のスパンを出力します。
LLMアプリやエージェントは、「どの呼び出しが遅いのか」「どのステップで失敗したのか」が見えにくくなりがちです。OpenTelemetry(OTel)という標準規格でトレースを取得できれば、既存の監視基盤にLLM呼び出しを載せて、他のサービスと同じ画面で調査できます。
📌 影響を受ける人
- Messages APIを本番サービスで使っていて、レイテンシや失敗の原因を追いたい人
- Claude Managed Agentsでエージェントを運用している人
- Python / TypeScript など7言語のClaude SDKを使っている開発者
- 既にOpenTelemetry対応の監視基盤を持つSRE・プラットフォームチーム
なお、本機能はベータ版です。仕様が変わる可能性があるため、本番導入の際は公式ドキュメントで最新情報を確認してください。
変更の全体像
トレースは「クライアント側(SDK)」と「API側」の2系統から出ます。これらを組み合わせることで、エンドツーエンドの可視化ができると考えられます。
変更内容
| 項目 | 内容 |
|---|---|
| 機能名 | OpenTelemetryエクスポート |
| ステータス | ベータ |
| 公開日 | 2026年10月14日 |
| 対象 | Messages APIのリクエスト、Claude Managed Agentsのセッション |
| SDKのスパン出力 | Python、TypeScript、C#、Go、Java、PHP、Ruby の7言語 |
| API側スパンの受信 | Claude ConsoleでOpenTelemetryの送信先(destination)を追加する |
| 対象モデル | 特に限定なし(モデル固有の変更ではない) |
ポイント
- 2種類のスパン: SDKが出すクライアント側スパンと、API側のスパンがあります。
- API側スパンには設定が必要: Claude Consoleで送信先(destination)を追加しないと、API側のスパンは受け取れません。
-
既存コードの破壊的変更ではない: 今回は新機能の追加で、
action_requiredは false です。使わなくても既存の動作は変わりません。
💡 Tips
SDK側のスパンだけでも「アプリから見た呼び出し時間」は追えると考えられます。一方、API側のスパンと組み合わせることで、エージェント実行やAPI呼び出しを一貫して見られるようになります。まずSDK側から試し、次にConsoleで送信先を追加する、という段階的な導入が現実的です。
影響と対応
こんな人は検討する価値があります
| ユースケース | 期待できること |
|---|---|
| 本番のチャット/RAGサービス | Claude呼び出しを含むリクエスト全体の遅延ボトルネック特定 |
| Managed Agentsでの自動化 | セッション内の各ステップの追跡、失敗箇所の切り分け |
| マイクロサービス構成 | 既存サービスのトレースにClaude呼び出しを接続 |
| 複数言語のチーム | 7言語で同じ形式のトレースを取得 |
導入判断フロー
取るべきアクション
- 自分の利用言語を確認: Python / TypeScript / C# / Go / Java / PHP / Ruby のいずれかか確認します。
- SDKのバージョンを確認: スパン出力に対応するバージョンや有効化方法は、公式ドキュメントで確認してください(今回の提供データには記載がありません)。
- Claude Consoleで送信先を追加: API側のスパンが必要な場合のみ設定します。
- ベータである前提で運用: まずは開発・ステージング環境で試し、仕様変更に備えます。
- プロンプトや出力の扱いを確認: トレースに何が含まれるかは、ログ保管やプライバシー方針に関わります。含まれる属性の詳細は公式ドキュメントで確認してください。
💡 Tips
CLAUDE.mdにオブザーバビリティ方針を書いておくと、チームやAIコーディングエージェントが同じ前提で作業できます。例: 「OpenTelemetryエクスポート(ベータ)はMessages APIとManaged Agentsのセッションが対象。SDKは7言語でスパンを出力。API側のスパンはConsoleで送信先設定が必要」。
コード例
⚠️ 注意
提供された情報には、SDKでのスパン有効化方法や設定キー、Consoleの具体的な画面操作は含まれていません。そのため、確定した実装コードは掲載しません。以下は、一般的なOpenTelemetry(Python)の準備コードで、受け皿(Collector側)の用意を示す例です。Claude SDK固有の有効化手順は公式ドキュメントを参照してください。
一般的なOpenTelemetryの初期化例(Python)
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
# 自社のオブザーバビリティ基盤(OTLP対応のCollector等)への送信設定
provider = TracerProvider()
provider.add_span_processor(
BatchSpanProcessor(
OTLPSpanExporter(endpoint="http://localhost:4318/v1/traces")
)
)
trace.set_tracer_provider(provider)
tracer = trace.get_tracer("my-llm-app")
# アプリ側の処理を親スパンで囲むと、SDKのスパンと関連づけやすくなる
with tracer.start_as_current_span("handle-user-request"):
... # ここでClaude SDK経由でMessages APIを呼び出す
Before / After(運用イメージ)
| Before | After | |
|---|---|---|
| 可視性 | 自前ログ中心で、呼び出し単位の追跡が手作業 | 既存のOTel基盤でトレースを確認 |
| エージェント調査 | セッションの内部が見えにくい | Managed Agentsのセッションをトレース |
| 言語対応 | 言語ごとに計測方法がバラバラになりがち | 7言語のSDKがスパンを出力 |
まとめ
- 2026年10月14日、OpenTelemetryエクスポートがベータで公開されました。
- 対象は Messages APIのリクエスト と Claude Managed Agentsのセッション です。
- Claude SDKは7言語(Python / TypeScript / C# / Go / Java / PHP / Ruby)でクライアント側スパンを出力します。
- API側のスパンを受け取るには、Claude ConsoleでOpenTelemetryの送信先(destination)を追加する必要があります。
- SDK側とAPI側のスパンを組み合わせると、エージェント実行やAPI呼び出しをエンドツーエンドで可視化できると考えられます。
- 既存コードへの破壊的変更はなく、必須の対応はありません。まずは開発環境で試し、ベータ版の仕様変更に備えるのがおすすめです。
LLMアプリが本番に乗るほど、「見えること」は品質と運用コストに直結します。既にOpenTelemetry基盤を持っているチームは、まずSDK側のスパンから試してみてください。