New Relic スクリプトブラウザ監視 - 複雑なユーザージャーニーの自動化監視

スクリプトブラウザ監視は、実際のWebブラウザを使用して複雑なユーザー操作を自動化し、Webアプリケーションの機能を包括的に監視する手法です。ログイン処理、フォーム入力、ページ遷移、データ検索など、実際のユーザーが行う一連の操作を定期的に実行して、システムの動作を確認できます。

スクリプトブラウザ監視の特徴

スクリプトブラウザ監視では、JavaScript(Node.js)とSelenium WebDriverを使用してブラウザ操作を記述します。New Relicダッシュボードの左側メニューから「Synthetic monitoring」を選択し、「Create monitor」から「Scripted browser」タイプを選択して設定します。シンプルブラウザ監視とは異なり、複数のページにわたる操作や条件分岐を含む複雑なシナリオを定義できます。

この監視方法では、実際のChrome ブラウザが自動実行されるため、JavaScriptの動作、CSS の描画、Ajax通信なども含めた実際のユーザー体験を正確に再現できます。認証が必要なページやセッション管理が必要なWebアプリケーションも監視対象にできます。

スクリプト作成には多少の学習コストが必要ですが、ビジネスクリティカルな機能の監視において非常に強力な効果を発揮します。ECサイトの購入フロー、会員サイトのログイン機能、SaaSアプリケーションの主要機能などを定期的に検証できます。

設定手順とスクリプト構造

スクリプトブラウザ監視の設定は、New Relicコンソールの「Create monitor」から「Scripted browser」を選択して開始します。

基本設定では、監視名、実行頻度、実行拠点を指定した後、スクリプトエディタが表示されます。ここでJavaScriptコードを記述して、ブラウザの操作手順を定義します。

スクリプトの基本構造として、最初にブラウザインスタンスの初期化を行い、$browser.get()でページにアクセスします。その後、$browser.findElement()でページ要素を特定し、click()sendKeys()getText()などのメソッドで操作や検証を行います。

要素の特定にはID、クラス名、CSS セレクタ、XPathを使用できます。IDが最も安定しており、クラス名やCSS セレクタがそれに続きます。XPathは柔軟ですが、ページ構造の変更に弱いため注意が必要です。

待機処理では、$browser.waitForAndFindElement()を使用して、要素の表示を待機してから操作を実行します。Ajaxによる動的コンテンツ読み込みやページ遷移の完了を適切に待機することで、スクリプトの安定性が向上します。

監視可能なユーザージャーニー

スクリプトブラウザ監視で設定できる代表的なユーザージャーニーには、以下のような例があります。

ログイン機能の監視では、ログインページへのアクセス、ユーザー名とパスワードの入力、ログインボタンのクリック、ダッシュボード画面への遷移確認までの流れを自動化します。認証が成功した場合の画面表示確認や、ログイン後の基本機能が利用可能かも検証できます。

フォーム送信の監視では、お問い合わせフォームや申込みフォームで、各入力項目への値入力、必須項目の検証、送信処理の実行、完了画面の表示確認を行います。入力値の検証やエラーメッセージの表示も確認できます。

検索機能の監視では、サイト内検索やデータベース検索で、検索キーワードの入力、検索実行、検索結果の表示確認、検索結果からの詳細ページ遷移まで一連の流れを検証します。

ECサイトの購入フローでは、商品の検索や選択、カートへの追加、商品情報の確認、決済画面への遷移などを段階的に検証できます。ただし、実際の決済処理は避け、決済画面の表示確認までに留めることが一般的です。

設定のベストプラクティス

スクリプトブラウザ監視を効果的に運用するためのベストプラクティスがあります。

エラーハンドリングでは、ネットワーク障害、要素の非表示、タイムアウトなど様々な例外状況に対応します。適切なエラーメッセージを記録することで、障害発生時の原因特定が容易になります。

メンテナンス性の考慮では、共通処理の関数化、設定値の変数化、コメントの充実を心がけます。Webアプリケーションの仕様変更に伴うスクリプト修正をスムーズに行えます。

実行時間の改善では、不要な待機時間の削減、適切な要素特定、並行処理の活用により、監視間隔を短縮できます。

テストデータの管理では、本番環境に影響を与えない専用のテストアカウントやデータを使用します。特にデータの作成や更新を伴う操作をスクリプト化する場合は、本番環境のデータに影響が出ないよう注意が必要です。

スクリーンショット機能を活用することで、監視実行時の画面状況を自動保存し、障害発生時の状況確認に役立てられます。

監視結果の活用と分析

スクリプトブラウザ監視の結果は、New Relicのダッシュボードで詳細に分析できます。

パフォーマンス指標では、各操作ステップの実行時間、ページ読み込み時間、要素の応答時間を測定できます。ユーザージャーニー全体の所要時間や、特定のステップでのボトルネックを特定できます。

成功率の分析では、監視全体の成功率と各ステップの成功率を確認できます。どのステップで最も多く失敗が発生しているかを把握し、優先的に改善すべき箇所を特定できます。

地理的分析では、複数の監視拠点からの実行結果を比較し、地域による性能差や接続品質の違いを確認できます。グローバルサービスでは特に重要な分析項目です。

トレンド分析では、時系列データから長期的な性能変化やパターンを把握できます。特定の時間帯での性能劣化や、定期的に発生する問題の特定に役立ちます。

アラート設定と障害対応

スクリプトブラウザ監視では、迅速な障害対応のための適切なアラート設定が重要です。

段階的アラートでは、軽微な問題から重大な障害まで複数の警告レベルを設定します。一部のステップが失敗した場合は警告レベル、全体が失敗した場合は緊急レベルとして区別します。

通知チャネルの使い分けでは、問題の重要度に応じて適切な通知方法を選択します。緊急時はSMSや電話通知、通常時はメールやSlack通知を使用します。

エスカレーション設定では、一定時間内に問題が解決されない場合の上位者への通知を自動化します。夜間や休日の障害対応体制も構築できます。

スクリプトブラウザ監視は、設定に時間がかかりますが、複雑なWebアプリケーションの品質保証において非常に重要な役割を果たします。適切に実装することで、ユーザー体験の継続的な品質管理を実現できます。

監視結果を効果的に活用するために、アラート設定とカスタムダッシュボード作成も併せて検討してください。他の監視手法との組み合わせにより、包括的なサービス監視体制を構築できます。


関連記事: New Relic Synthetics 概要関連記事: API監視の設定方法関連記事: アラートポリシーの設定関連記事: カスタムダッシュボード作成