OpenTelemetry LLM計装(オープンテレメトリーエルエルエムケイソウ)
OpenTelemetry(OTel)のセマンティックコンベンションを LLM コール向けに拡張し、プロンプト・トークン消費・モデルパラメータ・レイテンシを標準スパン属性として記録する計装規格。ベンダー中立で複数のオブザーバビリティバックエンドにトレースをエクスポートできる。
OpenTelemetry LLM計装とは
OpenTelemetry LLM 計装は、CNCF 傘下の OpenTelemetry(OTel)プロジェクトが定義する LLM アプリケーション向けのトレーシング・メトリクス収集規格です。ベンダー中立のオープン標準として、あらゆる LLM プロバイダの API コールを統一的なスパン属性で記録し、既存の OTel エコシステム(Jaeger・Grafana Tempo・Datadog・New Relic 等)にエクスポートできます。
GenAI セマンティックコンベンション
OpenTelemetry は gen_ai.* 名前空間で LLM 固有のスパン属性を定義しています。
| 属性名 | 型 | 説明 |
|---|---|---|
| gen_ai.system | string | LLMプロバイダ名(openai / anthropic / aws.bedrock) |
| gen_ai.request.model | string | リクエストしたモデル名 |
| gen_ai.response.model | string | 実際に応答したモデル名 |
| gen_ai.request.max_tokens | int | リクエスト時の max_tokens 設定 |
| gen_ai.request.temperature | float | サンプリング温度 |
| gen_ai.usage.input_tokens | int | 入力トークン数 |
| gen_ai.usage.output_tokens | int | 出力トークン数 |
| gen_ai.response.finish_reason | string | 終了理由(stop / length / tool_calls) |
これらの属性により、異なる LLM プロバイダ間でもトークン消費やレイテンシを横断的に比較・集約できます。
自動計装ライブラリ
OpenTelemetry コミュニティは主要な LLM SDK 向けの自動計装ライブラリを開発・公開しています。
| ライブラリ | 対象 SDK | インストール |
|---|---|---|
| opentelemetry-instrumentation-openai | OpenAI Python SDK | pip install opentelemetry-instrumentation-openai |
| opentelemetry-instrumentation-anthropic | Anthropic Python SDK | pip install opentelemetry-instrumentation-anthropic |
| opentelemetry-instrumentation-bedrock | AWS Bedrock SDK | pip install opentelemetry-instrumentation-bedrock |
| opentelemetry-instrumentation-langchain | LangChain | pip install opentelemetry-instrumentation-langchain |
| opentelemetry-instrumentation-llamaindex | LlamaIndex | pip install opentelemetry-instrumentation-llamaindex |
自動計装は既存コードを変更せずに計装を追加でき、instrument() 呼び出し一行で全 LLM API コールがトレース対象になります。
OTel Collector との統合
収集したトレースは OpenTelemetry Collector を経由して任意のバックエンドにエクスポートします。
アプリ → OTel SDK → OTel Collector → Jaeger / Grafana Tempo / Datadog / Arize
→ Prometheus(メトリクス)
→ Loki(ログ)
この構成により、LLM のトレースデータを既存のインフラ監視基盤と統合し、アプリケーション全体のオブザーバビリティを実現できます。
OpenInference との関係
Arize AI 社が策定した OpenInference は、OpenTelemetry の LLM 計装を補完するセマンティックコンベンションです。OpenInference はリトリーバルやリランキングなど RAG 固有のスパンタイプをより細かく定義しており、Phoenix(Arize Phoenix)のネイティブ形式として採用されています。両者は互換性を持ち、将来的な統合が進められています。
FAQ
Q: OpenTelemetry LLM 計装は GA(正式版)?
A: 2026年時点で GenAI セマンティックコンベンションは Experimental(実験的)ステータスです。属性名や構造が変更される可能性がありますが、主要なオブザーバビリティベンダーが既にサポートを表明しており、プロダクション利用は十分に可能です。
Q: 自動計装のパフォーマンスオーバーヘッドは?
A: LLM API コール自体が数百ms〜数秒のレイテンシを持つため、OTel のスパン生成・エクスポートによるオーバーヘッド(通常1ms未満)は無視できるレベルです。バッチエクスポーターを使えばネットワーク負荷も最小化できます。
Q: プロンプト内容をトレースに含めるべき?
A: セキュリティとプライバシーの観点から、本番環境ではプロンプト内容の記録を無効化するか、PII マスキングを適用することが推奨されます。OTel の属性フィルタリング機能で特定の属性を除外できます。