API のモニタリング

ここでは、Cloud Endpoints で自動管理されるログと指標を使用して、自分の API の正常性をモニタリングする方法を説明します。ユーザーが API にリクエストを行うと、Endpoints はそのリクエストとレスポンスに関する情報をログに記録します。Endpoints は、モニタリングの 4 つのゴールデン シグナルのうち、レイテンシ、トラフィック、エラーの 3 つを追跡します。これらの使用状況とパフォーマンスの指標は API のモニタリングに役立ちます。

始める前に

ログと指標を生成して表示するには、API をデプロイして、その API にリクエストを送信する必要があります。まだ何も設定していない場合は、Endpoints クイックスタートをご覧ください。

API の概要

サービスに関連する問題をデバッグする場合も、すべてが正常に機能していることを確認する場合も、API の概要に移動します。

  1. Google Cloud Console で、プロジェクトの [エンドポイント] の [サービス] ページに移動します。

    [Endpoints] の [サービス] ページに移動

  2. API が複数ある場合は、モニタリング対象の API をクリックします。

  3. [概要] タブが表示されていることを確認します。

グラフ

一番上に表示される一部の指標に関するグラフ上で、急激な上昇や下落を簡単に見つけることができます。次の操作が可能です。

  • 最初のグラフの右上にある [グラフを選択] プルダウン リストを使用して、必要な指標のグラフを表示し、表示する必要のないグラフを削除します。プルダウン リストの各エントリに付いている疑問符にポインタを合わせてしばらく静止すると、表示されている指標の説明を見ることができます。

  • 概要の右上隅で、さまざまな時間枠を選択してグラフを調整します。これにより、グラフに表示される値の時間枠が調整され、ポイントの粒度も変化します。

メソッド テーブル

さらに詳細に調べる場合は、グラフの下方にスクロール ダウンし、個々の API メソッドの指標が示された表を表示します。次の操作が可能です。

  • 表の右上にある [列の選択] プルダウン リストを使用して、必要な指標を表示し、表示する必要のない指標を削除します。このリストのエントリにも、ポインタを合わせ続けると説明が表示される疑問符が付いています。

  • 概要の右上隅にある時間枠選択ツールを使用して、テーブル内の指標値に適用する時間枠を選択します。これにより、グラフと表の両方に適用される時間枠が選択されます。

ログ

指標で問題を特定したら、Google Cloud Console の [ログ エクスプローラ] ページに移動し、API のリクエストとレスポンスのログを表示します。

  • 個々の API メソッドのログを表示するには、表内の [ログを表示] をクリックします。

  • API のすべてのメソッドのログを表示するには、右下隅にある [すべてのログを表示] をクリックします。

  • [ログ エクスプローラ] ページから Endpoints のログを直接見つけるには、次の手順を行います。

    1. Google Cloud コンソールで [Stackdriver] > [Logging] ページに移動します。

      [ログ エクスプローラ] ページに移動

    2. [生成された API]、[SERVICE_NAME] を選択します。ここで、SERVICE_NAME は Endpoints サービスの名前です。

ログ エクスプローラのログ構造の詳細については、Endpoints のログ リファレンスをご覧ください。

ログを使用して、以下を行うこともできます。

  • ログ エクスプローラの使用を開始する。

    表示する一連のログエントリを指定するクエリを作成します。たとえば、レイテンシが 300 ミリ秒を超えたすべてのリクエストを取得できます。

  • シンクを構成して管理し、サポートされている宛先にログをルーティングします。これにより、ログを BigQuery にストリーミングしてさらに詳しく分析する、未加工のログを Cloud Storage に保存する、またはログを Pub/Sub メッセージング トピックに送信することができます。

特定のユーザー プロジェクトのフィルタ

特定のユーザー プロジェクトの指標を表示するには、リクエストの発行時に API ユーザーが API キーを送信する必要があります。Endpoints では API キーにより、呼び出し元アプリケーションが関連付けられたプロジェクトを識別するため、API ユーザーの Google Cloud プロジェクト内において API キーが作成済みであることが必要です。API キーを使用して API へのアクセスを制限する方法については、以下をご覧ください。

特定のユーザー プロジェクトの指標をフィルタするには:

  1. API ユーザーのプロジェクトのプロジェクト番号を取得します。API ユーザーのプロジェクトにアクセスする権限がない場合は、プロジェクト番号を取得する権限を持つ担当者に問い合わせてください。

  2. Google Cloud コンソールで、プロジェクトの [Endpoints] > [サービス] ページに移動します。

    [Endpoints] の [サービス] ページに移動

  3. [概要] ページの左上隅にある [プロジェクト番号でフィルタ] フィールドにプロジェクト番号を入力します。

  4. [フィルタ] をクリックします。

ページの指標は、指定したプロジェクトからのトラフィックのみを反映するように更新されます。

アラート

Endpoints によって収集される指標は、Cloud Monitoring でも利用可能です。Monitoring を使用して、レイテンシ、トラフィック、エラーに関するアラートを設定できます。Endpoints 指標を使ってアラートを設定できない唯一のゴールデン シグナルは、飽和度です。飽和度をモニタリングするために必要な指標は、アプリケーションに応じて異なります。飽和度に関するアラートの設定で使用できる指標については、Cloud Monitoring で利用可能な指標のリストをご覧ください。

アラートを設定するには:

  1. Google Cloud コンソールで、アカウントに関連付けられている Endpoints でモニタリングされている API を使用する Google Cloud プロジェクトを選択します。

    Google Cloud コンソールに移動

  2. ナビゲーション パネルを使用して、[モニタリング] を選択します。

  3. 以下を使用して、ゴールデン シグナルにアラートを設定するアラート ポリシーを作成します。

    • レイテンシ

      1. [Condition Type] に「Metric Threshold」と入力します。
      2. [Resource Type] に「Produced API」と入力します。
      3. 指標に「Request latencies」と入力します。
      4. アラートの基準となるしきい値を入力し、アラートガイドの残りの指示に従います。
    • トラフィック

      1. [Condition Type] に「Metric Threshold」と入力します。
      2. [Resource Type] に「Produced API」と入力します。
      3. 指標に「Request count」と入力します。
      4. アラートの基準となるしきい値を入力し、アラートガイドの残りの指示に従います。
    • エラー

      1. [Condition Type] に「Metric Threshold」と入力します。
      2. [Resource Type] に「Produced API」と入力します。
      3. 指標に「Request count」と入力します。
      4. response-code-class に「5xx」と入力します。
      5. アラートの基準となるしきい値を入力し、アラートガイドの残りの指示に従います。

次のステップ