0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude OpenTelemetryエクスポート(ベータ)の使い方|Messages APIとManaged Agentsを可視化

0
Posted at

はじめに

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言語で同じ形式のトレースを取得

導入判断フロー

取るべきアクション

  1. 自分の利用言語を確認: Python / TypeScript / C# / Go / Java / PHP / Ruby のいずれかか確認します。
  2. SDKのバージョンを確認: スパン出力に対応するバージョンや有効化方法は、公式ドキュメントで確認してください(今回の提供データには記載がありません)。
  3. Claude Consoleで送信先を追加: API側のスパンが必要な場合のみ設定します。
  4. ベータである前提で運用: まずは開発・ステージング環境で試し、仕様変更に備えます。
  5. プロンプトや出力の扱いを確認: トレースに何が含まれるかは、ログ保管やプライバシー方針に関わります。含まれる属性の詳細は公式ドキュメントで確認してください。

💡 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側のスパンから試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?