はじめに
本記事では、IBM InstanaのModel Context Protocol (MCP) Observability機能を、Windows 11とWSL2上のUbuntu 22.04.5 LTSで検証した結果を紹介します。さらに、Claude DesktopからGemini 2.5 Flash Image(NanoBananaモデル)を呼び出し、InstanaのAPM製品を可視化した3Dアーキテクチャ画像を生成するまでの手順を解説します。
検証環境
-
クライアント環境: Windows 11
- AIアシスタント: Claude Desktop
-
サーバー環境: WSL2 (Windows Subsystem for Linux)
- OS: Ubuntu 22.04.5 LTS
- Python: 3.10+ (venv使用)
- モニタリングバックエンド: Instana SaaS
- AI Model: Gemini 2.5 Flash Image (gemini-2.5-flash-image=Gemini Nanobananaモデル)
アーキテクチャ概要
主要コンポーネント
- Claude Desktop - ユーザーインターフェース、MCPクライアント
- Gemini MCP Server - PythonベースのMCPサーバー(Traceloop SDK統合)
- Instana SaaS - エンタープライズAPM/オブザーバビリティプラットフォーム
- Gemini API - 画像生成AI
セットアップ手順
1. GitHubリポジトリのダウンロード
まず、WSL2 Ubuntu環境でGitHubからソースコードをダウンロードします:
# ホームディレクトリに移動
cd ~
# GitHubリポジトリをクローン
git clone https://github.com/GSSJacky/mcp_observability_instana_gemini.git
# プロジェクトディレクトリへ移動
cd mcp_observability_instana_gemini/gemini-mcp-server
2. Instana Agentの設定
Instana AgentでOpenTelemetry sensorを有効化します。
OpenTelemetryプラグインの有効化
Instana Agentの設定ファイル /opt/instana/agent/etc/instana/configuration.yaml を編集します:
# OpenTelemetry Collector
com.instana.plugin.opentelemetry:
# Enabled by default
enabled: true
この設定により、Instana AgentはOTEL CollectorからのデータをPort 4318で受信し、Instana Backendへ転送します。
Agentの起動確認
# Instana Agentのステータス確認
sudo systemctl status instana-agent.service
# Agentが停止している場合は起動
sudo systemctl start instana-agent.service
[!NOTE]
Instana AgentがOTLPエンドポイント(localhost:4318)でリスンしていることを確認してください。
3. Claude Desktop MCP設定
Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追加します:
{
"mcpServers": {
"Gemini_NanoBanana": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8000/mcp"]
}
}
}
4. Ubuntu環境のセットアップ
必要なパッケージのインストール
# 仮想環境の作成とアクティベート
python3 -m venv venv
source venv/bin/activate
# 依存パッケージのインストール
pip install -r requirements.txt
5. 環境変数の設定
# Google Gemini APIキー
export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY_HERE"
# 使用するGeminiモデル
export GEMINI_MODEL="gemini-2.5-flash-image"
# Instana OpenTelemetryエンドポイント(ローカルエージェント経由)
export TRACELOOP_BASE_URL="http://localhost:4318"
# Instana認証ヘッダー
export TRACELOOP_HEADERS="x-instana-key=YOUR_INSTANA_KEY_HERE"
# OTLP Insecure設定(ローカル開発用)
export OTEL_EXPORTER_OTLP_INSECURE="true"
[!WARNING]
上記のYOUR_GOOGLE_API_KEY_HEREとYOUR_INSTANA_KEY_HEREは実際のキーに置き換えてください。本番環境では、環境変数ファイル(.env)を使用し、gitignoreに追加することを推奨します。
6. MCP Serverの起動
python gemini_server.py
期待される出力:
Traceloop exporting traces to http://localhost:4318, authenticating with custom headers
INFO: Started server process [196315]
INFO: Waiting for application startup.
StreamableHTTP session manager started
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Gemini画像生成の実行
Claude Desktopを再起動して、以下のプロンプトを実行します:
Professionalイメージを作成してください:
エンタープライズ向け『APM製品:Instana』の3Dアーキテクチャ可視化。
マイクロサービス、Kubernetes、クラウド、オンプレミスを横断する可観測性を立体構造で表現し、
『アプリケーション』『サービス』『トレース』『メトリクス』『ログ』『AI分析』『ダッシュボード』などの要素を日本語ラベル付きで表示する。
IBM公式資料風の洗練されたデザイン。
生成結果
このように、Gemini 2.5 Flash Imageモデルが、Instanaの多層アーキテクチャを美しい3D可視化として生成します。
Instanaでの可観測性の確認
1. GenAIサービスの検出
Instana SaaSバックエンドでは、MCP Server(gemini-mcp-server)が自動的に検出され、GenAIサービスとして分類されます。
2. トレースの可視化
各API呼び出しがトレースとして記録され、以下の情報が取得できます:
- 呼び出しタイミング: リクエスト時刻とレスポンス時間
- スループット: エントリ数/秒
-
サービス間の依存関係:
gemini-mcp-server→ Gemini API
[!NOTE]
直接分析画面から検索する際、左下にある「Show internal calls」を選択必要があります。
3. 呼び出し詳細の分析
個々のAPI呼び出しに対して、以下が可視化されます:
- タイムライン: リクエストからレスポンスまでの処理時間
-
スパン詳細:
generate_image_taskなどの処理単位 - サービス・エンドポイント・リスト: 依存関係の全体像
4. Claude Desktopでの実行結果
Claude Desktopからシームレスに画像生成を実行でき、その裏側でInstanaが全ての通信をトレースしています。
技術的なポイント
Traceloop SDKの統合
Instanaの公式MCP observability実装では、Traceloop SDKを使用します。
from traceloop.sdk import Traceloop
# 初期化
Traceloop.init(
app_name="gemini-mcp-server",
api_endpoint=os.getenv("TRACELOOP_BASE_URL"),
headers={"x-instana-key": os.getenv("INSTANA_KEY")},
)
これにより、以下が自動でインストルメントされます:
- LLM API呼び出し: Gemini APIリクエスト
- プロンプト/レスポンス: 入力と出力のトラッキング
- レイテンシー: API応答時間の測定
エクスポートモード
Instanaは2つのエクスポートモードをサポートしています:
| モード | 説明 | 設定方法 |
|---|---|---|
| Agent Mode | ローカルのInstanaエージェント経由 | TRACELOOP_BASE_URL=http://localhost:42699/tracermetrics |
| Agentless Mode | 直接Instanaバックエンドへ送信 |
TRACELOOP_BASE_URL=http://localhost:4318 (OTLPコレクター経由) |
本検証では、Agentless Mode(OTLPコレクター経由)を使用しています。
トラブルシューティング
トレースが表示されない場合
-
環境変数の確認
echo $TRACELOOP_BASE_URL echo $TRACELOOP_HEADERS -
OTLPエンドポイントの疎通確認
curl -v http://localhost:4318/v1/traces -
ログの確認
# MCP Serverのログを確認 python gemini_server.py
サービスが表示されない場合
- Instanaがサービスを検出するには数分かかる場合があります
- 最低1回以上のAPI呼び出しが必要です
まとめ
本記事では、以下を達成しました:
✅ Windows 11 + WSL2 Ubuntu環境でInstana MCP Observabilityを構築
✅ Claude DesktopとMCP Server(Python)の統合
✅ Gemini 2.5 Flash ImageモデルによるAI画像生成
✅ Instana SaaSでのトレース・メトリクスの可視化
✅ GenAIアプリケーションの完全なオブザーバビリティの実現
この構成により、AIアシスタントのMCPバックエンドで何が起きているのか、どのAPIがどれだけの時間を消費しているのかを完全に可視化できます。エンタープライズ環境でAIアプリケーションを運用する際には、このような可観測性が不可欠です。




