インフラストラクチャとアプリケーションにオブザーバビリティを組み込む

Last reviewed 2023-08-21 UTC

Google Cloud アーキテクチャ フレームワークのこのドキュメントでは、サービスのパフォーマンスをより深く理解し、問題を迅速に特定できるように、サービスのオブザーバビリティを改善するためのベスト プラクティスについて説明します。オブザーバビリティには、モニタリング、ロギング、トレース、プロファイリング、デバッグなどのシステムがあります。

モニタリングは Google SRE ハンドブックのサービスの信頼性の階層における基盤です。適切なモニタリングがなければ、アプリケーションが正常に動作しているかどうかすら判断できません。

コードをインストゥルメント化してオブザーバビリティを最大化します。

適切に設計されたシステムは、その開発段階から適当なオブザーバビリティを持っています。アプリケーションが本番環境になるまでモニタリングを行わないことのないようにしてください。コードを設定し、次のガイダンスを考慮してください。

  • デバッグとトラブルシューティングを効率的に行うには、ログエントリとトレース エントリに何を書き出し、どの指標をモニタリングしてエクスポートするかについて検討します。システムで最も発生しそうな障害モードか、よく発生する障害モードを優先します。
  • モニタリングを定期的に検査およびプルーニングします。未使用や不要なダッシュボード、グラフ、アラート、トレース、ロギングを削除して、クラッターを除去します。

Google Cloud Observability では、リアルタイムのモニタリング、ハイブリッド マルチクラウドのモニタリングとロギング(AWS や Azure など)に加え、トレース、プロファイリング、デバッグを行うことができます。Google Cloud Observability では、App Engine または Istio などのサービス メッシュで実行されているマイクロサービスを自動的に検出してモニタリングすることもできます。

大量のアプリケーション データが生成される場合は、[BigQuery を使用して分析イベントログの大規模な取り込みを最適化] できます。BigQuery は、モニタリング フレームワークからのカーディナリティの高い時系列データを永続化し、分析する場合にも適しています。この方法は、モニタリングを最初から完全に設計しようとするのではなく、低コストで任意のクエリを実行でき、レポートをモニタリングから切り離すことができるため有用です。レポートは、Looker StudioLooker を使用してデータから作成できます。

推奨事項

アーキテクチャ フレームワークのガイダンスを実際の環境に適用するには、次の推奨事項に従ってください。

  • 移行を開始する前、または新しいアプリケーションを本番環境にデプロイする前など、モニタリングを早期の段階で実装します。
  • アプリケーションの問題と、基盤となるクラウドの問題を明確に区分します。Monitoring API などの Cloud Monitoring プロダクトと Google Cloud ステータス ダッシュボードを使用します。
  • モニタリングだけでなく、トレース、プロファイリング、デバッグが含まれるオブザーバビリティ戦略を定義
  • 実行不可能なアラートなど、使用していない、または価値のなくなったオブザーバビリティ アーティファクトを定期的にクリーンアップします。
  • 大量のオブザーバビリティ データを生成する場合、アプリケーション イベントは、BigQuery などのデータ ウェアハウス システムに送信します。

次のステップ