LLM Observability
LLM を組み込んだアプリの 1 リクエストをトレースとして記録し、モデル呼び出しごとの入出力・トークン・遅延・エラーを追い、応答の品質を評価で数値にする機能です。課金の対象はモデル呼び出しを表す LLM スパンだけです。
何ができるか
チャットボットのような LLM アプリが受けた 1 リクエストを 1 本のトレースにし、その中のモデル呼び出し (LLM スパン) と、周りのツール呼び出しや前処理 (Tool / Task / Retrieval などのスパン) を親子関係で記録します。各スパンには入力と出力、トークン数、遅延、エラーが付き、評価 (Evaluations) で応答の品質や安全性を点数化して同じトレースに紐づけます。
どのような場面で使うか
「回答が遅い」という苦情が、モデルの応答時間なのか、その前の検索 (Retrieval) なのかを切り分けたいとき。トークン消費の急増をモデル別 / プロバイダー別に追いたいとき。入出力に個人情報が混ざっていないか、利用者の言語と違う言語で答えていないかを、本番のトラフィックで継続的に確かめたいときに使います。
身近な例え
通訳を挟んだ商談の議事録です。通訳 (LLM) に何を伝え、何が返ってきたか、そのやり取りに何秒かかり、通訳料 (トークン) がいくらだったかを発言ごとに残します。さらに第三者 (評価) が訳の正確さや不適切な発言の有無を後から採点し、議事録の同じ行に書き込んでいきます。
結論 - 数えるのはモデル呼び出しだけ
最初に押さえるべきは課金の数え方です。課金対象は LLM スパン、つまりモデル呼び出しを表すスパンだけで、周りのツール呼び出し (tool) やワークフロー (workflow)、検索 (retrieval) のスパンは対象外です (2026 年 8 月時点・出典: Datadog Pricing の FAQ)。1 リクエストの中でモデルを 1 回呼び、その前後で検索とツール呼び出しを 5 回行うアプリでも、数えられるのは 1 スパンです。周りの処理を細かくスパンに分けても料金は変わらないので、切り分けのためにトレースを詳しくすることをためらう理由がありません。名称にも 1 点注記します。公式ドキュメントのこの製品のページは 2026 年 9 月時点で「Agent Observability」の見出しで掲載されており、料金ページの SKU 名は「LLM Observability」のままです (出典: Agent Observability)。本記事は料金ページの名称で統一します。
APM のスパンと何が同じで、何が違うか
APM のスパンは「サービスの中の 1 処理」を表し、HTTP リクエストや DB クエリのような処理の種類は自動で決まります。LLM Observability のスパンも親子関係で 1 本のトレースを組む点は同じですが、スパンに「種別 (span kind)」という属性があり、その処理が LLM アプリの中で何の役割かを表します。公式ドキュメントが挙げる種別は 7 つです (2026 年 9 月時点・出典: Terms and Concepts)。
| 種別 | 表すもの | トレースの根 (ルート) になれるか | 課金対象か |
|---|---|---|---|
| LLM | モデルへの 1 回の呼び出し | なれる | 対象 |
| Workflow | LLM 呼び出しとその前後の処理を含む、決まった手順 | なれる | 対象外 |
| Agent | 自律的なエージェントが下す一連の判断と操作 | なれる | 対象外 |
| Tool | LLM が生成した引数で外部のプログラムやサービスを呼ぶ処理 | なれない | 対象外 |
| Task | 外部サービスを呼ばない単独の処理 (前処理など) | なれない | 対象外 |
| Embedding | 埋め込みベクトルを返すモデルや関数の呼び出し | なれない | 対象外 |
| Retrieval | 外部の知識ベースからデータを取り出す処理 | なれない | 対象外 |
APM が「どのサービスのどの処理が遅いか」を答えるのに対し、この種別が答えるのは「遅いのはモデルの応答か、その前の検索か、ツール呼び出しか」です。同じトレースという器を使いながら、問いの単位がサービスから LLM アプリの工程に変わります。
1 本のトレースには 3 つの形がある
トレースの組み方は、根になるスパンの種別で 3 つに分かれます。LLM スパン 1 つだけの推論トレース、Workflow スパンを根にして LLM / Task / Tool / Embedding / Retrieval のスパンを入れ子にするワークフロートレース、Agent スパンを根にしてさらに Workflow まで入れ子にするエージェントトレースです (2026 年 9 月時点・出典: Terms and Concepts)。
- 推論トレース: LLM スパン 1 つ。入出力の記録、トークン使用量 / エラー率 / 遅延の追跡、モデル別 / プロバイダー別の内訳がここで手に入る
- ワークフロートレース: 根は Workflow。URL を受けてページを取得し (Tool)、整形し (Task)、要約する (LLM) といった決まった手順を 1 本にまとめる
- エージェントトレース: 根は Agent。問い合わせに答えるチャットボットのように、エージェントの判断で手順が変わる処理を、入れ子の Workflow ごと記録する
最初の一歩は推論トレースで十分です。モデル呼び出しを 1 スパンで記録するだけで、入出力とトークンと遅延が揃います。「答えが遅い」の原因がモデルの外にあると分かった時点で、周りの処理を Tool や Retrieval のスパンとして足し、ワークフロートレースに育てます。課金対象は LLM スパンだけなので、この育て方で料金は増えません。
品質を数値にする評価は 3 つの入口を持つ
遅延とエラーは数えれば分かりますが、「答えの質」は数えられません。評価 (Evaluations) はこの穴を埋める仕組みで、個々のスパンに評価結果を紐づけ、その評価に至った入出力をスパンから直接たどれるようにします。入口は 3 つあります (2026 年 9 月時点・出典: Terms and Concepts)。
- 管理済み評価 (managed evaluations): Datadog が用意した評価を有効にする。2026 年 9 月時点の一覧は、利用者の入力と違う言語で答えた応答を検出する Language Mismatch と、入出力に機密情報や規制対象の情報が含まれていないかを検出する Sensitive Data Scanning (出典: Managed Evaluations)
- 自前の評価 (custom evaluations): 自分の基準で採点した結果を送り込み、スパンに紐づける
- 外部フレームワーク連携: NeMo のような評価フレームワークの結果を取り込む
評価とは別に、本番トラフィックの入出力を話題ごとに自動で束ねる Patterns と、直近 1 週間の遅延やエラー率の外れ値をスパン名 / ワークフロー種別 / 話題の軸で浮かび上がらせる Insights も用意されています (出典: Agent Observability)。「利用者が何を聞いているか」と「どこで質が落ちたか」を、個別のログを読まずに掴めるのがこの層の価値です。
取り込みの経路は SDK / HTTP API / OpenTelemetry の 3 本
計装の経路は 3 本です。推奨は SDK で、Python 3.7 以上 / Node.js 16 以上 / Java 8 以上に対応し、いずれも自動計装と手動計装の両方が使えます。SDK を使えない言語や環境には HTTP API でスパンを直接送る経路があります (2026 年 9 月時点・出典: Instrumentation)。
| 経路 | 対応 | 向く場面 |
|---|---|---|
| SDK (自動計装) | Python / Node.js / Java。OpenAI / LangChain / AWS Bedrock / Anthropic などのフレームワークとプロバイダーを、コード変更なしで捕捉 | 対応フレームワークを使っていて、まず入出力とトークンを見たいとき |
| SDK (手動計装) | 同 3 言語。Workflow / Tool / Retrieval などの種別を自分で付けてスパンを作る | モデル呼び出しの前後の処理まで 1 本のトレースにしたいとき |
| HTTP API | スパンを JSON で直接送信 | SDK の無い言語、または送信を自前の基盤に寄せたいとき |
| OpenTelemetry | OpenTelemetry 1.37 以上の GenAI セマンティック規約、または OpenInference の規約に沿ったトレースを、OTLP エクスポーターの設定で Datadog SDK なしに送る | 既に OpenTelemetry で計装している組織 |
すでに OpenTelemetry で計装している組織が気にする点を 1 つ添えます。計装ページの配下には OpenTelemetry 計装の専用ページがあり、OpenTelemetry 1.37 以上の GenAI セマンティック規約か OpenInference の規約に沿ったトレースなら、Datadog SDK を使わず OTLP エクスポーターの設定だけで送れると説明されています (2026 年 9 月時点・出典: OpenTelemetry Instrumentation)。評価やプロンプト追跡など対応範囲の細部は同ページで確かめてください。
料金は LLM スパンの数だけで決まる
料金は月額の枠と、枠を超えた LLM スパンの追加課金の 2 段です。Free は月 4 万 LLM スパンまで無料、Pro は月額の中に 10 万 LLM スパンが含まれ、超えた分は 1 万 LLM スパンごとの追加単価で加算されます。Pro の月額と追加単価はいずれも年契約 / 月契約 / オンデマンドの 3 形態で異なります (2026 年 8 月時点のプラン区分・出典: Datadog Pricing)。具体的な金額は同ページで確認してください。
| プラン / SKU | 含まれる量 | 課金の形 | 主な注意点 |
|---|---|---|---|
| Free | 月 4 万 LLM スパン・保持 15 日 | 無料 | 枠を超えると Pro への移行が前提 |
| Pro (月額) | 月 10 万 LLM スパン・保持 15 日 | 月額 (年契約 / 月契約 / オンデマンド) | 枠を超えた分は追加 SKU で加算 |
| 追加 LLM スパン | 1 万 LLM スパンごと | 従量 (3 形態で単価が異なる) | ホスト数やリクエスト数ではなく LLM スパン数だけで決まる |
月 30 万回モデルを呼ぶアプリなら、Pro の枠 10 万スパンを超える 20 万スパンが追加分で、月額は「Pro の月額 + 20 × (1 万 LLM スパンあたりの追加単価)」と読めます。検索やツール呼び出しの回数は計算に入りません。逆に 1 回の質問で内部的にモデルを 3 回呼ぶ設計なら、LLM スパンは 3 倍です。APM のホスト課金とは別の SKU で、料金全体での位置は料金体系の読み解きで確かめてください。
APM で足りるか、LLM Observability が要るか
LLM を呼ぶアプリなら必ずこの製品が要る、という話ではありません。知りたいことが「モデルの API を月に何回呼び、応答に何ミリ秒かかり、何回失敗したか」までなら、APM のトレースで外部 API 呼び出しとして見えます。LLM Observability が要るのは、問いが呼び出しの中身に入るときです。
| 知りたいこと | 足りる道具 | 理由 |
|---|---|---|
| モデル API の呼び出し回数、応答時間、失敗回数 | APM | 外部 API 呼び出しのスパンとして見える |
| どのプロンプトにどう答えたか (入出力) | LLM Observability | LLM スパンが入出力を持つ |
| トークンをどの処理でどれだけ使ったか | LLM Observability | スパンごとのトークン使用量とモデル別の内訳 |
| 応答の言語違いや機密情報の混入を継続的に測る | LLM Observability | 評価 (Evaluations) がスパンに点数を紐づける |
| エージェントの判断で変わる手順を工程ごとに追う | LLM Observability | Agent / Workflow / Tool の種別で工程が分かれる |
判断の目安は、障害調査の場面を思い浮かべることです。「遅い」の調査がモデル応答時間の確認で終わるなら APM、「答えがおかしい」の調査を本番の入出力で行う必要があるなら LLM Observability です。Free の月 4 万 LLM スパンは、この判断を実測で下すための試用枠として十分な広さがあります。CPU やメモリの側から同じアプリを見る Continuous Profiler とは補完関係で、モデル待ちの時間はプロファイラには映らず、逆に埋め込み計算の CPU 負荷は LLM Observability には映りません。
注意点
- 本記事は 2026 年 9 月時点の公式ドキュメントの記載に基づいています。スパン種別、管理済み評価の一覧、対応言語は変わり得るため、実装前に公式ドキュメントの記載を確認してください。
- 本記事は課金の仕組みを解説するものです。具体的な単価や料金は Datadog 公式の料金ページで確認してください。
- 公式ドキュメント上の製品名は 2026 年 9 月時点で「Agent Observability」へ改称されています (docs: https://docs.datadoghq.com/llm_observability/)。本記事は料金ページの SKU 名である「LLM Observability」で統一しています。