GEMINI LABEN
SIRI — WWDC 2026で刷新版SiriがGoogle Geminiモデルで動くと確定。ただしEUではDMAによりiOS 27時点で提供されませんFLASH3.5 — Gemini 3.5 FlashがGA。エージェント・コーディングで持続的なフロンティア性能を発揮する最上位FlashモデルですIMAGE-GA — Gemini 3.1 Flash Image / 3.1 Pro Imageがネイティブ視覚モデルとしてGA。preview版は6/25に終了予定MANAGED-AGENTS — Gemini APIでManaged Agentsが公開プレビュー。Googleホストの隔離Linuxサンドボックスで自律エージェントを構築できますFILE-SEARCH — File Searchがマルチモーダル対応。gemini-embedding-2で画像のネイティブ埋め込み・検索が可能になりましたDEPRECATION — gemini-3.1-flash-image-preview / gemini-3-pro-image-previewは6/25に停止。GA版への移行をお早めにSIRI — WWDC 2026で刷新版SiriがGoogle Geminiモデルで動くと確定。ただしEUではDMAによりiOS 27時点で提供されませんFLASH3.5 — Gemini 3.5 FlashがGA。エージェント・コーディングで持続的なフロンティア性能を発揮する最上位FlashモデルですIMAGE-GA — Gemini 3.1 Flash Image / 3.1 Pro Imageがネイティブ視覚モデルとしてGA。preview版は6/25に終了予定MANAGED-AGENTS — Gemini APIでManaged Agentsが公開プレビュー。Googleホストの隔離Linuxサンドボックスで自律エージェントを構築できますFILE-SEARCH — File Searchがマルチモーダル対応。gemini-embedding-2で画像のネイティブ埋め込み・検索が可能になりましたDEPRECATION — gemini-3.1-flash-image-preview / gemini-3-pro-image-previewは6/25に停止。GA版への移行をお早めに
記事一覧/API / SDK
API / SDK/2026-04-25上級

Gemini API を OpenTelemetry でトレースする本番運用ガイド — 1リクエストの内側を全部見せる

Gemini API を本番投入したあと、ログだけでは追えなくなったコスト・レイテンシ・失敗の連鎖を OpenTelemetry の分散トレーシングで丸ごと可視化する方法を、Python・Node.js の実装からセマンティック規約、Grafana/Datadog 連携まで具体的に解説します。

gemini-api286opentelemetrytracing2observability5production90

プレミアム記事

Gemini API を本番アプリケーションへ投入してから3ヶ月。最初のうちはアクセスログを眺めるだけで運用できていたものの、トラフィックが増えるにつれて「夜中だけ妙に遅い」「特定ユーザーだけコストが膨らむ」「Function Calling のループが想定外の回数で回っている」といった、ログ1行では追えない問題が出てきたのではないでしょうか。私自身、個人で運用しているサービスで同じ壁にぶつかり、Cloud Logging のフィルタを書く時間より「どこで遅くなっているか」を考える時間のほうが長くなったとき、ようやく分散トレーシングの導入を決めました。

ここではGemini API を中心としたバックエンドに OpenTelemetry を組み込み、1リクエストの裏側を span 単位で全部見せる本番運用構成を、実装コードと運用ノウハウの両面から解説します。OpenTelemetry の GenAI セマンティック規約に沿うことで、Grafana Tempo・Jaeger・Datadog のどれを選んでも同じダッシュボードが組める、ベンダーロックインしない設計を目指します。

なぜ Gemini API には分散トレーシングが必要なのか

LLM を組み込んだバックエンドは、従来の Web API とは性質がかなり違います。1リクエストの中で、リトリーバ・ベクター検索・モデル呼び出し・Function Calling・後処理が直列または並列で走り、それぞれが独自の失敗モードと遅延特性を持ちます。エラー率や P95 レイテンシだけを見ていると、「全体としては問題ない」のにユーザー体験が壊れている状態を取りこぼします。

私が現場で遭遇した代表例は次のようなものです。

  • 平均レイテンシは 1.8 秒で安定しているのに、gemini-2.5-pro の長文プロンプトだけ 12 秒に張り付いて UI のスピナーが回り続ける
  • Function Calling が想定 1 ホップで終わるはずが、特定の入力で 5 ホップまでループし、トークン消費が他のリクエストの 8 倍になる
  • ベクター検索が 200ms で帰ってくる日と 4 秒かかる日があり、原因がモデルではなくリトリーバ側にあると気付くのが遅れる

これらは 「リクエスト全体の構造を可視化する道具」 がないと、推測と勘で潰すしかありません。OpenTelemetry の分散トレーシングは、1リクエストを root span とし、その下にモデル呼び出し・検索・後処理を子 span として並べることで、どこで何ミリ秒消費したかをタイムラインとして再生できる仕組みを提供してくれます。

OpenTelemetry の基本構造を Gemini 向けに整理する

まず最低限の用語を、Gemini API を使うバックエンドに即して整理します。

  • Trace: ユーザーの 1 リクエスト全体に対応する実行記録。単一の trace_id で識別される
  • Span: trace を構成する最小単位。「Gemini API 呼び出し」「Pinecone 検索」「JSON 整形」など、計測したい処理ごとに 1 つ作る
  • Context propagation: span を親子関係で繋ぐ仕組み。HTTP ヘッダ traceparent を介してマイクロサービス間にも伝播できる
  • Span attributes: span に紐づける Key-Value。トークン数・モデル名・ユーザー ID などを乗せる
  • Span events: span 内で起きた離散イベント(ストリーミング chunk 受信、ガードレール発火など)

GenAI 特有の属性キーは、OpenTelemetry の GenAI Semantic Conventions で標準化が進んでいます。代表的なものを覚えておきましょう。

  • gen_ai.system: ベンダー名(google.gemini を使用)
  • gen_ai.request.model: 要求したモデル名(gemini-2.5-pro 等)
  • gen_ai.response.model: 応答が返ってきたモデル名
  • gen_ai.usage.input_tokens / gen_ai.usage.output_tokens: トークン使用量
  • gen_ai.request.temperature / gen_ai.request.top_p 等: 生成パラメータ
  • gen_ai.response.finish_reasons: 終了理由の配列

これらを span に統一して載せておけば、後でどの可視化バックエンドに切り替えても同じクエリ・同じダッシュボードが使えます。実装ごとにキーを散らかさないことが、長く運用するうえで効いてきます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Gemini API の遅延・失敗・コスト超過の原因が分からず困っていた人が、1リクエストの裏側を span 単位で追える環境を今日構築できる
OpenTelemetry GenAI セマンティック規約に沿った span 属性の付け方と、トークン使用量・モデル選択・キャッシュヒットを一気通貫で可視化する実装パターンを習得できる
Streaming レスポンスや Function Calling の多段リクエストまで含めて、Grafana Tempo・Jaeger・Datadog APM のいずれかで運用できる構成に切り替えられる
Stripe による安全な決済 · いつでもキャンセル可能
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-04-23
Gemini API × Langfuse — LLM オブザーバビリティの本番実装ガイド
Gemini API を本番運用するチーム向けに、Langfuse を使った LLM オブザーバビリティの実装を体系的に解説します。トレース設計、コスト可視化、プロダクショントレースでの LLM-as-Judge 評価、PII マスキング、サンプリングまで動作コード付きで網羅します。
API / SDK2026-05-23
Gemini API × Sentry でLLMエラー追跡とプロンプト失敗を観測する本番運用パイプライン
Sentry のエラートラッキングと Gemini API 固有の失敗パターンを組み合わせ、プロンプト崩壊・安全フィルタ発火・トークン超過まで本番で観測する実装パイプラインを設計します。
API / SDK2026-03-30
Gemini API 本番環境のオブザーバビリティ — ログ・監視・コスト追跡の実践パターン
Gemini APIを本番運用する際に不可欠なオブザーバビリティ基盤を構築する方法を解説。構造化ログ、トークン使用量の追跡、レイテンシ監視、コスト最適化ダッシュボードまで、実装コード付きで網羅します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →