合成モニタリングによって信頼性の高いエンドユーザー エクスペリエンスを確保する
Google Cloud Japan Team
※この投稿は米国時間 2023 年 8 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。
信頼性の高いシステムとエンドユーザー エクスペリエンスは、組織の成功に不可欠です。ダウンタイムが発生したり、ユーザー エクスペリエンスが低下したりすると、組織の能力が損なわれ、ステークホルダーに価値を提供できなくなります。
最新のアプリケーションは、何百ものマイクロサービス、コンテナ、サブコンポーネントで構成され、より複雑になっています。そのため、アプリケーションの所有者にとって、個々のコンポーネントの健全性やパフォーマンスをモニタリングすることに加え、アプリケーションが高い信頼性とパフォーマンスでエンドユーザー エクスペリエンスを提供できているかを確認することが重要です。
このようなアプリケーションのモニタリングを容易にする、Cloud Monitoring の新しい合成モニタリング サービスの公開プレビュー版を Google Cloud でご利用いただけるようになりました。
合成モニタリングとは
合成モニタリングは、自動化されたスクリプトを使用して、アプリケーションやサービスのユーザー操作をシミュレーションするプロアクティブなモニタリング機能の一種です。これにより、ウェブ アプリケーション、API、主要なビジネス ワークフローの可用性、整合性、パフォーマンスを、実際のユーザーの視点からテストできます。テストは、夜間や休日など、時間や季節によってトラフィックが少ない時間帯であっても継続的に実行できます。
合成モニタリングは、次のような用途に使用できます。
ユーザーに影響が及ぶ前にパフォーマンスの問題を特定して修正する
アプリケーションがパフォーマンス SLA を満たしていることを検証する
アプリケーションの動作の変化を検出する
アプリケーションの可用性をモニタリングする
合成モニタリングの仕組み
Google Cloud の合成モニタリング サービスを利用するには、サポートされている Google Cloud リージョンからアプリケーションやサービスをターゲットとする自動スクリプトを実行します。このスクリプトは、ログイン、プロダクトの検索、カートへの商品の追加など、アプリケーションでのユーザー操作をシミュレートします。合成モニターを構成する場合は、Google Cloud Monitoring によって配信および管理されるオープンソース フレームワークを使って、NodeJS や Typescript を使用してコードを実行する Google Cloud Function V2 を作成します。
その後、スクリプトの結果が収集および分析され、アプリケーションの可用性、整合性、パフォーマンスが判断されます。問題が検出された場合は、適切なチームにアラートを通知するように構成できるため、エンドユーザーに影響が及ぶ前に問題を修正でき、デバッグ用に詳細なレポートを作成できます。
新しい合成モニターを作成する
Google Cloud の合成モニタリング サービスは使いやすく、数分で構成できます。開始するには、[Monitoring] > [Synthetic monitoring] で [+ 合成モニターを作成] を選択します。


合成モニターに名前を付け、実行頻度やその他の設定を行います。


次に、合成モニターのターゲットとなる Cloud Function の関数を作成します。[APPLY FUNCTION] をクリックすると、Cloud Function の関数を構成するための画面が表示されます。このステップでは、関数に名前を付けたり、詳細設定を管理したりできます。たとえば、内部 VPC ネットワークへのアクセスを可能にする関数の機能を管理できます。実行する関数のサンプルコードも表示されます。
この例では、単にサンプルの URL に対して HTTP リクエストを行うだけですが、Cloud Function の関数がやり取りできる任意の URL や API エンドポイントとやり取りするコードを作成できます。コードを記述する際は、合成モニターが終了した場合は成功とみなされ、エラーがスローされた場合は失敗とみなされることに留意してください。合成モニターは、Mocha フレームワークを使用するテストだけでなく、特定のフレームワークに依存しないテストの開発にも対応しています。Mocha フレームワークに依存するテストを作成する場合は、mocha-url-ok から利用可能なテンプレートを使用できます。
このページから、合成モニターが 2 回連続の失敗を検出した後に配信するアラート ポリシーを作成することもできます。
合成モニターの結果を表示する
[合成モニター] ページから任意の合成モニターの名前をクリックすると、その詳細ページが表示されます。以下の内容を確認できます。
選択した期間における平均成功率と実行時間
実行履歴テーブル(個々の実行とそのステータス、実行日、実行時間、やり取りした Cloud Function の関数のリビジョン ID を含む)
選択した期間における実行時間をプロットしたグラフ
合成モニターの構成情報


個々の合成モニターの実行を表示する
合成モニターの詳細ページで個々の実行をクリックすると、実行中に発生したことに関する詳細な情報を表示できます。以下の情報が含まれます。
合成モニターの実行が失敗とみなされたかどうかの情報、実行日、実行時間、Cloud Function の関数へのリンク。
Cloud Function の関数の一部であったすべてのファイルのビュー。失敗の起点と考えられるコード行が強調表示されます。
実行に起因するログが表示されるログパネル。
Mocha フレームワークを使用した場合、ログには、テストの成否の情報と、テスト期間に関する情報が含まれます。テストが失敗した場合は、完全なスタック トレースの情報も含まれます。スタック トレースには、失敗したコード行、エラータイプ、エラー メッセージが含まれます。


詳細情報
合成モニターを初めて作成する場合の詳しい情報と手順については、ドキュメントをご覧ください。
また、今回ご紹介した新機能についてご不明な点やフィードバックなどがございましたら、Cloud Operations コミュニティのページからお問い合わせください。
- シニア プロダクト マネージャー Amol Devgan- ソフトウェア エンジニアリング テクニカル リーダー Daniel Koss