アラートと通知の設定

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する。

API Monitoring の主な目的の 1 つは、トラフィックやレイテンシの急増など、異常なイベントやパターンを知らせることです。このようなイベントを追跡するため、アラートを設定できます。アラートは、指定されたイベントが発生したときにトリガーされます。アラートをトリガーする実際のイベントは、インシデントと呼ばれます。

アラートには特定のルールを設定できます。たとえば、プロキシでレスポンス コード 500(内部サービスエラー)が発生した場合にトリガーすることもできます。アラート対象のインシデントが発生したら、Google Cloud コンソールの [アラート] ページの [インシデント] ペインで詳細を確認できます。

特定のアラートがトリガーされたときに通知を受け取るには、アラートの通知を設定します。インシデントが発生すると、詳細な調査のために Google Cloud コンソールと Apigee UI へのリンクを含むイベントの概要が記載された通知が送信されます。

API Monitoring には、次の 2 種類のアラートがあります。

指標ベースのアラート

指標ベースのアラートは、API データの指標が指定されたレベルに達した場合、または急速に変化し始めた場合にトリガーされます。2 つの主なプロパティを使用してアラートルールを定義します。

  • 指標: アラートをトリガーする数量(リクエストの数など)。
  • しきい値: アラートをトリガーするために必要な指標のレベル。

次のセクションでは、指標ベースのアラートの例を示します。

プロキシのレスポンス コード 500 のアラート

次の例では、レスポンス コード 500(内部サーバーエラー)が返されたときのアラートを作成しています。どのレスポンス コードにも、同様のアラートを作成できます。

アラートを作成するには、まず次の手順を行います。

  1. Google Cloud コンソールで [アラート ポリシーを作成] ページを開きます。

  2. [指標を選択] をクリックします。
  3. [有効] ボタンの選択を解除します。

    注: 組織に最近の API トラフィック データが存在しない場合は、このオプションを選択解除しない限り、次のステップの指標は表示されません。

  4. 次のように指標を選択します。
    1. Apigee ハイブリッド v1.12 を使用している場合は、次のコードをコピーして [指標を選択] フィールドに貼り付けます。
      apigee.googleapis.com/proxy/response_count
    2. [Apigee Proxy] を選択します。
    3. 右側に表示されたペインで、[プロキシ] を選択します。
    4. 右側のペインで、[Apigee proxy response count] を選択します。
    5. [適用] をクリックします。
  5. レスポンス コードのフィルタを次のように追加します。
    1. [フィルタを追加] をクリックします。
    2. [Filter] フィールドをクリックし、プルダウン メニューから [response_code] を選択します。
    3. [Comparator] で [=] を選択します。
    4. [Value] フィールドに「500」と入力します。
    5. [完了] をクリックします。

アラート トリガーを構成する

アラートをトリガーするイベントを構成するには、まず左側のペインで [トリガーの設定] をクリックします。以下の手順に沿って操作を行います。

  1. [Condition Types] で [Threshold] を選択します。
  2. [Alert trigger] フィールドで、[任意の時系列の違反] を選択します。
  3. [しきい値の位置] フィールドで、[しきい値より上] を選択します。
  4. [しきい値] フィールドに「1」と入力します。

この設定では、コード 500 のレスポンスが返されるとアラートがトリガーされます。

[NEXT] をクリックして [Configure notifications and finalize alert] ペインを開きます。

アラートの通知を設定する

[Configure notifications and finalize alert] ペインで、アラートがトリガーされたときに送信される通知を設定できます。手順は次のとおりです。

  1. [通知チャンネル] フィールドをクリックします。メールアドレスや SMS 番号など、通知用のチャネルをすでに作成している場合は、[通知チャンネル] でチャネルを選択できます。

    それ以外の場合は、[Manage Notification Channels] を選択して、チャネルを追加する必要があります。[通知チャンネル] ペインが開き、1 つ以上のチャネルを追加できます。詳細については、通知チャンネルを管理するをご覧ください。完了したら、[Configure notifications and finalize alert] ペインに戻ります。

    注: 新しいチャネルを作成した後に、[Manage Notification Channels] の横にある更新ボタンをクリックしなければならない場合があります。

    1 つ以上の通知チャネルを選択したら、[OK] をクリックします。

  2. [Documentation] フィールドには、通知と一緒に送信されるメッセージを追加できます。たとえば、メッセージにアラートの理由を追加することも、対応方法を説明するドキュメントへのリンクを含めることもできます。
  3. [Next] をクリックして、アラートの詳細を確認します。問題がなければ、[ポリシーを作成] をクリックしてアラート ポリシーを作成します。

条件の追加: プロキシの HTTP POST リクエストに対するレスポンス コード 500 のアラート

1 つのアラートに対して複数の条件を作成できます。たとえば、前のセクションで説明したプロキシのレスポンス コード 500 のアラートに、HTTP POST リクエストに対してのみアラートがトリガーされるという条件を追加できます。この場合、前の例と同じ手順を行いますが、ステップ 8 の後に、次のように別のフィルタを追加します。

  1. [フィルタを追加] をクリックします。
  2. [フィルタ] フィールドをクリックし、プルダウン リストから [method HTTP method] を選択します。
  3. [コンパレータ] フィールドで [=] を選択します。
  4. [] に「POST」と入力します。
  5. [完了] をクリックします。

その後で、アラート トリガーを構成するの手順に進みます。完了後、プロキシが HTTP POST リクエストから 500 レスポンス コードを受信すると、アラートがトリガーされます。

関連する例については、レスポンス コードと HTTP メソッドの組み合わせに関するアラートをご覧ください。

インシデントの詳細の表示

アラートをトリガーする API イベントは、インシデントと呼ばれます。最近のインシデントの詳細は、Google Cloud コンソールの [アラート] ページで確認できます。

指標とフィルタ

指標は、アラートをトリガーする量で、たとえばリクエストの数を表します。このセクションでは、指標ベースのアラートの作成に使用できる指標とフィルタについて説明します。 指標には 2 つのタイプがあります:

  • 新しい指標: パフォーマンスと信頼性が向上した Apigee 指標の新しいバージョン。現在、これらの指標は Apigee と Apigee ハイブリッド v1.12 以降で使用できます。可能であれば、新しい指標を使用することをおすすめします。
  • 元の指標: 元の指標は、Apigee ハイブリッド v1.10 と v1.11 での使用のため、引き続きサポートされています。

新しい指標

次の表に新しい指標を示します。

指標 説明
apigee.googleapis.com/proxy/request_count 最後のサンプルが記録されてからの Apigee プロキシへのリクエストの数。
apigee.googleapis.com/proxy/response_count Apigee API プロキシによって送信されたレスポンスの数。
apigee.googleapis.com/proxy/latencies レイテンシの分布。Apigee プロキシがリクエストを受信してから、レスポンスが Apigee プロキシからクライアントに送信された時点までが計算されます。
apigee.googleapis.com/target/request_count 最後のサンプルが記録されてから Apigee ターゲットに送信されたリクエストの数。
apigee.googleapis.com/target/response_count 最後のサンプルが記録されてから Apigee ターゲットから受信したレスポンスの数。
apigee.googleapis.com/target/latencies レイテンシの分布。リクエストが Apigee ターゲットに送信された時点から、レスポンスが Apigee プロキシによって受信される時点までが計算されます。 この時間には Apigee API プロキシのオーバーヘッドは含まれません。

元の指標

上記の表に示されている指標の元のバージョンは次のとおりです。これらの指標は、Apigee ハイブリッドで現在もサポートされています。

指標 説明
apigee.googleapis.com/proxyv2/request_count Apigee API プロキシが受信したリクエストの合計数。
apigee.googleapis.com/proxyv2/response_count Apigee API プロキシによって返されるレスポンスの合計数。
apigee.googleapis.com/proxyv2/latencies_percentile リクエストに対するすべての API プロキシ レスポンスのパーセンタイル。
apigee.googleapis.com/targetv2/request_count Apigee API ターゲットが受信したリクエストの合計数。
apigee.googleapis.com/targetv2/response_count Apigee API ターゲットによって返されるレスポンスの合計数。
apigee.googleapis.com/targetv2/latencies_percentile リクエストに対するすべての API ターゲット レスポンスのパーセンタイル。

フィルタ

フィルタを使用すると、API データのサブセットに対してアラートを作成できます。フィルタでは、サブセットを定義する条件を指定します。たとえば、1 つのプロキシのデータに基づいてアラートを作成できます。

次のフィルタから選択できます。

フィルタ 説明 フィルタを適用できる指標
env データの環境。 すべて
location データの場所。 すべて
proxy_name データのプロキシ。 すべて
runtime_version データのランタイム バージョン。 元の指標
instance_id データのインスタンス ID。 元の指標
method データの HTTP メソッド。 すべて
response_code データの HTTP レスポンス コード。 apigee.googleapis.com/proxy/response_count

apigee.googleapis.com/proxyv2/response_count
fault_code データの障害コード。 apigee.googleapis.com/proxy/response_count

apigee.googleapis.com/proxyv2/response_count
fault_source データの障害発生元。 apigee.googleapis.com/proxy/response_count

apigee.googleapis.com/proxyv2/response_count
percentile Apigee プロキシ レスポンス レイテンシのパーセンタイル。 apigee.googleapis.com/proxyv2/latencies_percentile

ログベースのアラート

前のセクションで説明した指標ベースのアラートに加えて、Cloud Logging によって保存された API をモニタリングするログベースのアラートを作成することもできます。

ログベースのアラートの設定

以下の例は、ログベースのアラートの設定方法を示しています。詳細については、ログ エクスプローラでクエリを作成するをご覧ください。

  1. Google Cloud コンソールでログ エクスプローラを開きます。
  2. ログ エクスプローラの右側にある [クエリを表示] を選択します。
  3. [クエリ] ペインで、次の例のようなクエリを入力します。
    resource.type="apigee.googleapis.com/Environment"
    logName="projects/<project_id>/logs/apigee.googleapis.com%2Fanomaly_event"

    アラートの時間間隔を設定します。

  4. [クエリを実行] をクリックします。結果は、[アラートの対象となるログエントリが返されることを確認する] に表示されます。
  5. [クエリ] ペインで [アラートを作成] をクリックします。
  6. [ログベースのアラート ポリシーの作成] ダイアログの手順に沿って、アラートを作成します。詳細については、ログベースのアラートの構成をご覧ください。