外形監視を正しく行う方法:目的を持った外形テストの設計方法
Observability Mike Simon重要なポイント
- ユーザーの実際の行動を反映した、短く重要度の高いユーザーフローをマッピングします。マッピングしたステップは、明確な構造を持つトランザクションにまとめます。
- テストをバックエンドシステムと関連付けて、RUMやAPMへのデータの流れを維持します。
- ユーザートラフィックが少ないときでも状況を常時プロアクティブに伝えるシグナルを生成します。
ブラウザ外形テストは、オブザーバビリティスタックにおける特に強力なツールの1つです。実際のユーザーフローやバックエンドでのやり取りをテストに反映させることで、以下が可能になります。
- 問題を早期に検出する
- オフピーク時間帯でも重要なワークフローをシミュレートする
- 実際のユーザーがアクティブでないときでもバックエンドシステムのオブザーバビリティを維持する
この記事では、「外形監視を正しく行う方法」シリーズのベストプラクティス1「目的を持って設計する」についてご説明します。
外形テストの「目的を持った設計」とは
このベストプラクティスは、明確さ、測定可能性、ビジネス価値を考慮に入れながら、目的を明確にしてそれぞれの外形テストを設計することに重点を置いています。まずは、顧客とビジネスにとって特に重要なフローを反映した、短く重要度の高いユーザージャーニーのマッピングから始めます。ここで大切なのは、クリック、フォーム入力、メニュー選択など、実際のユーザー操作に基づいてジャーニーを構築することです。
最終的なURLを直接呼び出す方が手っ取り早いと思うかもしれませんが、その方法では実際にユーザーが体験するステップを省いてしまうことになります。テストでクリックストリームを完全にシミュレートすることで、最終ページが正常に読み込まれるだけでなく、検索バーやナビゲーションメニューなどの重要コンポーネントも期待どおりに動作していることを確認できます。
必要なステップを特定したら、それらをグループ化して合成トランザクションにまとめます。目的は、ビジネスクリティカルなワークフローごとに、処理時間、リクエスト数、サイズなどのメトリクスを測定できるようにすることです。最後に、重要なバックエンドサービスを呼び出すようにテストを設計します。これにより、トラフィックが少ない時間帯でも、RUMやAPMなどの受動的な監視ツールで十分な量のデータを継続的に受信できるようにします。
以下では、これらの各手順について詳しく説明します。
外形テストが重要な理由
外形テストが適切に設計されていないと、ノイズが発生したり、関係のない理由でテストが中断したり、問題の根本原因を推測で判断しなければならなくなったりします。目的を持ってテストを設計することには、以下のメリットがあります。
- テスト範囲を重要なステップに限定することでテストの信頼性が高まる
- 実際のワークフローに沿ったトランザクションレベルのメトリクスを分析することで精度が向上する
- トラフィックをRUMやAPMに送信することで、オフピーク時間帯でもバックエンドの可視性を維持できる
- テストの失敗とアプリケーションの実際の問題との境界が明確になることでトラブルシューティングが迅速化する
このアプローチにより、外形監視が、単なる稼働状況のチェックを超えて、フロントエンドとバックエンドの両方の健全性を常時伝える強力なシグナルとして機能するようになります。
実践:外形テストの設計方法
1. 短く重要度の高いユーザージャーニーを特定
ユーザーまたは製品マネージャーと相談しながら、よく使われる重要なクリックストリームを特定します。これらのクリックストリームを文書化するか、Webexなどのツールを使ってセッションを記録し、実際のユーザーの行動をマッピングします。目標は、ユーザーが実行する可能性のあるすべての操作ではなく(それを記録するのはRUMの仕事です)、重要度の高いユーザージャーニーを記録して理解することです。
業種別の重要度の高いユーザージャーニーの例:
ユーザージャーニーが理解できたら、外形テストを構築できます。その際には、Splunk Observability Cloudの標準サポート機能を活用し、Chrome Recorder経由でブラウザ操作をSplunkに直接インポートします。これらの短いフローは、リンククリック、データ入力、ドロップダウンメニュー選択など、個々のインタラクションからなるステップ群で構築されます。
テストが稼働状態になると、Splunkがトランザクション実行をリアルタイムで記録し、100ミリ秒、500ミリ秒、または1秒間隔でキャプチャされたスクリーンショットによるフィルムストリップビューが生成されます。
2. トランザクションを使ってステップを目的別にグループ化
次に、ステップを合成トランザクションにまとめます。各トランザクションは、ログインや決済など、ビジネスクリティカルなユーザーフローに対応しています。
これは、目的を持った設計の要となる部分です。エンドツーエンドのワークフロー全体(検索、カートへの追加、決済など)を対象にした1つの大規模なテストを作成するよりも、焦点を絞った複数のトランザクションに分割する方が合理的です。これにより、ユーザージャーニーの重要な部分を切り分けて、効果的にテストおよび監視できます。
- ページレベルのメトリクス:単一ページの読み込みのパフォーマンスを測定します。これは、読み込みに時間のかかるリソースやレンダリングの遅延を検出するために役立ちます。
- トランザクションレベルのメトリクス:1ページ内または複数ページをまたぐ複数ステップのワークフローのパフォーマンスを測定します。これにより、個々のページの読み込み時間だけでなく、決済、ログイン、レポート生成などのプロセス全体が完了するまでの時間も把握できます。
この2つの観点を組み合わせることで、問題が特定のページだけで起こるのか、またはワークフローのステップを重ねることで起こるのかを判断できます。1つのテストを複数のトランザクションに分けることで、コンテキストを失うことなく個々のワークフローを測定できます。
3. 受動的な監視ツールへのデータ送信とサービスの呼び出し
ブラウザ外形テストは、実際のユーザーがフロントエンドを現在操作しているかどうかとは関わりなく、一定の間隔で24時間365日実行されます。このアクティブ監視のアプローチにより、ユーザーアクティビティが少ないときやまったくないときでもテストを行って、重要度の高いユーザージャーニーを継続的にテストできます。
外形テストを適切に構成すれば、これらのジャーニーに影響を及ぼす問題をリアルタイムで検出できます。これにより、プロアクティブな対応が可能になり、顧客が問題に気づく前に調査と修復を開始できます。
問題が検出された場合、対応担当者は、外形テストのフィルムストリップを見ることで問題を確認できます。次に、根本原因を特定し、実際のユーザーへの影響がある場合にはそれを評価します。
- まず、Real User Monitoring (RUM)で、実際のユーザーの行動を調査して、影響を受けるユーザーとその規模を確認します。
- 次に、根本原因分析に欠かせないApplication Performance Monitoring (APM)を使用します。APMのサービスマップでは、問題が検出された合成トランザクションのコンテキストで、バックエンドの健全性、依存関係、ボトルネックをすばやく確認できます。
Splunkでは、これらすべてが関連付けられ、実行した外形テストから関連するRUMセッションやAPMトレースに直接アクセスできるディープリンクが提供されます。これにより、コンテキストを失うことなく、検出から、影響の評価、根本原因分析まで、ジャーニー全体をリアルタイムで追跡できます。
- チュートリアル: 外形テストのスパンとAPMのスパンのリンク
テストの設計が成功の鍵
目的を持った設計とは、重要なユーザージャーニーに沿った、短く、明確な構造を持つ外形テストを構築することを意味します。実際のステップを把握し、それを意味のあるトランザクションにグループ化して、受動的な監視ツールと統合することで、プロアクティブで精度が高い実用的なフィードバックループを構築できます。
外形テストを実装することで、サポートチケットが届く前に、問題がどこで発生し、ユーザーにどのような影響があり、修正をどこから始めるべきかを把握できるようになれば、外形テストはオブザーバビリティスタックにおける価値ある資産の1つになります。
次のステップ:組織の環境内の重要度の高いユーザージャーニーを1つ選択して、このアプローチを適用します。Splunk Synthetic Monitoringを使ってそのジャーニーを記録し、トランザクションを定義し、RUMやAPMとリンクさせてエンドツーエンドで可視化してみましょう。Splunk Observability Cloudをご利用でない場合は、無料トライアル版をお試しいただけます。
関連記事

合成テストのサンプル:ユーザーフローテスト、APIの検証、カスタムメトリクス、ログ収集、その他

Splunk ITSI Content Pack for Cisco Data Center Networkingでネットワークのレジリエンスを実現
