Google Maps Platform のモニタリング

Cloud Monitoring では、API とサービスの指標、および使用している Google Cloud Platform リソースに関する指標が収集されます。このトピックでは、Cloud Monitoring の構成方法と、Cloud Monitoring を使用して API 使用状況のモニタリング、ダッシュボードの作成、アラートの作成を行う方法について説明します。

Cloud Monitoring には、さまざまな機能やオプションが用意されています。このトピックでは、Cloud Monitoring の概要と基本的な例について説明します。その他の例などすべての機能については、Cloud Monitoring のドキュメントをご覧ください。

Cloud Monitoring を構成する

Monitoring では、次の指標を表示し、管理できます。

  • 単一プロジェクト
  • 1 つの組織内の複数のプロジェクト
  • 複数の組織に渡る複数のプロジェクト

プロジェクトの指標を利用できるようにするには、次の手順を踏みます。

  1. Google Cloud コンソールで [Monitoring] を選択します。

    [Monitoring] に移動

  2. 正しいプロジェクトが選択されていることを確認します。
  3. Monitoring のナビゲーション パネルで、[Metrics Scope] の右側にある [>] をクリックします。次のスクリーンショットは、AllEnvironments プロジェクトが選択されたときに表示されるページを示しています。

    モニタリングされているプロジェクトの指標を示すスクリーンショット。各プロジェクトとそのプロジェクト ID、ロールが一覧表示されます。

[Metrics monitored by this project] という表に、現在の指標のスコープで指標にアクセスできるプロジェクトが一覧表示されます。テーブルの各行には、プロジェクトとそのプロジェクトのロールが一覧表示されます。

  • スコーピング プロジェクト: このプロジェクトには、構成した稼働時間チェック、アラート ポリシー、グループ、ダッシュボードが保存されます。指標のスコープとスコーピング プロジェクトは、1 対 1 の関係です。この例では、AllEnvironments プロジェクトがスコーピング プロジェクトです。
  • モニタリング対象プロジェクト: プロジェクトの指標は、現在の指標のスコープに表示されます。この例では、Staging プロジェクトおよび Production プロジェクトがモニタリング対象プロジェクトです。

[以下のプロジェクトでは、このプロジェクトの指標を表示できます] というラベルの表には、指標のスコープに現在のプロジェクトを含んでいるプロジェクトが一覧表示されます。上のスクリーンショットは、AllEnvironments プロジェクトによって保存された指標にアクセスできる他のプロジェクトはないことを示しています。

プロジェクトの追加と削除方法など、詳細については、Cloud Monitoring を構成するをご覧ください。

指標を調べる

指標データを調べるには、Cloud Monitoring に含まれている Metrics Explorer を使用してグラフを作成します。たとえば、API の割り当て使用状況を表示する場合、Metrics Explorer を使用して最新のデータを表示するグラフを作成できます。

次の画像は、Maps API の割り当て使用状況の詳細を示しています。

すべての Maps API の割り当て指標データのスクリーンショット。棒グラフが表示され、棒グラフの各セグメントはそれぞれ異なる API に対応しています。

この例は積み上げ棒グラフで、各 API を棒グラフの各セグメントによって表しています。折れ線グラフ、棒グラフ、ヒートマップなど、さまざまな種類のグラフを作成できます。また、最大 10 個の指標を表示する単一のグラフを作成することもできます。

上記の画像の内容:

  • グラフの左側にある [Resource Type] フィールドと [Metric] フィールドで、グラフに表示される指標データを定義します。
  • グラフの上部にあるプルダウンを使用して、グラフの種類を選択できます。この例では、[Stacked bar chart](積み上げ棒グラフ)に設定されています。
  • グラフの上部で、期間は [1W](1 週間)に設定されています。
  • グラフの下部には、[service]、[quota_metrics]、API の [method]、グラフのデータを定義する指標の [value] を示すリストがあります。表示されるデータを絞り込むには、[Add Filter] を選択します。

[Metrics Explorer] ページから移動すると、グラフが破棄され、不要なアーティファクトは残されません。また、グラフをカスタム ダッシュボードに保存したり、共有したりすることもできます。ダッシュボードにグラフを追加する方法について詳しくは、以下のダッシュボードを作成するをご覧ください。

単一の指標をグラフ化する

Metrics Explorer を使用してグラフを構成する方法は、次のとおりです。

  1. Cloud コンソールで、[Monitoring] を選択します。

    [Monitoring] に移動

  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。
  3. ツールバーにあるグラフの種類のプルダウンから [Stacked bar chart] を選択して、指標データを棒グラフとして表示します。
  4. [1W](1 週間)などの期間を選択します。
  5. グラフに表示するデータを指定します。メニューに基づいたインターフェースを使用する場合、またはフィルタを入力する場合は、[Configuration] タブを選択します。Monitoring Query Language(MQL)を使用するには、[MQL] タブを選択します。
    1. 割り当て使用状況をグラフ化するには、リソースタイプに [Consumed Quota](使用された割り当て分)を選択します。API 使用状況のグラフを作成する場合は、[Consumed API] または [Google Maps API] を選択します(Google Maps Platform API の使用状況に関する指標の利用について詳しくは、使用状況の指標セクションをご覧ください)。各リソースタイプにカーソルを合わせると、説明が表示されます。
    2. 指標として [Rate quota usage] を選択します。グラフが自動的に更新され、指標データが表示されます。指標には他の割り当てオプションもあります。各指標にカーソルを合わせると、説明が表示されます。Metrics Explorer のフィールドの詳細については、指標の選択グラフ化されたデータの表示方法の選択をご覧ください。
  6. (省略可)表示を絞り込むには、次のオプションを使用します。
    1. 表示するデータのサブセットを指定するには、フィルタを追加します。フィルタを追加するには、[Add filter] を選択して、ダイアログに入力します。詳細については、グラフ化されたデータのフィルタをご覧ください。たとえば、単一の API のデータを表示する方法は次のとおりです。
      1. [Label] フィールドで [method] を選択します。
      2. [Comparison] フィールドで [= (equals)] を選択します。
      3. [Value] フィールドで、特定のメソッドの名前を選択します。 表示するデータがあるメソッドの名前を選択するよう求められます。
      4. [Done] を選択すると、グラフが更新されます。
    2. ラベルで時系列をグループ化するには、[Group by] フィールドを使用します。このフィールドの値を選択すると、[Aggregator] フィールドの値が自動的に選択されます。
    3. 時系列の結合方法を指定するには、[Aggregator] フィールドを設定します。たとえば、[Group by] フィールドが空で、[Aggregator] フィールドが [mean] に設定されている場合は、時系列の平均がグラフに表示されます。
    4. 個々の時系列の処理方法を構成するには、詳細オプションを選択します。詳細については、Metrics Explorer 使用時の指標の選択をご覧ください。
  7. 必要に応じてダッシュボードに追加します。

    [Metrics Explorer] ページから移動すると、グラフは破棄されます。必要に応じて [Save Chart] を選択し、新規または既存のダッシュボードにグラフを保存できます。ダッシュボードにグラフを追加する方法について詳しくは、以下のダッシュボードを作成するをご覧ください。

複数の指標をグラフ化する

同じグラフ上に、複数の指標を表示できます。たとえば、割り当て使用状況のグラフに、割り当て上限を表示できます。グラフには最大 10 個の指標を表示できます。

既存のグラフに指標を追加する手順は次のとおりです。

  1. 既存のグラフで、画面の下部にある [別の指標を追加] を選択します。
  2. 指標を選択して、上記の元の指標を構成したのと同じ方法で、その指標の時系列を表示する方法を指定します。

指標を調べる方法について詳しくは、以下をご覧ください。

ダッシュボードを作成する

ダッシュボードを使用すると、時系列データをグラフのコレクションとして表示してモニタリングできます。Cloud Monitoring は、事前定義されたダッシュボードとカスタム ダッシュボードをサポートしています。

  • 事前定義されたダッシュボードは、使用する Google Cloud Platform サービスに自動的にインストールされます。これらのダッシュボードは構成できません。
  • カスタム ダッシュボードは、ユーザーが作成するダッシュボードです。カスタム ダッシュボードを使用すると、表示するデータとそのデータの表示方法を定義できます。たとえば、プロジェクトに保存されている指標データ、アラート ポリシー、ログを表示できます。時系列データは、グラフでの表示、ゲージまたはスコアカードを使用した表示、または表形式での表示が可能です。

カスタム ダッシュボードを作成するには、Cloud コンソールまたは Cloud Monitoring API を使用します。以下の画像は、カスタム ダッシュボードの 2 つのグラフを示しています。

  • 割り当てグラフ(左)
  • API リクエスト数グラフ(右)

2 つのグラフを示すカスタム ダッシュボードのスクリーンショット。左側は割り当てグラフ、右側は API 使用状況のグラフです。
  どちらのグラフも、横軸にタイムポイントが表示されます。

カスタム ダッシュボードを作成するには、指標グラフを作成し、ダッシュボードに追加します。Metrics Explorer でグラフを作成し、新規または既存のダッシュボードに追加できます。または、ダッシュボードを作成してから、編集してグラフを追加することもできます。

Cloud Monitoring API を使用してカスタム ダッシュボードを管理する場合、Metrics Explorer で以下の 2 つの便利なユーティリティを使用できます。

  • ダッシュボードに追加するグラフの JSON 表現を生成するには、Metrics Explorer でグラフを構成します。その後 Metrics Explorer ツールバーの [More options] メニュー項目から JSON 表現を使用できます。
  • Cloud Monitoring API で使用される Monitoring フィルタの構文を識別するには、Metrics Explorer のメニューに基づいたインターフェースを使用してグラフを構成します。指標とフィルタを選択したら、ダイレクト フィルタモードに切り替えて、同等の Monitoring フィルタを表示します。

カスタム ダッシュボードを作成する

カスタム ダッシュボードを作成する方法は次のとおりです。

  1. Cloud コンソールで、[Monitoring] を選択します。

    [Monitoring] に移動

  2. ナビゲーション パネルで [ダッシュボード] を選択します。
  3. [ダッシュボードの概要] ページで、[Create dashboard] をクリックします。
  4. ダッシュボードにグラフを追加するたびに、次の操作を行います。
    1. [グラフを追加] からグラフの種類を選択するか、グラフ ライブラリからグラフ領域にグラフをドラッグします。

      選択した種類の事前構成されたグラフが表示されます。次の例は、折れ線グラフとその構成ペインを示しています。

      ダッシュボードに追加するグラフの作成に使用する Metrics Explorer のスクリーンショット。

    2. [Resource type] と [Metric] を選択し、上のグラフの作成時と同じようにフィルタを適用します。

      選択肢について詳しくは、ダッシュボード ウィジェットを追加するをご覧ください。

  5. (省略可)ダッシュボード ツールバーで、[グラフを追加] をクリックして別のグラフを追加し、上の手順を繰り返してグラフをカスタマイズします。
  6. 編集が完了したら、左矢印を選択してダッシュボードから移動するか、その他の [Monitoring] メニュー項目を選択します。ダッシュボードは自動的に保存されます。

ダッシュボードを表示する

ダッシュボードを表示する方法は次のとおりです。

  1. Cloud コンソールで、[Monitoring] を選択します。

    [Monitoring] に移動

  2. ナビゲーション パネルで [ダッシュボード] を選択します。
  3. リストから、作成したカスタム ダッシュボードまたは事前定義されたダッシュボードを選択します。

ダッシュボードの作成について詳しくは、以下をご覧ください。

使用状況の指標

Google Maps Platform API の使用状況をモニタリングするには、次の 2 つの指標グループを使用します。ServiceRuntime 指標(リソースタイプ consume_api)は、Google Cloud APIs の大半に対して利用できます。Google Maps Platform 指標は、Google Maps Platform API 固有の指標(リソースタイプ maps.googleapis.com/Api)です。

どちらの指標も、API 使用状況トラフィックを分割するために、同じリソースラベルのセット(project_idservicemethodversionlocationcredential_id)をサポートしています。リソースラベルの内容については、対応する指標リソースのドキュメントを確認してください。

指標の各グループには、使用状況のモニタリングに関して 2 つの指標タイプ(リクエスト カウントリクエスト レイテンシ)があります。

リクエスト カウント指標では、使用状況トラフィックを protocolgrpc_status_coderesponse_coderesponse_code_class の指標ラベルで分割できます。また、Google Maps Platform 指標では platform_type で分割できます。

リクエスト レイテンシ指標で使用状況トラフィックを分割できるのは、Google Maps Platform 指標の protocolplatform_typeresponse_coderesponse_code_class 指標ラベルのみです。

指標タイプと指標ラベルについて詳しくは、対応する指標グループのドキュメントをご覧ください。

レスポンス ステータスとレスポンス コードラベルの対応関係

次の表は、Google Maps Platform API リクエストに対するレスポンスで返されるレスポンス ステータス コードおよび HTTP レスポンス コードと、Cloud Monitoring で利用可能なレスポンス コードラベル(HTTP レスポンス コード、HTTP レスポンス コード クラス、GRPC ステータス コード)との対応関係を示しています。GRPC ステータス コードは、gRPC リクエストに対しては数値の gRPC レスポンス コードで示され、HTTP リクエストに対しては gRPC に対応したコードで示されます。

API レスポンスで返されるレスポンス コード モニタリング レポートのレスポンス コード
Maps API のステータス HTTP レスポンス コード HTTP レスポンス コード HTTP レスポンス コードクラス GRPC ステータス コード
OK 200、
204、
302
200、
204、
302
2xx、
3xx
0(OK)
DATA_NOT_AVAILABLE、
NOT_FOUND、
ZERO_RESULTS
200 200 / 4041 2xx / 4xx1 5(NOT_FOUND)1
NOT_FOUND(Street View Static API、Geolocation API、Roads API)
ZERO_RESULTS(Street View Static API)
404 404 4xx 5(NOT_FOUND)
INVALID_REQUEST(無効なパラメータ値)、
MAX_ROUTE_LENGTH_EXCEEDED、
MAX_WAYPOINTS_EXCEEDED
など
200 / 400 400 4xx 3(INVALID_ARGUMENT)
INVALID_REQUEST(無効なパラメータ、パラメータの未指定、リクエスト解析エラー) 200 / 400 400 4xx 3(INVALID_ARGUMENT)
REQUEST_DENIED 200 / 403、
200 / 400
403、
4011
4xx1 7(PERMISSION_DENIED)、
16(UNAUTHENTICATED)
OVER_DAILY_LIMIT、
OVER_QUERY_LIMIT、
RESOURCE_EXHAUSTED、
dailyLimitExceeded、
rateLimitExceeded、
userRateLimitExceeded
200 / 403、
429
4291 4xx1 8(RESOURCE_EXHAUSTED)
UNKNOWN_ERROR 200 / 500、
503
5001
503
5xx1 2(UNKNOWN) / 13(INTERNAL)1
14(UNAVAILABLE)
1 Google Maps Platform の各 API では、エラーコードのレポートの整合性を高めるため、1)Maps API のステータス DATA_NOT_AVAILABLENOT_FOUNDZERO_RESULTS の HTTP レスポンス コード / クラスを 200 / 2xx から 404 / 4xx に(併せて GRPC ステータス コードを 0OK)から 5NOT_FOUND)に) - ステータス、2)Maps API のステータス REQUEST_DENIED の HTTP レスポンス コード / クラスを 200 / 2xx および 400 / 4xx から 403 / 4xx(および GRPC ステータス コード 7PERMISSION_DENIED)に、3)Maps API のステータス REQUEST_DENIED の HTTP レスポンス コード / クラスを 200 / 2xx および 403 / 4xx から 401 / 4xx(GRPC ステータス コード 16UNAUTHENTICATED)に、4)Maps API のステータス OVER_QUERY_LIMITdailyLimitExceededrateLimitExceededuserRateLimitExceeded の HTTP レスポンス コード / クラスを 200 / 2xx および 403 / 4xx から 429 / 4xx に、5)Maps API のステータス UNKNOWN_ERROR の HTTP レスポンス コード / クラスを 200 / 2xx から 500 / 5xx(および GRPC ステータス コード 2UNKNOWN)および 13INTERNAL))に、それぞれ移行しています。移行期間中は、両方のレスポンス コードが表示されます。Maps API のレスポンスで返されるレスポンス コードに変更はありません。経時的に報告されるレスポンス コードの内訳は、Metrics Explorer で確認できます。

アラートを作成する

アラートによって、アプリケーションの問題をタイムリーに認識し、短時間で問題を解決できます。Cloud Monitoring では、アラート ポリシーで、アラートを受け取る状況と通知方法を記述します。

アラート ポリシーは、簡単にすることも、複雑にすることもできます。アラート ポリシーを使用すると、1 つの時系列で条件が満たされるかどうか、または複数の時系列が条件を満たす必要があるかどうかを構成できます。以下に例を示します。

  • 特定の API のリクエスト数が 5 分間に 1,000 件を超えた場合、通知を受け取ります。
  • 3 個以上の API で、HTTP 200 レスポンスの 90 パーセンタイルが 100 ミリ秒のレイテンシを超えた場合、オンコール チームに通知します。

次の画像は、API のリクエスト数が 5 分間に 20 件を超えた場合に通知を生成するアラート定義を示しています。

すべての Maps API の API リクエスト数を行に表示し、アラートしきい値を水平線で示しているアラート定義のスクリーンショット。

上記の画像の内容:

  • グラフは、時間の経過に合わせたさまざまな API の API 呼び出し数を示しています。
  • 赤い線はアラートのしきい値を示しています。API 呼び出しが 5 分間にこのしきい値を超えると、アラートがトリガーされます。この例では、1 つの API がしきい値を超えています。

アラート ポリシーの条件が満たされると、Cloud Monitoring によってインシデントが開かれ、通知が送信されます。

  • インシデントは、条件が満たされたときにモニタリング対象リソースに関する情報を格納する永続的なレコードです。条件が満たされなくなると、インシデントは自動的に終了します。アラート ダッシュボードでは、対応待ちのインシデントと終了したインシデントをすべて表示できます。
  • アラート ポリシーを構成するときに、通知の送信先となるユーザーを指定します。 Monitoring は、メール、Cloud モバイルアプリ、PagerDuty や Slack などのサービスを含む、一般的な通知チャンネルをサポートしています。通知チャンネルの全一覧については、通知オプションをご覧ください。

アラートの種類

Cloud Monitoring は、多くの種類のアラートをサポートしています。たとえば、次のアラートを定義できます。

  • 指標しきい値アラート: 指標が特定の期間時間枠において値を上回るまたは下回る場合、あるいは事前定義された割合で指標が増加または減少する場合にアラートをトリガーします。
  • 予算アラート: しきい値ルールを設定し、費用(実際の費用または予測費用)が、設定したルールに基づく予算のパーセンテージを超えると通知をトリガーします。このアラートでは API 使用量の上限は設定されず、指定した金額に費用が近づいた場合にアラートが通知されるだけです。
  • 割り当てアラート: Google Cloud Platform には、プロジェクトまたは組織によって消費されるリソースの追跡や制限に使用できるさまざまな割り当てがあります。使用量が割り当て上限に近づいたら、アラートを使用して通知を送信します。

詳細については、アラート ポリシーの種類をご覧ください。

アラート ポリシーを管理する

Cloud コンソールまたは Cloud Monitoring API を使用して、アラート ポリシーをプロジェクトに追加できます。プロジェクトの指標ベースのアラート ポリシーのリストを表示する方法と、それらのポリシーを変更する方法については、以下をご覧ください。

アラートを作成する

アラートを作成すると、次のことができます。

  • 指標データに基づいて、アラートをトリガーする条件を定義します。
  • アラート通知の送信先となる通知チャンネルを定義します。

以下の例は、いずれかの API において、Google Maps Platform サービスの使用率が 5 分間で 2 件のリクエストを超えた場合にトリガーされるアラートの設定方法を示しています。

アラートを作成する手順は次のとおりです。

  1. Cloud コンソールで、[Monitoring] を選択します。

    [Monitoring] に移動

  2. [アラート] を選択します。
  3. [Edit Notifications Channels] を選択して、アラートが通知を送信する方法を定義します。この例では、メールアドレスを使用します。
    1. [Email] チャンネルで [Add New] を選択します。
    2. メールアドレス表示名を入力します。
    3. [Save] を選択します。
  4. [アラート] を選択します。
  5. [Create Policy] を選択します。
  6. 期間([7 日] など)を選択します。
  7. [アラート条件] で [New condition] を選択します。
    1. [指標を選択] をクリックし、リソースに [Consumed API] を選択し、指標に [Request Count] を選択してから [適用] を選択します。
    2. (省略可)グラフの下部には、[service]、[quota_metrics]、API の [method]、指標の [] のリストが表示されます。この情報に基づいてデータをフィルタリングするには、[Add filter] を選択します。たとえば、フィルタを使用して、メソッドgoogle.places.Autocomplete.http と等しい場合にアラートをトリガーするよう指定できます。
    3. [Transform data] で、[ローリング ウィンドウ] に [5 分] を選択し、[ローリング ウィンドウ関数] に [mean] を選択します。
    4. [Next] を選択します。
  8. [Configure alert trigger] で、[しきい値] を 2 に設定し、5 分間のウィンドウでリクエストが 2 つを超えた場合にアラートをトリガーするよう指定します。グラフには、選択した期間のアラートの上限を示す赤色の線が表示されます。グラフから、アラートがトリガーされた場所を確認できます。必要に応じて、このグラフを使用して上限を調整できます。
  9. [Next] をクリックします。
  10. [Configure notifications and finalize alert] ページで、次の操作を行います。
    1. 通知チャンネル用に作成したメールアドレスを選択します。
    2. [Name the alert] に「My Test Alert」と入力します。
    3. [ポリシーを作成] を選択します。
  11. API リクエストをいくつか発行します。必ず 5 分以内に API リクエストを 3 つ以上発行してアラートメール通知を生成します。
  12. アラートのメールが届いたら、[アラート] ページに移動します。
    1. アラートのリスト内の表でアラートをクリックすると、詳細が表示されます。
    2. アラート名をクリックすると、アラートをトリガーしたイベントを示すグラフなど、アラートに関する情報が表示されます。

アラートについて詳しくは、以下をご覧ください。