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

ほとんどの Cloud API は、API 使用状況に関する詳細なテレメトリを送信します。この情報は、全体的な消費量のトラッキングやパフォーマンスのモニタリングに役立つだけでなく、ソフトウェアと Google サービスとの間の非効率的な相互作用を発見するうえでも役立ちます。また、この情報から Google Cloud サービスが異常な動作をしているかどうかもわかります。さらに、問題をトラブルシューティングする際に Google によるサポートが必要な場合、この情報によって解決時間が大幅に短縮されることにもなります。

これらの API が提供する指標は、Google 独自のサイト リライアビリティ エンジニアがサービスの正常性を評価する際に使用する「ゴールデン シグナル」です。使用される指標には、全体的なトラフィック、エラー率、(さまざまなパーセンタイルでの)レイテンシがあります。ユーザーに表示される指標は、ユーザーのプロジェクトでの API 使用状況に固有のものであり、必ずしも他のユーザーに関する使用状況やパフォーマンスを反映しているとは限りません。

API 指標を表示できる場所には、API ダッシュボードStackdriver の 2 つがあります。

  • API ダッシュボードには、使用状況の基本的なビューが表示されます。また、API 詳細ページごとに、事前に作成されたグラフも用意されています。このページで使用される指標は、Stackdriver にも公開されます。
  • Stackdriver では、これらの指標をカスタム ダッシュボードに追加して、他の利用可能な統計情報(アプリケーションから送信された指標や、Pub/Sub のクエリ情報、Spanner のクエリデータといった GCP 提供のサービス固有の指標を含む)と相互参照し、アプリケーションの異常な動作を警告するアラートを設定するという方法で、アプリケーションの堅牢なモニタリングを構成できます。

API 指標に関する詳細なリファレンスについては、Stackdriver Monitoring ドキュメントをご覧ください。

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

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

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

  • トラフィック: 有効にされているすべての API に対してプロジェクトが行った 1 秒あたりのリクエスト数
  • エラー: 有効にされている API に対して行ったすべてのリクエストのうち、エラーが発生したリクエストの割合

レイテンシ指標をサポートする API を有効にしている場合、次の指標も表示されます。

  • 中央値のレイテンシ: すべてのリクエストでの中央値のレイテンシ。

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

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

    • レスポンス コード別のトラフィック
    • API メソッド別のエラー数

    API でレイテンシ指標もサポートしている場合は、次のグラフも表示されます。

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

Stackdriver を使用する

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

Metrics Explorer に移動

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

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

次の API は、レイテンシ指標を含め、API の使用状況に関するすべての指標をサポートしています。ここに記載されていない API は、トラフィックおよびエラーに関する指標のみを提供します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...