AI サーバー ソフトウェア 公開日 2026.05.20 更新日 2026.05.20

LLM アプリの観測性 — トークン・コスト・ハルシネーションを計測する

LLM アプリの観測性は 普通の Web アプリの観測性 + LLM 固有のメトリクス が必要です。トークン消費・コスト・レイテンシ・ハルシネーション率・ユーザー評価を OpenTelemetry ベースで計測し、改善のフィードバックループを回す設計を整理します。

先に要点

  • LLM アプリの観測性は 普通の Web アプリの観測性 + LLM 固有のメトリクス の二段構え。「レイテンシ」 「 エラー率」 「 リソース」 に加え、トークン消費」 「 コスト」 「 ハルシネーション率」 「 ユーザー評価」 「 プロンプト内容 を計測する必要がある。
  • OpenTelemetry に GenAI セマンティック規約 が追加され、「LLM 呼び出しを標準形式で観測する仕組み」 が整いつつある。「独自実装ではなく業界標準に乗る」 のがベンダーロックインを避ける現代的アプローチ。
  • 計測すべき 5 軸: 入力 / 出力トークン数 」 「 モデル別コスト」 「 TTFT(Time To First Token)とエンドツーエンドレイテンシ」 「 ハルシネーション / 品質スコア」 「 ユーザーフィードバック(thumbs up/down)
  • LLM 観測に特化したツール: LangSmith」 「 Langfuse」 「 Helicone」 「 Phoenix(Arize)」 「 W&B Traces。「プロンプト / レスポンス / 中間ツール呼び出し」 を時系列で追える。「Datadog / Grafana」 のような汎用観測ツールも GenAI 拡張を追加中。
  • 運用上の注意: プロンプトに含まれる機密情報マスキング」 「 大量トークンによるコスト暴発の予防(月予算 / リクエストごとの上限)」 「 ユーザーフィードバックを学習に活かす仕組み。「観測するだけで終わらず、フィードバックループに繋げる」が本質。

`LLM を組み込んだアプリを本番運用したら、「月の請求がいきなり数百万」 「 ハルシネーションでユーザークレーム頻発」 「 どこで遅いか分からない」 ── 初めて LLM アプリを動かすチームがほぼ全員ぶつかる問題です。

ざっくり言うと、LLM アプリの観測性は 普通の Web アプリ観測性に LLM 固有のメトリクスを足す 二段構えです。「普通の観測性」 については OpenTelemetry とは? で扱いましたが、LLM では トークン消費 / コスト / ハルシネーション / ユーザー評価 という追加軸の計測が必須になります。

この記事では、LLM アプリで 何を計測すべきかどのツールで計測するか計測したデータをどう改善に活かすか を実務目線で整理します。

なぜ普通の観測性だけでは足りないか

「 Datadog / Grafana / New Relic」 で十分では?と思うかもしれませんが、LLM アプリには 固有の課題があります。

コストが入力データで激変する

` 通常の API は 「リクエスト数 = コスト」 でほぼ比例」 ですが、LLM は 「1 リクエストあたりのトークン数」 で 100 倍の差が出る。「プロンプトテンプレートを変えただけで月コストが 10 倍」 のような事故が頻発する。「トークン数の計測」 が必須。

出力品質が変動する

「 LLM は同じ入力でも違う出力を返す」 確率的な性質。「ハルシネーション(嘘の生成)」 「 品質の劣化(モデルアップデートで急に弱くなる)」 が起きるので、出力品質を継続観測する 必要がある。

レイテンシの内訳が複雑

「 LLM 呼び出しのレイテンシ」 は 「推論時間 + ネットワーク + キューイング」 の合計。ストリーミング応答だと 「TTFT(最初のトークンまでの時間)」 と 「全体の完了時間」 が別指標 になる。「普通の HTTP レイテンシ計測では情報不足」。

プロンプトとレスポンスを記録したい

「 何を入れたら、何が返ったか」 を後から追えないと、「なぜハルシネーションが起きたか」 が分析できない。プロンプト / レスポンスを構造化ログとして保存 が必須(機密情報マスキング付き)。

計測すべき 5 軸

LLM アプリで観測する 追加メトリクスを 5 つに整理します。

具体的なメトリクス 何を見るか
トークン消費 入力トークン数、出力トークン数、合計トークン数 「 リクエストごと」 「 ユーザーごと」 「 機能ごと」 の消費を把握
② コスト モデル別 単価 × トークン数 = コスト」 「 どの機能 / どのユーザー / どのプロンプト」 が高コストか
③ レイテンシ TTFT(Time To First Token)、全体完了時間、推論時間 「 ストリーミング」 と 「非ストリーミング」 を別指標で
④ 品質 ハルシネーション率、ファクト チェック評価、ユーザー評価(thumbs up/down) 「 出力の質が時間で劣化していないか」 「 ユーザー満足度」
プロンプト / レスポンス 実際の入出力テキスト(マスキング済み) 「 なぜこの出力になったか」 を追跡可能に

「普通の観測性メトリクス(エラー率、CPU、メモリ)」 と組み合わせて、「LLM アプリ固有の異常」 を捉えるのが本質。

OpenTelemetry GenAI セマンティック規約

「 LLM 観測も標準化されつつある」 のが 2026 年時点の状況。OpenTelemetry に GenAI セマンティック規約が追加されました。

標準属性

「 gen_ai.system(プロバイダ名:openai / anthropic / aws-bedrock)」 「 gen_ai.request.model(モデル名)」 「 gen_ai.usage.input_tokens」 「 gen_ai.usage.output_tokens」 「 gen_ai.response.finish_reasons」 などの 標準属性が定義済み

SDK レベルの計装

OpenAI SDK」 「 Anthropic SDK」 「 LangChain」 「 LlamaIndex」 など主要ライブラリが OpenTelemetry 計装を組み込みSDK 呼び出しが自動で span として記録され、トークン使用量も自動収集

ベンダーロックイン回避

「 計装は OTel 標準」 で書いておけば、「Datadog / Grafana / LangSmith / Langfuse / Phoenix 」 などどのバックエンドにも送れる。LLM 観測ツールを試して合わなければ別ツールに切り替え が容易。

採用状況

「 Datadog」 「 Grafana」 「 New Relic」 「 Honeycomb」 などが既に GenAI セマンティック規約に対応。普通の APM 画面で LLM 呼び出しを追える ようになっている。

LLM 観測に特化したツール

汎用観測ツールに加え、LLM 観測に特化したツールも成熟。プロンプト / レスポンスを時系列で追える UI を提供。

ツール 特徴 典型用途
LangSmith(LangChain) LangChain と統合された観測 + 評価プラットフォーム LangChain ベースのアプリ開発
Langfuse OSS、セルフホスト可能、UI が洗練 「 データを自社で持ちたい」 組織
Helicone プロキシ型(LLM API の前段に立つ)、計測 + キャッシュ 「 既存コードを書き換えずに観測を入れたい」
Phoenix(Arize) OSS、ハルシネーション検出 / RAG 評価が強い RAG パイプラインを使うアプリ
W&B Traces(Weights & Biases) ML / LLM の実験管理と統合 研究開発寄り、A/B テスト多用
Datadog / Grafana / Honeycomb 汎用観測ツール、GenAI 拡張対応 既存の APM と統合したい

「専用ツール vs 汎用ツール」 の選択は、「観測したい深さ」 と 「組織の標準ツール」 のバランスで決まる。「既に Datadog で全体を観測している組織」 は Datadog の GenAI 拡張、「LLM アプリ開発が中心」 なら LangSmith / Langfuse がはまる。

コスト暴発を防ぐ仕組み

LLM 観測の 最大の実用的価値はコスト管理。具体的な仕組みを整理します。

月予算アラート

Anthropic / OpenAI コンソール」 で 月予算上限 + 警告閾値(80%) を必ず設定。「予算を超えたら API が止まる」 設計にしておく。設定し忘れると突発的なバズで請求が桁違いに伸びる

リクエストあたりのトークン上限

「 max_tokens」 をリクエストごとに明示。「デフォルトの 4000 トークン」 でも 「1 リクエスト数十円」 になる。用途別に適切な上限を設定(チャットなら 1000、要約なら 500、など)。

ユーザー単位のレート制限

「 1 ユーザーあたり 1 日 N リクエスト」 のレート制限レートリミット で実装。「無料ユーザーは制限厳しめ」 「 課金ユーザーは緩め」 のような 段階制限

プロンプトキャッシング

Anthropic / OpenAI のプロンプトキャッシング機能」 を活用。「同じシステムプロンプト」 や 「同じ大きい文書」 をキャッシュすると、キャッシュ部分のトークンコストが大幅減Anthropic は最大 90% 削減可能。

ハルシネーション検出

「LLM が嘘の情報を生成」 を検出する仕組みも観測の重要要素。

ファクトチェックエージェント

` 別の LLM が 「この回答に事実誤認はないか」 を評価」 する仕組み。「複数の LLM の合意度」 や 「引用根拠の妥当性」 をスコア化。「Phoenix」 「 RAGAS」 などのツールが提供。

RAG の引用元検証

` RAG(Retrieval-Augmented Generation)で 「回答に含まれる事実が、検索した文書に含まれているか」 を検証」。文書に無い事実を作っていないか を自動チェック。

ユーザーフィードバック

「 各回答に thumbs up / down ボタン」 を付け、` ユーザーが 「これ違うんだけど」 と感じた回答を捕捉」。「down が多い質問パターン」 を分析してプロンプトや RAG を改善。

人間レビューサンプリング

「 全レスポンスの一定割合(1%)を人間がレビュー」 して、「ハルシネーション率の実測値」 を持つ。「機械的検出だけでは見つからない問題」 を人間が捕捉。品質低下を早期発見

プロンプト / レスポンスの保存とプライバシー

「 プロンプト / レスポンスをログに残す」 と 個人情報機密情報が記録されるリスクがあるので、「保存時の設計」 が重要。

マスキング

「 メールアドレス」 「 電話番号」 「 クレジットカード」 「 住所」 などを 保存前にマスキング。「サニタイズ」 の発想と同じ。Presidio(Microsoft OSS)」 「 各社の PII 検出 API が利用可能。

保存期間の制限

「 30 日後に自動削除」 のような保存期間ポリシー。必要以上に持たない ことで漏洩時の影響を最小化。S3 のライフサイクル を活用。

アクセス制御

「 プロンプト / レスポンスログにアクセスできる人を限定」。「 IAM ロール + 監査ログ」 で 「誰が見たか」 を追えるように。

サンプリング

` 全リクエストではなく、「一定割合を保存」 で容量とプライバシーリスクを抑える」。「エラー時 / 評価 down 時 / ハルシネーション疑い時は 100% 保存」 のような選択的サンプリング。

フィードバックループ ── 観測を改善に繋げる

「観測するだけで終わらず、改善に繋げる」 のが本質。

読み込み中...

「観測 → アラート → レビュー → 改善 → A/B → 振り返り」 のループを回すことが、「LLM アプリを本番運用で安定させる」 唯一の道です。

LLM 観測性に関するよくある質問

Q. 観測ツールはどれを選ぶべき?

A. 既存の APM があれば、その GenAI 拡張から始める のが楽。「Datadog / Grafana」 を使っているならまずそれを試す。「LLM 開発が中心」 なら LangSmith / Langfuse が高機能で UI も洗練。「プロキシ型で既存コード変えず観測したい」 なら Helicone。「 OpenTelemetry で計装」 しておけばツール切替が楽。

Q. トークン課金を予算管理する一番確実な方法は?

A. プロバイダ側の月予算上限機能 + アプリ側のリクエスト数制限 + ユーザー単位レート制限」 の三段構え。「どれか 1 つでは突発バズを防げない」。「 月予算到達で API が止まる」 設定が最後の砦。

Q. プロンプトの内容を保存していいですか?

A. マスキング + 保存期間制限 + アクセス制御」 を前提に保存。「機密情報を含む可能性がある場合は、保存前に PII 検出してマスキング」 する。「保存期間は 30〜90 日を目安に短く設定」。プライバシーポリシーに保存する旨を明示

Q. ハルシネーション率はどうやって測る?

A. 完全自動測定は困難、「サンプリング + 人間レビュー + LLM-as-judge」 の組み合わせ。「Phoenix」 や 「RAGAS」 のような評価ツールで 「 RAG 引用の妥当性」 を自動評価できる。「人間レビューで月数十件サンプリング」 で実測値を持つのが信頼性確保の現実解。

Q. ストリーミング応答の観測はどう違う?

A. TTFT(Time To First Token)を別指標として計測ストリーミングでは 「全体完了時間」 が長くても TTFT が早ければ UX 良好」 という特性がある。OpenTelemetry の span で 「first_token_at」 属性を記録」 する設計が定石。

Q. RAG のパフォーマンスはどう観測?

A. 検索フェーズと生成フェーズを別 span に分ける。「Retrieval Time(検索時間)」 「 Retrieved Documents(取得文書数 / 関連性スコア)」 「 Generation Time(生成時間)」 を別々に記録。検索が悪いから回答が悪い vs 生成が悪い を切り分けられる。

Q. プロンプト改善のための A/B テストはどう設計?

A. ユーザーセグメント分割 + メトリクスの比較。「プロンプト A は 50% ユーザー、プロンプト B は 50% ユーザー」 で配信し、「 品質スコア / トークン消費 / ユーザー評価」 を比較。LangSmith / W&B Traces のような実験管理ツールで、「複数バージョンの並列比較」 が楽になる。

まとめ

LLM アプリの観測性は 普通の Web アプリ観測性 + LLM 固有メトリクス の二段構えです。「トークン消費 / コスト / レイテンシ / 品質 / プロンプト」 を計測し、「コスト暴発 / ハルシネーション / 品質劣化」 を早期発見する仕組みが、本番運用の必須条件になります。

「OpenTelemetry の GenAI セマンティック規約に乗る」 のが、「ベンダーロックイン回避 + 業界標準化」 の現代的アプローチ。「LangSmith / Langfuse / Helicone のような専用ツール」 と 「Datadog / Grafana のような汎用 APM」 を組織のスタックに合わせて選び分ける。「観測するだけで終わらせず、毎週レビュー → 改善 → A/B → 月次振り返り」 のループを回すことが、LLM アプリを本番で安定運用する唯一の道です。

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。