Instana シンセティック・モニタリングでユーザー操作のシミュレート
投稿者:AIOps担当(森)
こんにちは。
私たちAIOps担当は、システム運用を効率化・高度化するため、機械学習(AI)の技術を採用した「AIOps」や、アプリケーションパフォーマンス管理「APM」、アプリケーション・リソース管理、といったソリューションのご提案から構築・導入後の支援まで担当しています。
第9弾・第10弾から引き続き、IBM Instana Observability(以下、Instana)において、2023年7月にリリースされたBuild 253から利用可能になった機能、シンセティック・モニタリング(Synthetic Monitoring、外形監視)についてご紹介します。
※ Instanaに関する過去のTech Blog連載記事は、画面下部の「関連ブログ」からご覧いただけます。
■ ユーザーのWebアプリ操作をシミュレートする監視
前回はシンセティック・モニタリングに必要なPoPの準備と、シンセティック・テストの実行についてご案内しました。前回ご案内したシンセティック・テストは、「ブラウザー(シンプル)」タイプで、URLで指定したテスト対象のWebサイトに対し、定期的にリクエストを送信・応答の状況をチェックするテスト形式でした。
Webアプリケーションを監視する場合、特定のURLの応答を取得するだけでは、監視として不十分な場合もあります。
- 会員制のサイト。(ログイン処理の応答時間・エラー有無など)
- サービス/商品の検索サイト。(検索処理の応答時間・エラー有無など)
今回はInstanaのシンセティック・テストが提供する、「ブラウザー・スクリプト」タイプでユーザーの操作をシミュレートし、Webアプリケーションの状態を監視する機能をご紹介したいと思います。
「ブラウザー・スクリプト」タイプのシンセティック・テストでは、JavaScript または Selenium IDE スクリプトを使用して、ユーザーの操作をシミュレートします。Selenium IDE は、Webブラウザの操作を記録し再現する機能があります。したがって、シンセティック・テストを設定するにあたり、スクリプトのコーディングが不要となります。
Selenium IDEについての詳細は以下を参考にしてください。
https://www.selenium.dev/ja/documentation/ide/
■ WebブラウザへSelenium IDEの導入
私はWebブラウザとしてGoogle Chromeを利用していますが、Chrome ウェブストアから導入が可能です。
https://chromewebstore.google.com/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
Firefox版も提供されています。
https://addons.mozilla.org/en-GB/firefox/addon/selenium-ide/
■ Selenium IDEによる操作の記録(REC)
今回は弊社のWebサイトで、「Instana Tech Blog」というキーワードを検索し結果が表示されるまでを、シンセティック・テストで設定してみます。

1. Chromeの拡張機能から、Selenium IDEを起動します。

2.「Record a new test in a new project」を選択します。
3.プロジェクト名を設定し「OK」ボタンを押下します。
4.BASE URLは弊社Webサイト「https://www.niandc.co.jp」を設定し、「START RECORDENIG」ボタンを押下します。

5.「Selenium IDE is recording」の表示を確認し、「Instana Tech Blog」を検索して結果が表示されるまで待ちます。

6.Selenium IDEの記録停止ボタンを押下します。
7.テスト名を設定し「OK」ボタンを押下します。
8.「Run current test」を実行し、すべての操作が正常に(OK)になることを確認します。「Save project」から「SIDE」ファイルとして保存します。

■ シンセティック・テストの設定
Instanaの「シンセティック・モニタリング」画面で表示される、「シンセティック・テストの作成」ダイアログで、以下の設定を行います。詳細は下図を参考にしてください。

1.「ブラウザー・スクリプト」を選択します。
2.「Add File」ボタンから、Selenium IDEで作成したスクリプトファイルをアップロードします。
使用するPoPを選択します。
3.監視間隔を設定します。初期値は15分ですが、今回は手短に検証するために1分間隔とします。
4.テストの名前と説明を設定します。
5.シンセティック・テストと、Instana内で定義されているアプリケーションの関連付けを行います。
今回はシンセティック・テストの機能のご紹介なので、特に紐づけを行いません。
最後に「作成」ボタンを押下します。

■ シンセティック・テストの実行、、、失敗
シンセティック・テストを実行したところ、テストに失敗し障害としてカウントアップしています。「結果」タブから、シンセティック・テストの実行結果を確認すると、失敗となっています。内容を確認すると、検索を入力するテキストBox(ss-query1)を選択できないようです。

テストに失敗した場合は、「スクリーン・ショットの表示」を確認することで、テスト時のWebページの状態を確認できます。すると、、、

し、島CBO(最高ブランド責任者)が表示されているではないですか!
弊社のトップページは初回アクセス時に、島耕作がCBOに就任した案内が全面に5秒程度表示されます。そのため検索用のテキストBoxが選択できないようです。2回目以降のアクセスでは島CBOの就任案内は表示されないため、Cookieでサイト訪問の履歴が残っているようです。
Instana PoPはCookieを保存することが出来ないため、毎回初回アクセスと認識され、島CBOの就任案内が表示されます。Instanaのシンセティック・テストを利用するうえで、Cookieが保管できないことは考慮が必要です。Webサイトの利用者にCookie利用の同意を求めるポップアップ表示を行うケースなどです。
■ Selenium IDEのスクリプトを修正し再実行
今回は接続先のURLを、「https://www.niandc.co.jp/tech」に修正し対処しました。トップページ以外に直接接続した場合は、島CBOの就任案内は表示されませんし、検索用のテキストBoxはどの画面でも表示されます。

修正したSelenium IDEのスクリプトを、シンセティック・テストの「構成」画面の編集から再アップロードすることで修正が可能です。

シンセティック・テストを再実行したところ、成功しました。「結果」タブから、シンセティック・テストの実行結果の詳細を確認できます。サイトの応答時間を確認したり、応答時間の詳細な分析も可能です。
この後、30分程度シンセティック・テストを実行し結果を確認しましたが、弊社Webサイトの検索に関する処理は、応答時間が15秒程度というのが正常時の状態のようです。

なおスマート・アラートを設定することで、シンセティック・テストが一定回数失敗した場合に通知することが可能です。

■ まとめ
3回にわたってシンセティック・モニタリング(外形監視・合成監視)についてご紹介してきました。
今回ご紹介したユーザーの操作をシミュレートするといった複雑な操作を再現し、Webサイトやアプリケーションの状態・品質を定期的に収集することができる、まさしくAPM・Instanaならではの機能と言えるかと思います。
今回でInstanaのシンセティック・モニタリングに関するご紹介は最終回となりますが、引き続きAIOpsに関するBlogを掲載していく予定です。