API 使用状況のモニタリング

このページでは、API 指標を使用して、Google APIs と Google Cloud APIs の使用状況を追跡、理解する方法について説明します。

Google API は、次のことに役立つ詳細な使用状況の指標を生成します。

  • Google API の使用状況を追跡、把握する。
  • アプリケーションと Google API のパフォーマンスをモニタリングする。
  • アプリケーションと Google API の間の問題を検出する。

問題をトラブルシューティングしたり、Google の技術サポートを受けたりすることで、解決にかかる時間を劇的に短縮できます。

Google API が生成する指標は、Google のサイト信頼性エンジニアがサービスの正常性を評価する際に使用する標準シグナルです。これらの指標の対象は、リクエスト数、エラー率、合計レイテンシ、バックエンド レイテンシ、リクエスト サイズ、レスポンス サイズです。API 指標の定義については、Cloud Monitoring のドキュメントをご覧ください。

API 指標は、API ダッシュボードCloud Monitoring の 2 か所で表示できます。表示される指標はプロジェクトに固有のものであり、サービスのステータス全体を反映したものではありません。

API ダッシュボードを使用する

API 指標を表示する最も簡単な方法としては、Google Cloud コンソール の API ダッシュボードを使用します。このダッシュボードでは、API 使用に関するすべての指標状況の概要を表示することも、特定の API の使用状況を詳細に調べることもできます。

API 使用状況の概要については:

  1. Cloud コンソールの [API とサービス] セクションに移動します。デフォルトで、メインの API ダッシュボードが表示されます。このページで、プロジェクトに現在有効にされているすべての API と、次の指標の概要を示すグラフを確認できます。

    • トラフィック: API が有効にされているプロジェクトによって行われる、またはプロジェクトに関する 1 秒あたりのリクエスト数
    • エラー: 有効にされている API に対して行ったすべてのリクエストのうち、エラーが発生したリクエストの割合
    • 中央値のレイテンシ: 有効にされている API に対するリクエストでの中央値のレイテンシ(利用可能な場合)。

特定の API の使用状況の詳細を表示するには、次の手順に従います。

  1. メインの API ダッシュボードに表示される API のリストで、詳細を表示する API を選択します。その API の概要ページに、レスポンス コード別の内訳を示す、詳細なトラフィック グラフが表示されます。
  2. 使用状況に関する情報をさらに詳しく調べるには、[指標を表示] を選択します。 デフォルトでは、事前に作成されている次のグラフが表示されます。ただし、表示できるグラフは他にもあります。

    • レスポンス コード別のトラフィック
    • API メソッド別のエラー数
    • 50 番目、95 番目、99 番目のパーセンタイルにおける全体的なレイテンシ
    • API メソッド別のレイテンシ(中央値)
  3. グラフをさらに追加するには、[グラフを選択] プルダウン メニューから、事前に作成されている追加のグラフを選択します。

Cloud Monitoring の使用

Cloud Monitoring を使用している場合は、API の使用状況をより詳細に把握するため、Metrics Explorer を使用して、利用可能な指標データを詳しく分析できます。Cloud Monitoring はさまざまな指標をサポートしています。このような指標とフィルタや集計を組み合わせることで、アプリケーションのパフォーマンスを詳しく分析できます。たとえば、リクエスト数の指標を HTTP レスポンス コード クラスのフィルタと組み合わせて、一定期間にわたるエラー率を示すダッシュボードを作成したり、Cloud Pub/Sub API に対するリクエストについて、95 番目のパーセンタイルにおけるレイテンシを調べたりできます。

Metrics Explorer で API 指標を表示するには、リソースタイプとして [Consumed API] を選択してから、serviceruntime 指標のいずれかを選択します。次にフィルタと集計のオプションを使用して、データを絞り込みます。目的の API 使用量の情報が見つかったら、Cloud Monitoring を使用してカスタム ダッシュボードとアラートを作成し、継続的なモニタリングによって堅牢なアプリケーションを維持できます。方法については、次のページをご覧ください。

詳しくは、Metrics Explorer をご確認ください。

API 指標を使用したトラブルシューティング

問題が発生したときに Google に連絡する必要がある場合は、API 指標がとりわけ役立ちます。API 指標を調べることで、サポートへの連絡が不要になることさえあります。次に例を示します。

  • 特定の認証情報の ID では、サービス呼び出しがすべて失敗する一方、他の ID では失敗しない場合は、おそらくそのアカウントに問題があります。アカウントの問題は、チケットをオープンしなくても自力で簡単に解決できます。
  • アプリケーションの問題をトラブルシューティングしていて、アプリケーションのパフォーマンス低下と重要な GCP サービスの 50 番目のパーセンタイルにおけるレイテンシとの間に相関関係があることに気付いたとします。その場合は、必ずサポートに連絡して、できるだけ迅速にサポートが問題に取り組めるよう、そのデータを指摘してください。
  • GCP サービス レポートでのレイテンシには問題がなく、以前と何も変わっていない一方、アプリケーション内の指標では、サービス呼び出しのレイテンシが異常に長いことが示されているとします。これは、ネットワークに問題があることを意味します。 ネットワーク プロバイダ(場合によっては Google)に連絡して、デバッグ プロセスの開始をご依頼ください。

ベスト プラクティス

API 指標は極めて有用なツールですが、API 指標が有用な情報であることを確実にするためには、いくつか考慮しなければならない点があります。こうした考慮事項は、指標の値に基づいてアラートを設定する際はなおさら重要になります。API 指標のデータを最大限に活用するには、次のベスト プラクティスを参考にしてください。

レイテンシが原因で問題が発生していますか?

レイテンシの影響を受けやすいサービスもあれば、スケールや信頼性のほうが重要なサービスもあります。たとえば、一部の API、Cloud StorageBigQuery では、ユーザーは気付かなくても、数秒もの高いレイテンシが生じることがあります。API 指標のデータを調べれば、ユーザーが特定のサービスに求めていることを把握できます。

通常との違いを見つけること

特定の指標の値に基づいてアラートを出す前に、実際に何が通常と異なる動作なのかを考えてください。API 指標を調べると、ほとんどのサービスではレイテンシが通常の分布曲線の中に収まっていることがわかります。つまり、レイテンシの値のほとんどは中央に集まっていて、その上下に外れ値が散らばっているという分布です。このように、指標を利用して通常の分布を把握すれば、アプリケーションの動作が分布曲線の中に収まるよう調整できます。また、指標を利用すると、分布の変化とアプリケーションが正常に動作していない期間を関連付けられるので、問題の根本原因を突き止めるうえでも役立ちます。99 番目のパーセンタイルは中央値と大きく異なっているはずですが、これらのパーセンタイルが時間とともに大幅に変わることはないはずです。

また、特定の種類のリクエストに、他のリクエストよりも時間がかかっていることがわかる場合もあります。たとえば、Google フォトにアップロードする写真のサイズの中央値が 4 MB であるのに対し、自分が通常アップロードする RAW ファイルサイズが 20 MB だとすると、20 点の写真をアップロードするのにかかる平均所要時間はほとんどのユーザーより大幅に長くなるはずですが、それでもそれが、自分にとっての通常の動作です

以上のことから、RPC や 5xx HTTP 呼び出しに 1 秒かかっていることを初めて検出したときにアラートを出しても、それほど意味はありません。アラートを出す代わりに、アプリケーションで発生している問題の潜在的原因として Google サービスを調査し、一定期間にわたる戻りコードとレイテンシの変化量を比較して、アプリケーションで観測された問題と関連する、通常の動作との大きな違いを見つけてください

トラフィック レート

大量のトラフィックが API に流れる場合、API 指標はとりわけ役立ちます。一方、サービスをたまに呼び出すだけの場合は、API 指標は統計として有効ではなく、有意義なトリアージ情報にはなりません。

たとえば、99.5 番目のパーセンタイルにおけるサービスのレイテンシをトラッキングするとします。このとき、1 時間に 100 回の呼び出ししか行わなければ、2 時間にわたる測定で観測できる、99.5 番目のパーセンタイルを表すデータポイントは 1 つだけとなります。これでは、API やアプリケーションの通常の動作についてはほとんど把握できません。トラフィック レート、トラッキング対象のパーセンタイル、そして観測する時間枠で対象とするデータポイントが多数生成されるようにしなければ、モニタリング データは役に立たないものとなってしまいます。

サポートされている API

すべての Google API、Google Cloud APIs のほか、Cloud Endpoints、API ゲートウェイ上に構築された API も、API 指標をサポートしています。API コンシューマの場合は、API ダッシュボードに消費した API 指標が表示されます。API プロデューサーの場合は、エンドポイント ダッシュボードに Produced API の指標が表示されます。