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

このページでは、Cloud Monitoring ダッシュボードを使用して、利用可能な指標の表示、カスタム ダッシュボードの作成、アラートの設定を行う方法について説明します。

Firestore の指標を表示する

Firestore のさまざまな指標を確認してグラフを作成するには、Google Cloud コンソールの Cloud Monitoring 内で Metrics Explorer を使用します。グラフの作成の詳細については、Metrics Explorer でグラフを作成するをご覧ください。

Cloud Monitoring ダッシュボードを設定する

Cloud Monitoring では、カスタム ダッシュボードを使用して、自分に関連する情報を体系的に表示できます。たとえば、本番環境でプロジェクトのパフォーマンス指標とアラート ポリシーを表示するダッシュボードを作成できます。

カスタム ダッシュボードの設定の詳細については、カスタム ダッシュボードを管理するダッシュボード ウィジェットを追加するをご覧ください。

エラー率をモニタリングする

モニタリング ダッシュボードを作成して、エラー率をモニタリングし、データベースの可用性を確保できます。可用性とは、データベースが予想される時間枠内で、正常なステータス コードで応答する率を指します。Firestore SLA では、有効なリクエストに分類される事項の詳細が定義されています。

エラー率は、エラー レスポンスとなったリクエストの数を、送信されたリクエストの合計数で割ることによって求められます。

エラー率を計算するダッシュボードの例は、4xx または 5xx のエラー コードを持つ有効なリクエストの api/request_count と、すべての有効なリクエストの api/request_count の A/B 比率を計算することで作成できます。

 エラー率で可用性を理解する
図 1. エラー率で可用性を理解します。

図 1 に、Metrics Explorer の api/request_count 指標を使用してエラー率の比率を可視化する方法を示します。

アラート ポリシーを作成する

Cloud Monitoring では、指標条件が変化したときに通知されるアラートを作成できます。これらのアラートを使用すると、ユーザーに影響を与える前に潜在的な問題について通知できます。

アラートの作成の詳細については、指標しきい値アラート ポリシーの作成をご覧ください。

レイテンシ アラート ポリシーを作成する次の例について考えてみます。アラート ポリシーは、5 分間のローリング ウィンドウで p99 レイテンシをチェックします。p99 レイテンシが 5 分間で 250 ミリ秒を超えると、アラートがトリガーされます。

コンソール

  1. Google Cloud コンソールで、モニタリングページに移動して、 アラートを選択します。

    [モニタリング] に移動

  2. [ポリシーを作成] を選択します。

  3. [消費した API] リソースから [リクエストのレイテンシ] 指標を選択します。

  4. Firestore ネイティブ データベース用の firestore.googleapis.com のサービス フィルタを追加します。

    トリガーを作成する api/request_latencies 指標を選択します。
  5. [次へ] をクリックしてトリガーを構成します。

  6. [Condition Types] で [Threshold] を選択します。

    しきい値条件は、250 ミリ秒のしきい値に設定されます。p99 レイテンシ値がローリング ウィンドウ全体(5 分)にわたって維持されると、アラートがトリガーされます。

    指標のしきい値を追加します。
  7. [しきい値] を [250] に設定します。

  8. [次へ] をクリックして通知を構成します。

  9. アラート ポリシー名を設定し、[次へ] をクリックします。

  10. アラート構成を確認して [ポリシーを作成] をクリックします。

MQL

Monitoring Query Language(MQL)クエリを使用して、同じレイテンシのアラート ポリシーを実装できます。MQL の使用例については、MQL クエリのサンプルをご覧ください。

      fetch consumed_api
      | metric 'serviceruntime.googleapis.com/api/request_latencies'
      | filter (resource.service == 'firestore.googleapis.com')
      | group_by 5m,
          [value_request_latencies_percentile:
            percentile(value.request_latencies, 99)]
      | every 5m
      | condition val() > 0.25 's'