Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Instana&Bob トラブルシュートハンズオン

Instana&Bob トラブルシュートハンズオン

Avatar for 山崎政憲

山崎政憲

August 28, 2026

Other Decks in Technology

Transcript

  1. イントロダクション:ハンズオン概要紹介 一たび発生すれば、多大な時間と工数を要してしまうシステム障害。 Observabilityツール(Instana)とAI(Bob)とを組み合わせることで、この障害の解析、解決が超効率化で きることを体験いただきます。 環境構築 1 InstanaとBobを連携させた障害解析環境を 構築できるようになる。 障害の可視化・確認 2

    AI駆動の原因究明 3 AI(IBM Bob)による障害の原因究明を体 験する。 Instana × Bob ハンズオン リクエストの遅延やエラーの発生箇所を Instana UIから確認できるようになる。 AI駆動の修正 4 Bob(IBM Bob)で原因究明~コード修正ま でを体験する。
  2. アジェンダ 全体で約90分。Bobによる原因究明・修正まで行う 00:00 – 00:10(10) イントロダクション 00:10 – 00:40(30) 環境構築&確認:IBM-Bob、Instana-UI、Instana

    MCP-Bob連携、GitHubクローン 00:40 – 00:50(10) (休憩) 00:50 – 01:00(10) シナリオ1:プログラムで遅延発生 01:00 – 01:10(10) シナリオ2:Javaスレッドデッドロック検出 01:10 – 01:20(10) シナリオ3:DBデッドロック検出 01:10 – 01:30(20) まとめ・質疑応答 Instana × Bob ハンズオン 環境構築に時間がかか る可能性がありますの で、その場合は、出来 るところまで進めま しょう。
  3. 環境構築 & 確認:全体構成 今回のハンズオンで使用する環境の全体構成は以下となります。 参加者 ハンズオン用サーバ → EasyBuggy (Java /

    Tomcat) Instana MCP Server → Instanaバックエンド → GitHubリポジトリ → ブラウザ IBM Bob → ソースコード Instana × Bob ハンズオン → Instanaエージェント (ホスト常駐)
  4. 環境構築 & 確認:セットアップ済環境について 今回のハンズオンでは以下のセットアップ済み環境を使用します。 各自でアクセスできる事を確認してください。 (アクセス方法はハンズオン当日にTeamsで案内します。) EasyBuggy Instana バグ山盛りのトラブルシュート対象のWebアプリケー ション。

    EasyBuggyの稼働状況を監視するObservabilityツール。 今回は以下のバグを使ってハンズオンを行います。 1. 正規表現解析による遅延 2. デッドロック(Java) 3. デッドロック(SQL) Instana × Bob ハンズオン ✓ エージェントが対象ホスト / コンテナにインストー ル済み ✓ UIにログインでき、Applications一覧にEasyBuggy が表示されている
  5. 環境構築 & 確認:要セットアップ環境について 今回のハンズオンでは以下のセットアップを必要とします。 各自でご用意ください。 1 IBM-Bobのアクティベーション & インストール 2

    GitHubアカウントおよびリポジトリクローン 3 Python & Instana MCPサーバインストール 4 Bob & Instana連携設定 5 動作確認 Instana × Bob ハンズオン
  6. 環境構築 & 確認:IBM Bobのアクティベーション & インストール 個人利用(無料トライアル)とEnterpriseのいずれかで実施します。 個人 / 無料トライアル

    Enterprise → IBMidを作成する(既存のIBMidも利用可) → 契約後に届くアクティベーションメールのリンクか らIBM SaaSコンソールを開く → bob.ibm.com/download からOS別インストーラー( .pkg / .exe / Linux)を取得する → インストーラーを実行し、ウィザードに従ってイン ストールする(所要約5分) → 初回起動時にブラウザでIBMidによるサインインを行 い、認証完了後にBobへ戻る → Bobサブスクリプションのタイルで「Assign」をクリ ックする → 新規または既存のSaaSアカウントを選択する → リージョンとインスタンス名を入力し「Submit and provision」をクリックする → Bob管理ページ(bob.ibm.com/admin)からユーザー を追加し、ロールを割り当てる システム要件:macOS / Linux / Windows、メモリ4GB以上(8GB推奨)、空き容量500MB以上、インターネット接続が必要。 個人利用(無料トライアル)については、以下も参照ください。 「IBM Bobはじめました (無料トライアル登録とインストールの流れ)」 https://qiita.com/ayatokura/items/26a7dc7ecfa10d489902 Instana × Bob ハンズオン
  7. 環境構築 & 確認:Python および Instana MCPサーバインストール Instana MCP Serverが動作するようにセットアップします。 1

    Pythonをインストールする (3.14.7で検証済) 2 Instana MCP サーバをインストールする > pip install mcp-instana 3 Instana MCP サーバを起動する > mcp-instana --transport streamable-http 5 Instana × Bob ハンズオン このような画面がでれば、Instana MCPサーバの構築完了です
  8. 環境構築 & 確認:Instana MCPサーバーの設定手順 BobにInstana MCPサーバーを追加し、接続を確認するまでの手順を以下に示します。 1 Instanaで Settings →

    API Tokens(個人用は User Settings → Personal API Tokens)からAPIトークンを発行する (本ハンズオンではTeamsでご案内します) 2 Bobパネル右上のMCPアイコンから設定画面を開き、Project (.bob/mcp.json)またはGlobal(~/.bob/mcp.json)を選ぶ 3 右のサンプルのようにInstana MCPサーバーを追記し、 INSTANA_BASE_URLとINSTANA_API_TOKENを設定する (本ハンズオンではTeamsでご案内します) 4 保存後、サーバー名の横に緑のドットが表示されれば接続成功。 チャットで動作確認する(次頁参照) 設定例:.bob/mcp.json { "mcpServers": { "Instana MCP Server": { "command": "mcp-instana", "args": ["--transport", "stdio"], "env": { "INSTANA_BASE_URL": "https://<instance>.instana.io", "INSTANA_API_TOKEN": "<token>" } } } } Instana × Bob ハンズオン
  9. 環境構築 & 確認:GitHubアカウントの用意とリポジトリクローン 1 GitHubアカウントを作成し、以下のリポジトリをcloneしてください。 https://github.com/mayamasaki68/easybuggy4sb 2 ローカルに作業ディレクトリを用意し、cloneしたリポジトリのローカルクローンを作ります。 git clone

    https://github.com/******/easybuggy4sb 3 Bobから2のフォルダを開きます。 4 Restricted ModeではBobが使えないため、Trusted Modeに変更します。 Trustボタンをクリック 画面左下のRestricted Modeをクリック Instana × Bob ハンズオン
  10. ハンズオン実施にあたっての注意事項 ハンズオン実施中の注意事項を以下に示します。 他の参加者の邪魔にならないように、ご注意ください。 ! • EasyBuggyのJVM Crash・OutOfMemoryErrorは、実際にプロセスを停止・クラッ シュさせます。本ハンズオンではEasyBuggyは共用であるため使用しないで下さい。 • ターゲットとなるEasyBuggyはハンズオン参加者で共用することとなります。

    他の方が発生させたリクエストやエラーがInstanaで可視化されたり、Bobが検出・ 解析したりという動作が予想されますので、ご認識ください。 • 本ハンズオンの難所は「環境構築」となります。 躓いたらすぐにお知らせください。 動作する環境が構築できた他の方と進めて頂いても構いません。 • 同じ質問、依頼をしても同じ回答をBobが返すとは限りません。 内容は必ず確認をお願いします。 Instana × Bob ハンズオン
  11. プログラムで遅延発生 → ②Bobで原因究明・修正 検出した問題をBobに伝え、原因究明から修正・再検証までを行う 1 Bobに「過去1時間で⾧時間(10秒以上)を要したリクエストを調べて下さい」と依頼する 2 Bobがチャット上でInstana MCPツールを自律的に呼び出し、メトリクス/イベントを収集する 3

    Bobが遅い処理(POST /slowre)を検出する 4 Bobに「遅い原因を分析し、対策を検討してください」と依頼する (自動的に実行する可能性もあり) 5 Bobに「修正コードのプルリクエストを作成してください」と依頼する Instana × Bob ハンズオン
  12. Javaスレッドデッドロック検出 → ②Bobで原因究明・修正 検出した問題をBobに伝え、原因究明から修正までを行う 1 Bobに「デッドロックが発生しているJavaVMはありますか?」と質問する 2 Bobがチャット上でInstana MCPツールを自律的に呼び出し、JavaVMの状態を収集する 3

    Bobが3つのJavaVMから、デッドロックが発生しているJavaVM(EasyBuggy)を検出する 4 Bobに「デッドロックの原因を究明し、対策を立案してください」と依頼する (自動的に実行する可能性もあり) 5 Bobがロック順序を一致させる修正と、Sleep時間を短縮させる修正を提案するため、「ロックの 順序を同一にする修正のみ実施して、プルリクエストを作成してください」と依頼する Instana × Bob ハンズオン
  13. DBデッドロック検出 → ②Bobで原因究明・修正 検出した問題をBobに伝え、原因究明から修正・再検証までを行う 1 Bobに「直近10分間でエラーが発生したスパンを調べて下さい」と依頼する 2 Bobがチャット上でInstana MCPツールを自律的に呼び出し、メトリクス/イベントを 収集する

    3 Bobがエラーが発生したリクエスト(POST /deadlock2)を検出する 4 Bobに「エラーの原因を分析し、対策を検討してください」と依頼する (自動的に実行する可能性もあり) 5 Bobに「修正コードのプルリクエストを作成してください」と依頼する ④にて複数の修正案を提示された場合は、全ての修正案を採用するか、特定の修正案のみ採用するかを指示 する事も可能 Instana × Bob ハンズオン
  14. まとめ:本日の振り返り 本日体験した内容の振り返り 1 2 3 4 InstanaとBobを連携させるための設定内容 MCPサーバによって、InstanaとBobを連携させる事ができました Instanaによる障害の可視化 分散トレースにより、遅延やエラーが発生したリクエストを確認できました

    Instanaの監視結果を利用した、Bobによる障害の検出 Bobとのチャットにより、エラーや遅延リクエストを検出できました Bobによる原因究明・コード修正の自動化 BobとInstanaのMCP連携により、原因究明・コード修正・リポジトリへの登録までの一連の流れを効率化できました Instana × Bob ハンズオン
  15. まとめ:Bob × Instanaトラブルシュートの振り返り 最後に注意! ! • 今回はEasyBuggyというあからさまに不具合が存在するアプリケーションが対象で した。実際のシステムではここまでBobが即座に問題を検出し、解決出来るとは限 りません。 •

    Bobの修正内容が必ずしも正しく、適切かどうかも保障はありません。 必ずご自身で内容を確認して、適用するようにしてください。 ※注意点を守って活用すれば、 Bobはあなたに多大な貢献をしてくれます。 Instana × Bob ハンズオン