シンセティック監視の定義

シンセティック監視とは、ユーザー操作をシミュレートすることで、アプリケーションやシステムをテストおよび監視する方法です。実際のユーザーの行動を模倣するように設計されたスクリプトを使用し、そのデータを使用して応答時間、エラー率、その他のパフォーマンス指標を評価します。

プロアクティブなモニタリングソリューションと見なされるシンセティック監視は、実際のユーザーが操作する前に、アプリケーションがユーザーのリクエストにどれだけ適切に応答するかを評価します。これにより、開発者はアプリケーションのリリース前に問題を解決でき、IT運用チームは本番環境での一貫性のある再現可能な方法で重要なユーザージャーニーを監視できます。

人間のユーザーを必要とするモニタリングソリューションであるリアルユーザー監視(RUM)とは異なり、シンセティック監視は完全に自動化され、スケジュールに従って実行できます。これにより、実際のユーザーが問題に直面する前に、問題を検出し、アラートをトリガーし、システムパフォーマンスを最適化することができます。その結果、最終製品の品質が向上し、ユーザーエクスペリエンスが向上します。

シンセティック監視の仕組みとは?

シンセティック監視は、ロボットクライアント(エージェントまたはプローブとも)を使用して、アプリケーションに自動化されたリクエストを送信し、潜在的なユーザーが行う可能性のある操作を再現することで機能します。

  • まず、潜在的なユーザーのインタラクションをシミュレートするスクリプトまたはスクリプトのセットを開発する必要があります。これらのスクリプトは、どのようなアクティビティがどのような順序で実行されるかを定義します。シンセティック監視ツールは、フォームの入力、ボタンのクリック、ログイン、購入、ウェブページの閲覧などの操作を再現するようにプログラムできます。
  • スクリプトが完成したら、モデリングパラメータの設定が必要です。スクリプト化されたトランザクションは、定期的に実行されるのでしょうか、それとも事前に定義されたスケジュールに従って実行されるのでしょうか?どのデバイスやブラウザをシミュレートすべきですか?どの地理的な場所から実行すべきですか?どのようなネットワーク条件を再現すべきですか?
  • パラメータが設定されたら、テストを開始できます。監視ツールは選択した設定に従ってシンセティックスクリプトを実行します。ターゲットシステムにリクエストを送信し、一般的なユーザーのアクションとワークフローをエミュレートします。
  • シンセティックテストでは、応答時間、ページの読み込み時間、エラー率、トランザクション完了率などのパフォーマンスメトリクスを収集します。これらの指標は、システムのパフォーマンスを評価し、改善が必要な領域を特定するのに役立ちます。
  • いずれかの指標が設定されたしきい値を超えた場合、パフォーマンスの問題、あるいは対処すべきその他の問題が発生している可能性が高いです。このような事態が発生すると、監視ツールがアラートを生成し、チームに通知します。
  • シンセティック監視ツールは、パフォーマンストレンドを分析する継続的なレポートやダッシュボードを生成します。収集されたデータを調べてパターンを見つけ、パフォーマンスのボトルネックを発見し、トラブルシューティングが必要な領域を特定し、将来の拡張性のために計画を立てることができます。

アプリケーションとウェブサイトの監視ダッシュボードを備えたKibanaのシンセティック監視アプリ

現代のアプリケーションにおけるシンセティック監視の重要性

シンセティック監視は、問題を事前に検出し、パフォーマンスを継続的に監視し、ユーザーにとっての最終的なエクスペリエンスを最適化できるため、現代のアプリケーションにおいて重要です。これにより、アプリケーションがさまざまなシナリオで適切に動作することが保証され、実際のユーザーに影響が出る前に問題を解決できます。効率的なインシデント管理とキャパシティプランニングをサポートすることで、アプリのパフォーマンスを最適化します。高品質のアプリケーションを提供することで、顧客満足度を高め、今日のデジタル環境で競争力を維持できます。

シンセティック監視の利点

シンセティック監視は、組織に多くの利点をもたらします。これには以下が含まれます。

  • プロアクティブな監視:シンセティック監視により、組織はパフォーマンスの問題や可用性の問題を事前に発見できます。ユーザーの相互作用をシミュレートすることで、実際のユーザーに影響を及ぼす前に異常を検出します。
  • 継続的な監視:シンセティック監視では、定期的に、またはオンデマンドでテストを実行できるため、アプリケーションが一貫して監視されていることを確認できます。これは、アドホックなテストや手動テストでは見逃してしまうような、断続的な問題を特定するのにも役立ちます。
  • シミュレーションによるユーザー体験:シンセティック監視により、チームはさまざまな場所やデバイスからのユーザー操作やトランザクションをシミュレートできます。ユーザーの行動を再現することで、実際のユーザーの体験をよりよく理解できます。
  • SLAの検証:シンセティック監視は、チームがサービスプロバイダーとのサービスレベル契約(SLA)を検証するのに役立ちます。これにより、サードパーティサービスのパフォーマンスと可用性を監視・測定し、自社の基準を満たしていることを確認できます。これは、ベンダーに説明責任を求めるのにも役立ちます。
  • パフォーマンスの最適化:シンセティック監視は、パフォーマンス指標を収集して結果を分析することで、最適化すべき領域を特定するのに役立ちます。これにより、チームがこれらの問題を整理し、優先順位をつけ、解決できるようになります。
  • キャパシティプランニング:さまざまな負荷レベルでのシステムパフォーマンスを監視することで、シンセティック監視はユーザーの増大する需要に対応するために追加リソースやインフラアップグレードが必要かどうかを判断するのに役立ちます。
  • リアルタイム警告:アラートや通知を通じて、シンセティック監視はパフォーマンスの閾値を超えた場合や異常を検出した場合に、即座に通知します。
  • 遡及的パフォーマンス分析:過去のデータと傾向を利用して、シンセティック監視は時間の経過に伴うパフォーマンスパターンを分析し、繰り返し発生する問題を特定するのに役立ちます。チームが実施した修正の効果を追跡することもできます。
  • 競合他社のパフォーマンス分析:シンセティック監視は、競合他社のウェブサイトやアプリケーションのパフォーマンスを監視・ベンチマークするために利用できます。ユーザーインタラクションをシミュレートし、パフォーマンス指標を測定することで、競合他社のユーザーエクスペリエンスについてさらに学び、自社のパフォーマンスを競合他社と比較することができます。

シンセティック監視の課題と限界

シンセティック監視には多くの利点がありますが、課題や制限がないわけではありません。シンセティック監視は応答時間、ページ読み込み時間、エラー率などの客観的な指標に焦点を当てており、ユーザー満足度や視覚的魅力といった、一部のユーザーにとって同様に重要な主観的な指標を捉えません。

シンセティック監視は主に事前に定義された場所とデバイスから実行されるため、ユーザーの地理的分布や人口統計学的属性をすべて網羅できるとは限りません。これは、非常に広範囲にグローバルな事業展開をしている組織にとって特に厄介な問題です。

シンセティック監視は事前定義されたスクリプトに基づいてユーザーの操作をシミュレートするため、実際のユーザーエクスペリエンスに影響を与える可能性のある特定のエッジケース、ユーザー固有の設定、またはネットワーク条件を見逃す可能性があります。また、ゲーム体験など、ウェブサイト上のリッチメディアやビデオコンテンツに関する詳細な可視性を提供できない可能性もあります。ウェブ体験に焦点を当てたシンセティック監視は、バックエンドシステムのパフォーマンスに関する洞察を提供しない場合もあります。

アプリケーションやWebサイトが進化するにつれて、機能やユーザーフローの変更を反映させるために、監視スクリプトを更新する必要があります。これは特に頻繁に更新される複雑なシステムにとっては課題となることがあります。

テストの頻度や監視システムの複雑さによっては、シンセティック監視は、監視ツールやデータ管理に必要な人員のコストに関連して、予算に影響を与える可能性があります。

シンセティック監視のユースケース

シンセティック監視には、さまざまな業界で多様なユースケースがあります。金融サービスでは、オンラインバンキングシステム、支払いゲートウェイ、取引プラットフォームを監視するために使用できます。医療技術分野では、電子カルテシステム、患者ポータル、遠隔医療プラットフォームの監視に利用できます。電子商取引分野では、在庫管理システムやショッピングカートなどのオンライン小売プラットフォームを監視するためにシンセティック監視が用いられています。メディアストリーミングプラットフォーム、ビデオオンデマンドサービス、オンラインゲームシステムを監視するのに適用できます。公共機関はこれを利用して、市民向けポータルサイト、オンラインサービス、政府ウェブサイトなどを監視できます。各業界のシステム信頼性エンジニア(SRE)は、システムの健全性とパフォーマンスに関する唯一の真実の情報源として、堅牢なシンセティック監視システムに依拠できます。

特にテクノロジー業界では、シンセティック監視を活用して、さまざまなアプリケーションやプラットフォームを最適化できます。以下に、いくつかのテクノロジー中心のユースケースを示します。

  • サービスとしてのソフトウェア(SaaS)プラットフォームは、さまざまなパフォーマンス指標を使用して、応答時間の遅さ、APIの障害、サードパーティのサービスとの統合の問題などの問題を特定できます。
  • クラウドインフラサービスは、サーバーレス機能やデータストレージAPIの応答時間を監視するためにシンセティック監視を利用できます。
  • DevOpsと継続的デリバリーのプラクティスは、導入の検証、パフォーマンス変化の追跡(パフォーマンステストとして知られる)、およびアプリケーションリリースの安定性の確保に活用されます。
    DevOpsにおけるシンセティック監視は、問題が発生する前にそれらを網羅的に検出する、プロアクティブな監視を可能にします。例えば、稼働状況の監視はアプリケーションが稼働しているかを自動で確認するプロセスです。アプリケーションモニタリングは、パフォーマンス最適化のためにシンセティック監視ツールのネットワークを使用してアプリケーションのパフォーマンスを測定します。
  • シンセティック監視ツールは、ウェブページ上のサードパーティ依存関係を監視するために使用できます。これにはJavaScript、画像、そしてAPIやAPI駆動型アプリケーションが含まれ、APIエンドポイントの可用性と応答性を確保します。サードパーティの依存関係の監視は外部インターフェースに依存し、認証や使用制限の管理が必要になる場合があるため、応答時間や可用性といった特定の指標に焦点を移す必要があるかもしれません。
  • IoTアプリケーションとデバイスは、シンセティック監視を使用して、データ取り込みと処理の応答時間を測定し、IoTデバイスとアプリケーション間のリアルタイムの相互作用を検証できます。
  • シンセティックテストは負荷テストにも使用できます。負荷テストでは、アプリケーションやウェブサイトの信頼性を確保するために、実際の負荷状況をシミュレートします。
  • ビッグデータおよび分析プラットフォームを監視する際、シンセティック監視を用いることで、データ取り込み、クエリ処理、データ可視化における応答時間を測定できます。
  • モバイルアプリケーション開発において、シンセティック監視は応答遅延、クラッシュ、モバイル環境特有の互換性問題などの問題を特定できます。モバイルアプリの開発者は、シンセティックテストを使用して、アプリが公開される前に潜在的なバグを修正できます。

シンセティック監視データの分析方法

シンセティック監視データの分析とは、収集したパフォーマンス指標を調べて、アプリケーションの動作に関する洞察を得ることを意味します。まず、応答時間、ページの読み込み時間、エラー率などの指標を確認して、全体的なパフォーマンスを評価します。チャートやグラフなどの可視化ツールは、傾向を理解し、異常値を見つけるのに役立ちます。そして、以前に定義したしきい値に対してデータを比較し、偏差や問題を特定できます。

次に、履歴データを調べることでトレンド分析を行い、パターンや再発するパフォーマンスの問題を見つけることができます。これは、最適化とキャパシティプランニングに関する意思決定に役立ちます。パフォーマンスの問題が見つかった場合は、根本原因分析を実施して、さらに調査できます。これには、特定のトランザクション、ネットワークの状態、サーバー構成を調べて、問題の原因となっている根本的な要因を明らかにすることが含まれます。

この分析に基づいて、調査結果をまとめたレポートを作成し、チームが改善に注力すべき項目のリストを提供します。これには、コードの最適化、インフラストラクチャの変更、パフォーマンスの最適化に関する推奨事項が含まれる場合があります。

シンセティック監視とリアルユーザー監視の比較

アプリケーションのパフォーマンスとユーザーエクスペリエンスを監視するためには、シンセティック監視リアルユーザー監視(RUM)の2つのデジタルエクスペリエンス監視形式を使用できます。

シンセティック監視では、事前定義されたスクリプトを使用してユーザーの操作をシミュレートし、アプリケーションのパフォーマンスと可用性を監視します。シミュレートされたユーザーアクションに基づくメトリクスを測定することで、問題を事前に特定するのに役立ちます。

対照的に、リアルユーザー監視(RUM)は、実際のユーザーがリアルタイムでアプリとやり取りするデータを収集します。ユーザーのデバイスやブラウザから、ユーザーのアクション、ページビュー、パフォーマンス指標に関するデータを収集します。リアルユーザー監視は、ユーザーの体験や、ページの読み込み時間が遅いことやエラーなどの現実世界で直面する問題に関する洞察を提供します。

シンセティック監視は、ユーザーが問題に遭遇する前にパフォーマンスの問題を事前に特定するのに対し、リアルユーザー監視は、実際のユーザー体験を観察することを可能にします。どちらか一方を選ぶ必要はありません。実際、両方の方法を用いることで、アプリケーションのパフォーマンスを包括的に把握することができます。

シンセティック監視のベストプラクティス

シンセティック監視のベストプラクティスに従うことは、データから最良の洞察を得る上で重要です。以下のようなものがあります。

  • 実際のユーザーインタラクションを模倣した関連する監視シナリオや顧客のジャーニーを定義します。
  • ユーザーベースを代表する地理的に適切な監視拠点を選択します。
  • システムに過負荷をかけずに定期的なチェックを行うために、現実的な監視間隔を設定します。
  • 比較のためのベンチマークを設定するために、ベースラインとなるパフォーマンス指標を確立します。
  • 互換性と最適なパフォーマンスを確認するために、さまざまなデバイスやブラウザでテストします。
  • 潜在的な問題を特定するために、サードパーティの依存関係を監視します。
  • パフォーマンス指標が事前に定義された制限値を超えた場合に通知を受け取るように、アラートのしきい値を設定します。
  • ユーザーワークフローまたはアプリケーションの機能の変更を反映するために、モニタリングスクリプトを定期的に更新します。
  • 視覚化とレポートを活用して、監視データを効果的に分析し、伝達します。
  • シンセティック監視を他のモニタリング技術と統合して、アプリケーションのパフォーマンスを包括的に把握します。

Elasticを使用したシンセティック監視

Elasticのシンセティック監視を活用することで、より良いビジネス成果を上げるために必要な洞察を得ることができます。自動スケーリング、組み込まれたセキュリティ、Elastic Observabilityとのシームレスな統合といった追加機能もご利用いただけます。

Elasticのシンセティック監視機能を使用して、以下のことを実現します。

  • 重要なユーザージャーニーのパフォーマンスをテスト、追跡、可視化
  • Elasticのグローバルで管理されたテストインフラを活用し、軽量かつ完全なブラウザテストを実施
  • GitOpsを使用して開発から本番稼働までテストプロセスを合理化
  • ウェブサイトのパフォーマンスと可用性に関する問題を、顧客が気づく前に完全に把握し、発見

Elastic Observabilityなら、アプリケーション、インフラストラクチャー、ユーザーをすべて単一のソリューションで監視できます。