Monitoring

パフォーマンスの最適化は、通常はレイテンシとスループットに関連する主要な指標を特定することから始まります。これらの指標をキャプチャして追跡するモニタリングを追加すると、アプリケーションの弱点が明らかになります。指標を使用すると、パフォーマンス指標を改善するための最適化を行うことができます。

また、多くのモニタリング ツールでは、指標のアラートを設定して、特定のしきい値に達したときに通知を受け取ることができます。たとえば、リクエストの失敗率が通常のレベルの x% を超えて増加した場合に通知するアラートを設定できます。モニタリング ツールを使用すると、通常のパフォーマンスを把握し、レイテンシ、エラー数、その他の主要な指標の異常な急増を特定できます。これらの指標をモニタリングする機能は、ビジネス クリティカルな期間中や、新しいコードが本番環境にプッシュされた後に特に重要になります。

レイテンシ指標を特定する

ユーザーはモバイルアプリに さらに高い基準を求めているため、UI の応答性をできるだけ高く保つようにしてください。また、バックエンド サービスのレイテンシも測定して追跡する必要があります。放置するとスループットの問題につながる可能性があるためです。

追跡する指標として、次のものをおすすめします。

  • リクエストの実行時間
  • サブシステム単位のリクエストの実行時間(API 呼び出しなど)
  • ジョブの所要時間

スループット指標を特定する

スループットは、一定期間に処理されたリクエストの合計数を測定したものです。スループットはサブシステムのレイテンシの影響を受ける可能性があるため、スループットを改善するにはレイテンシを最適化する必要があります。

追跡する指標として、次のものをおすすめします。

  • 秒間クエリ数
  • 1 秒あたりに転送されるデータのサイズ
  • 1 秒あたりの I/O オペレーション数
  • リソース使用率(CPU 使用率やメモリ使用量など)
  • 処理バックログのサイズ(Pub/Sub やスレッド数など)

平均値だけではない

パフォーマンスの測定でよくある間違いは、平均値(平均)のみを確認することです。これは便利ですが、レイテンシの分布に関する分析情報を提供しません。追跡する指標としては、パフォーマンスのパーセンタイル(指標の 50 パーセンタイル、75 パーセンタイル、90 パーセンタイル、99 パーセンタイルなど)が適しています。

通常、最適化は 2 つのステップで行うことができます。まず、90 パーセンタイルのレイテンシを最適化します。次に、99 パーセンタイル(テールレイテンシとも呼ばれます)を考慮します。これは、完了に時間がかかるリクエストの小さな部分です。

詳細な結果を得るためのサーバーサイド モニタリング

指標の追跡には、通常、サーバーサイドのプロファイリングが推奨されます。サーバーサイドは通常、計測がはるかに簡単で、より詳細なデータにアクセスでき、接続の問題による影響を受けにくいです。

エンドツーエンドの可視化のためのブラウザ モニタリング

ブラウザのプロファイリングを行うと、エンドユーザー エクスペリエンスに関する追加の分析情報を得ることができます。 リクエストが遅いページを確認し、サーバーサイドのモニタリングと関連付けてさらに分析できます。

Google アナリティクスでは、ページタイミング レポートでページの読み込み 時間をすぐにモニタリングできます。これにより、サイトでのユーザー エクスペリエンスを把握するための便利なビューがいくつか提供されます。特に次のものが役立ちます。

  • ページの読み込み時間
  • リダイレクトの読み込み時間
  • サーバーの応答時間

クラウドでのモニタリング

アプリケーションのパフォーマンス指標をキャプチャしてモニタリングするために使用できるツールは多数あります。たとえば、Google Cloud Logging を使用してパフォーマンス指標を Google Cloud プロジェクト に記録し、Google Cloud Monitoring でダッシュボードを設定して、記録された指標をモニタリングしてセグメント化できます。

Python クライアント ライブラリのカスタム インターセプタから Google Cloud Logging にロギングするについては、Logging ガイドをご覧ください。 Google Cloud でそのデータを利用できるため、記録されたデータに基づいて指標を作成し、Google Cloud Monitoring を介してアプリケーションを可視化できます。ユーザー定義のログベースの指標のガイドに沿って、Google Cloud Logging に送信されたログを使用して指標を 作成します。

または、Monitoring クライアント ライブラリを使用して、コードで指標を定義し、ログとは別に Monitoring に直接送信することもできます。

ログベースの指標の例

アプリケーションのエラー率をより深く理解するために、is_fault 値をモニタリングするとします。ログから is_fault 値を抽出し、ログ から新しい カウンタ指標ErrorCount に格納できます。

指標の構成

指標のフィルタとラベル

Cloud Logging では、ラベルを使用して、ログ内の他のデータに 基づいて指標をカテゴリにグループ化できます。Google Ads API メソッド別にエラー数を分析するために、Cloud Logging に送信される method フィールドのラベルを構成できます。

ErrorCount 指標と Method ラベルを構成したら、Monitoring ダッシュボードに新しいグラフを作成して、Method でグループ化された ErrorCount をモニタリングできます。

ErrorCount ダッシュボード

アラート

Cloud Monitoring やその他のツールでは、指標によってアラートをトリガーするタイミングと方法を指定するアラート ポリシーを構成できます。Cloud Monitoring アラートの設定手順については、 アラートガイドをご覧ください。