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?

Instana 1.0.312 新機能「Monitoring MCP Tool Usage」徹底検証ガイド

Last updated at Posted at 2026-02-02

はじめに

先日リリースされた Instana 1.0.312 (SaaS版) にて、GenAI オブザーバビリティ機能が強化され、「MCP Tool Usage (ツールの使用状況)」 のモニタリングが可能になりました。

これまでも LLM 呼び出し自体のトレースは可能でしたが、「AIが具体的にどのツール(関数)を呼び出したのか?」「そのツールの実行にどれくらい時間がかかったのか?」といった、Agent icな挙動の詳細までは可視化されていませんでした。

本記事では、この新機能を実際に検証するための手順を、ゼロから構築するステップバイステップ形式で解説します。検証には Windows 11 の WSL2 環境と、Google Gemini モデルを使用したカスタム MCP (Model Context Protocol) サーバーを使用します。

アーキテクチャ概要

今回の検証環境の構成は以下の通りです。

  • OS: Windows 11 (WSL2 Ubuntu 22.04 LTS)
  • MCP Client: Claude Desktop (Mac/Windows) ※SSHトンネル等でWSL2に接続
  • MCP Server: Python (FastMCP + Google GenAI SDK)
  • Observability: Instana Agent (Host Agent) -> Instana Backend (SaaS)

Tool Metrics とは?

従来の GenAI 可観測性では、主に「LLM へのリクエストとレスポンス」が計測対象でした。しかし、Agentic AI の時代においては、LLM が外部ツール(天気予報 API、データベース検索、画像生成など)をどう使ったかが重要になります。

Instana 1.0.312 の新機能:

  • Tool calls: ツールの呼び出し回数
  • Tool response time: ツールの応答時間(レイテンシ)
  • Erroneous tool call rate: ツールのエラー率
  • Top tools invoked: 頻繁に使用されるツールのランキング

これにより、「AI の回答が遅い原因は、実は裏で呼び出している画像生成ツールのレスポンス低下だった」といったボトルネック分析が可能になります。

セットアップ手順

1. GitHub リポジトリのダウンロード

検証用に用意した、Instana 対応済みの MCP サーバーコードをダウンロードします。

# ホームディレクトリへ移動
cd ~

# リポジトリのクローン
git clone https://github.com/GSSJacky/mcp_observability_instana_gemini.git

# ディレクトリ移動
cd mcp_observability_instana_gemini/gemini-mcp-server

2. 環境変数の設定

Gemini API キーと Instana への送信設定を行います。
Instana Agent をローカル (WSL2内) で動かしている場合の設定例です。

# Google API Key (AI Studio で取得)
export GOOGLE_API_KEY="AIzaSy..."

# 使用するモデル
export GEMINI_MODEL="gemini-2.5-flash-image"

# Instana 送信設定 (Agent経由)
export TRACELOOP_BASE_URL="http://localhost:4318"
export TRACELOOP_HEADERS="x-instana-key=YOUR_INSTANA_AGENT_KEY"
export OTEL_EXPORTER_OTLP_INSECURE="true"

3. Python 仮想環境の準備とインストール

# venv 作成と有効化
python3 -m venv venv
source venv/bin/activate

# 依存ライブラリのインストール
pip install -r requirements.txt

requirements.txt には mcp, google-genai, traceloop-sdk, opentelemetry-api などが含まれています。

4. Instana Agent の設定確認

/opt/instana/agent/etc/instana/configuration.yaml で OpenTelemetry センサーが有効になっていることを確認します。

com.instana.plugin.opentelemetry:
  enabled: true

設定変更後は Agent を再起動してください。

sudo systemctl restart instana-agent

5. MCP サーバーの起動

今回の検証の主役となる、Tool Metrics 対応版のプログラムを実行します。

python gemini_server_with_mcp_tool_metrics.py

ログに Traceloop exporting traces... が表示されれば起動成功です。


検証ステップ

Step 1: Claude Desktop からツールを実行する

Claude Desktop アプリを開き、設定した MCP サーバー(Gemini)に対して、ツール実行(Function Calling)を伴うプロンプトを投げます。

シナリオ: 画像生成 (generate_image)

「未来的な東京のサイバーパンクな街並みの画像を描いてください」

これにより、裏側で gemini_server_with_mcp_tool_metrics.py 内の generate_image 関数や ask_gemini 関数が実行されます。

Screenshot 2026-02-02 at 19.29.18.png

Gemini Nanobananaのモデルで作成したイメージ:
Screenshot 2026-02-02 at 19.30.38.png

Step 2: Instana ダッシュボードで確認

  1. Instana UI にログインし、サイドメニューから [GenAIの可観測性] (GenAI Observability) > [分析] (Analytics) を開きます。
  2. 画面上部のタブから [Tool metrics] を選択します。
  3. 検証結果が表示されていることを確認します。

確認ポイント

  • Tools: 使用したツールの種類数(例: 2)が表示されているか。
  • Top tools invoked: generate_imageask_gemini がリストアップされているか。
  • Tool response time: 画像生成のような重い処理の時間がグラフ化されているか。

screencapture-ibmdevsandbox-instanaibm-instana-io-2026-02-02-19_34_04.png

Step 3: トレース(Call)詳細での確認

[Top Tool Invoked] (Top tools) から個別のトレースをクリックし、詳細画面を開きます。
タイムライン上に generate_image.tool という名前の Span が表示されているはずです。
Screenshot 2026-02-02 at 19.35.18.png

Screenshot 2026-02-02 at 19.35.31.png


技術的な注意点とトラブルシューティング

今回の機能を有効にするにあたり、最もハマりやすいポイント(そして今回の検証で明らかになった重要事項)を共有します。

Note: Instana 独自のタグ仕様について

単に OpenTelemetry の GenAI セマンティック規約(gen_ai.operation.name 等)に従って Span を送るだけでは、Instana の Tool Metrics ダッシュボードには反映されませんでした。

Instana (および Traceloop) は、以下の特定のタグを必要としています:

  1. traceloop.span.kind = "tool"
    • これが最も重要です。この属性がないと、ただの内部スパンとして扱われ、ツールとして集計されません。
  2. traceloop.entity.name
    • ここに設定した値が、ダッシュボード上の「ツール名」として表示されます。

コード例 (Python):

with tracer.start_as_current_span(f"{tool_name}.tool") as span:
    # Instana Tool Metrics に認識させるための必須タグ
    span.set_attribute("traceloop.span.kind", "tool")
    span.set_attribute("traceloop.entity.name", tool_name)
    
    # ... ツールの実行処理 ...

「トレースは見えているのに Tool metrics が空」という場合は、このタグが付与されているかを確認してください。

まとめ

Instana 1.0.312 の Tool Metrics 機能により、AI アプリケーションの可観測性がさらに深まりました。特に Agentic なアプリケーション開発において、ツールのパフォーマンスやエラー率を個別に追跡できることは、品質向上に大きく寄与します。

ぜひこのガイドを参考に、ご自身の環境で検証してみてください。

参考資料

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?