アラートと通知の設定

アラート条件は、特定のステータス コード(404 / 502 / 2xx / 4xx / 5xx など)、レイテンシ、障害コードのしきい値を定義します。これらのしきい値を超過すると、アラートがトリガーされて UI に表示されます。また、メール、Slack、PagerDuty、webhook などの各種チャネルを通じて通知が送信されます。アラートは、環境、API プロキシ、ターゲット サービス、リージョンの各レベルで設定できます。アラートがトリガーされると、アラートと通知を追加する際に定義した方法で通知が届きます。

たとえば、本番環境にデプロイされた商品注文 API プロキシで、5 分間に 5xx エラー率が 23% を超過した場合に、アラートをトリガーし、運用チームに通知を送信できます。

次の図は、アラートが UI にどのように表示されるかを示しています。

以下は、アラートがトリガーされたときに受信するメール通知の例です。

アラート通知の本文内で次のリンクをクリックすると、詳細情報が表示されます。

  • View details: アラート設定や過去 1 時間の各条件のアクティビティなどの詳細が表示されます。
  • Alert definition: アラートの定義が表示されます。
  • Alert history: 特定のアラートに関する詳細が表示されます。
  • View playbook: 推奨される対応がある場合、その内容が表示されます。
  • View API Analytics Report: アラート条件のカスタム レポートが表示されます。

次のセクションでは、アラートと通知の設定方法と管理方法について説明します。

アラート設定を表示する

現在定義されているアラート設定を表示するには、Edge UI で [Analyze] > [Alert Rules] をクリックします。

次の図のようなアラートページが表示されます。

アラートメール

図でハイライト表示されているように、アラートページでは以下を行うことができます。

組織に対してトリガーされたアラートの履歴を表示する

過去 24 時間に組織に対してトリガーされたアラートの履歴を表示するには、Edge UI の [Analyze] > [Alert Rules] をクリックし、[History] タブをクリックします。

[Alert History] ページが表示されます。

アラート履歴

アラートの名前をクリックすると、Investigate ダッシュボードでアラートの詳細が表示されます。アラート名全体またはアラート名の一部を検索することで、リストをフィルタリングできます。

アラートと通知を追加する

アラートと通知を追加するには:

  1. Edge UI で [Analyze] > [Alert Rules] をクリックします。
  2. [+Alert] をクリックします。
  3. アラートに関する次の一般情報を入力します。
    フィールド 説明
    Alert Name アラートの名前。トリガー要因を表すわかりやすい名前を使用します。名前は 128 文字以下でなければなりません。
    Description アラートの説明。
    Environment プルダウン リストから環境を選択します。
    Status アラートを有効または無効に切り替えます。
  4. アラートをトリガーする最初の条件の指標、しきい値、ディメンションを定義します。
    条件フィールド 説明
    Metric 次のいずれかの指標を選択します。
    • Fault Code: リストからカテゴリ、サブカテゴリ、障害コードを選択します。あるいは、カテゴリまたはサブカテゴリ内で次のいずれかを選択します。

      • All - このカテゴリ / サブカテゴリ内のすべての障害コードが指標条件を満たす必要があります。
      • Any - このカテゴリ / サブカテゴリ内のいずれかの障害コードが指標条件を満たす必要があります。

      詳細については、障害コードのリファレンスをご覧ください。

    • Latency: プルダウン リストからレイテンシの値を選択します。具体的には、p50、p90、p95、p99 から選択します。
    • Status Code: 一覧から 401、404、2xx、4xx、5xx HTTP. などのステータス コードを選択します。

      :

      • この API を使用すると、より幅広いステータス コードを設定できます。この API を使用して、200~299、400~599 のステータス コードと 2xx、4xx、5xx のワイルドカード値を指定します。アラートの作成をご覧ください。
      • レート制限アラート(HTTP ステータス コード 429)の場合は、指標を Spike Arrest 障害コードに設定します。
      • AssignMessage ポリシーを使用して、プロキシエラーまたはターゲット エラーから HTTP レスポンス コードを書き換えることができます。API Monitoring では、書き換えられたコードは無視され、実際の HTTP レスポンス コードがログに記録されます。

    Threshold 選択した指標のしきい値を構成します。

    • Fault Code: 一定期間における百分率、カウント、または 1 秒あたりのトランザクション数(TPS)としてしきい値を設定します。
    • Latency: 一定期間における合計レイテンシ時間(ms)またはターゲット レイテンシ時間としてしきい値を選択します。この場合、トラフィックが存在する場合に 1 分ごとに更新される、指定のパーセンタイルでモニタリングされているレイテンシが、指定の期間を対象とするタイムスパンのしきい値条件を超過した場合に、アラートがトリガーされます。つまり、しきい値条件は、期間全体を対象にして集計されるわけではありません。
    • Status Code: 一定期間における百分率、カウント、または 1 秒あたりのトランザクション数(TPS)としてしきい値を設定します。
    Dimension [+Add Dimension] をクリックし、API プロキシ、ターゲット サービス、デベロッパー アプリ、リージョンなどの結果を返すディメンションの詳細を指定します。

    特定のディメンションを以下に設定した場合:

    • All - ディメンション内のすべてのエンティティが指標条件を満たす必要があります。[Latency] タイプの指標に対して [All] は選択できません。
    • Any - リージョンにのみ適用できます。ディメンション内の 1 つのエンティティが、どれか 1 つのリージョンの指標条件を満たす必要があります。
      : API プロキシまたはターゲット サービスでは、すべての機能をサポートするコレクションを選択してください。
    • Collections - リストからコレクションを選択して、一連の API プロキシまたはターゲット サービスを指定します。この場合、コレクションのエンティティが条件を満たす必要があります。

    [Target] にディメンションを設定する場合は、ターゲット サービスまたは ServiceCallout ポリシーによって指定されているサービスを選択できます。ServiceCallout ポリシーのターゲットは、接頭辞が sc:// の値として表示されます。たとえば、sc://my.endpoint.net となります。

  5. [Show condition data] をクリックして、条件に関する過去 1 時間分のデータを表示します。
    エラー率がアラート条件のしきい値を超過している場合、グラフのエラー率が赤色で表示されます。
    条件データの表示

    [Hide condition data] をクリックしてデータを非表示にします。

  6. [+ Add Condition] をクリックして条件を追加し、ステップ 4 と 5 を繰り返します。

    : 複数の条件を指定した場合、すべての条件が満たされたときにアラートがトリガーされます。

  7. 構成したアラート条件に基づいてカスタム レポートを作成する場合は、[Create an API analytics reports based on alert conditions] をクリックします。このオプションは、組織管理者でない場合はグレー表示されます。

    詳細については、アラートからカスタム レポートを作成するをご覧ください。

    : カスタム レポートを管理するで説明されているように、アラートを保存した後にカスタム レポートを変更できます。

  8. [+ Add Notification] をクリックして、アラート通知を追加します。
    通知の詳細 説明
    チャネル 使用する通知チャネルを選択し、送信先を指定します(メール、Slack、PagerDuty、または Webhook)。
    送信先 選択したチャネルタイプに基づいて次の送信先を指定します。
    • メール - メールアドレス(joe@company.com など)
    • Slack - Slack チャネル URL(https://hooks.slack.com/services/T00000000/B00000000/XXXXX など)
    • PagerDuty - PagerDuty コード(abcd1234efgh56789 など)
    • Webhook - Webhook URL(https://apigee.com/test-webhook など)

      : 通知ごとに 1 つの送信先のみ指定できます。同じチャネルタイプに対して複数の送信先を指定するには、通知を追加します。

  9. 通知を追加するには、ステップ 8 を繰り返します。
  10. 通知を追加した場合は、以下の項目を設定します。

    項目 説明
    Playbook (オプション)自由形式のテキスト フィールドで、アラートが発生したときにそのアラートを解決するために行う推奨処置の短い説明を入力します。ベスト プラクティスが掲載されている社内 wiki やコミュニティ ページのリンクも指定できます。このフィールドの情報は、通知に追加されます。このフィールドの内容は 1,500 文字以下でなければなりません。
    Throttle 通知を送信する頻度。プルダウン リストから値を選択します。有効な値は、15 分、30 分、1 時間です。
  11. [Save] をクリックします。

アラートからカスタム レポートを作成する

アラートからカスタム レポートを作成するには:

  1. アラートと通知を追加するの説明に従い、アラートを作成するときに [Create an API analytics reports based on alert conditions] をクリックします。

    アラートを保存した後、UI に次のメッセージが表示されます。

    Alert alertName saved successfully. To customize the report generated, click here.

    このメッセージをクリックすると、新しいタブでレポートが開きます。関連するフィールドにはデータがすでに入力されています。デフォルトでは、カスタム レポートの名前は API Monitoring Generated alertName です。

  2. 必要に応じてカスタム レポートを編集し、[Save] をクリックします。
  3. リストのレポートの名前をクリックし、カスタム レポートを実行します。

アラート条件に基づいて作成されたカスタム レポートを管理するには:

  1. Edge UI で [Analyze] > [Alert Rules] をクリックします。
  2. [Settings] タブをクリックします。
  3. [Reports] 列で、アラートに関連付けられている管理対象のカスタム レポートをクリックします。

    カスタム レポート ページが新しいタブに表示されます。[Reports] 列が空白の場合、カスタム レポートはまだ作成されていません。必要に応じて、アラートを編集してカスタム レポートを追加できます。

  4. 必要に応じてカスタム レポートを編集し、[Save] をクリックします。
  5. リストのレポートの名前をクリックし、カスタム レポートを実行します。

アラートを有効または無効にする

アラートを有効または無効にするには:

  1. Edge UI で [Analyze] > [Alert Rules] をクリックします。
  2. 有効または無効にするアラートに関連する [Status] 列で切り替えボタンをクリックします。

アラートを編集する

アラートを編集するには:

  1. Edge UI で [Analyze] > [Alert Rules] をクリックします。
  2. 編集するアラートの名前をクリックします。
  3. 必要に応じてアラートを編集します。
  4. [Save] をクリックします。

アラートを削除する

アラートを削除するには:

  1. Edge UI で [Analyze] > [Alert Rules] をクリックします。
  2. 削除するアラートにカーソルを合わせ、アクション メニューの をクリックします。

Apigee では、一般的な問題について通知する次のアラートを設定することを推奨しています。

推奨されるアラート UI の例 API の例
すべて / いずれかの API の 5xx ステータス コード API プロキシの 5xx ステータス コードのアラートを設定する API を使用して、API プロキシの 5xx ステータス コード アラートを設定する
API プロキシの P95 レイテンシ API プロキシの P95 レイテンシのアラートを設定する API を使用して、API プロキシの P95 レイテンシのアラートを設定する
すべての API プロキシの 404(アプリケーションが見つかりません)ステータス コード すべての API プロキシの 404(アプリケーションが見つかりません)ステータス コードのアラートを設定する API を使用して、すべての API プロキシの 404(アプリケーションが見つかりません)ステータス コードのアラートを設定する
API の API プロキシ カウント API の API プロキシ カウントのアラートを設定する API を使用して、API の API プロキシ カウントのアラートを設定する
ターゲット サービスのエラー率 ターゲット サービスのエラー率のアラートを設定する API を使用して、ターゲット サービスのエラー率のアラートを設定する
ServiceCallout ポリシーのエラー率 ServiceCallout ポリシーのエラー率のアラートを設定する API を使用して、ServiceCallout ポリシーのエラー率のアラートを設定する
以下のような特定の障害コード:
  • API プロトコル エラー(通常は 4xx)
    • UI: [API Protocol] > [All]
    • API:
      "faultCodeCategory":"API Protocol",
      "faultCodeSubCategory":"ALL"
  • キャッチオール HTTP エラー
    • UI: [Gateway] > [Other] > [Gateway HTTPErrorResponseCode]
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Others",
      "faultCodeName": "Gateway HTTPErrorResponseCode"
  • Java サービスのコールアウト実行エラー
    • UI: [Execution Policy] > [Java Callout] > [JavaCallout ExecutionFailed]
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Java Callout",
      "faultCodeName": "JavaCallout ExecutionFailed"
  • Node スクリプトの実行エラー
    • UI: [Execution Policy] > [Node Script] > [NodeScript ExecutionError]
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Node Script",
      "faultCodeName": "NodeScript ExecutionError"
  • 割り当て量の違反
    • UI: [Traffic Mgmt Policy] > [Quota] > [Quota Violation]
    • API:
      "faultCodeCategory": "Traffic Mgmt Policy",
      "faultCodeSubCategory": "Quota",
      "faultCodeName": "Quota Violation"
  • セキュリティ ポリシーのエラー
    • UI: [Security policy] > [Any]
    • API:
      "faultCodeCategory": "Security Policy",
      "faultCodeName": "Any"
  • Sense のエラー(該当する場合)
    • UI: [Sense] > [Sense] > [Sense RaiseFault]
    • API:
      "faultCodeCategory": "Sense",
      "faultCodeSubCategory": "Sense",
      "faultCodeName": "Sense RaiseFault"
  • サービスのコールアウト実行エラー
    • UI: [Execution Policy] > [Service Callout] > [ServiceCallout ExecutionFailed]
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Service Callout",
      "faultCodeName": "ServiceCallout ExecutionFailed"
  • ターゲットのエラー
    • UI: [Gateway] > [Target] > [Gateway TimeoutWithTargetOrCallout]
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Target",
      "faultCodeName": "Gateway TimeoutWithTargetOrCallout"
  • ターゲットのエラー、アクティブなターゲットなし
    • UI: [Gateway] > [Target] > [Gateway TargetServerConfiguredInLoadBalancersIsDown]
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Target",
      "faultCodeName": "Gateway TargetServerConfiguredInLoadBalancerIsDown
  • ターゲットのエラー、予期しない EOF
    • UI: [Gateway] > [Target] > [Gateway UnexpectedEOFAtTarget]
    • API:
      "faultCodeCategory": "Gateway", "faultCodeSubCategory": "Target", "faultCodeName" : "Gateway UnexpectedEOFAtTarget"
  • 仮想ホストのエラー
    • UI: [Gateway] > [Virtual Host] > [VirtualHost InvalidKeystoreOrTrustStore]
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Virtual Host",
      "faultCodeName": "VirtualHost InvalidKeystoreOrTrustStore"
ポリシーの障害コードのアラートを設定する API を使用してポリシーの障害コードのアラートを設定する

API プロキシの 5xx ステータス コードのアラートを設定する

次の例は、UI を使用してアラートを設定する方法を示しています。このアラートは、hotels API プロキシのステータス コード 5xx の 1 秒あたりのトランザクション数(TPS)が、いずれかのリージョンで 10 分間に 100 を超えた場合にトリガーされます。詳細については、アラートと通知を追加するをご覧ください。

API の使用について詳しくは、API を使用してプロキシの 5xx ステータス コードのアラートを設定するをご覧ください。

API プロキシの P95 レイテンシのアラートを設定する

次の例は、UI を使用してアラートを設定する方法を示しています。このアラートは、95 パーセンタイルのレスポンス レイテンシの合計が、いずれかのリージョンの hotels API プロキシで 5 分間に 100 ms を超えた場合にトリガーされます。詳細については、アラートと通知を追加するをご覧ください。

API の使用について詳しくは、API を使用して API プロキシの P95 レイテンシのアラートを設定するをご覧ください。

すべての API プロキシの 404(アプリケーションが見つかりません)のアラートを設定する

次の例は、UI を使用してアラートを設定する方法を示しています。このアラートは、すべての API プロキシのステータス コード 404 のパーセンテージが、いずれかのリージョンで 5 分間に 5% を超えた場合にトリガーされます。詳細については、アラートと通知を追加するをご覧ください。

API の使用について詳しくは、API を使用してすべての API プロキシの 404(アプリケーションが見つかりません)のアラートを設定するをご覧ください。

API の API プロキシ カウントのアラートを設定する

次の例は、UI を使用してアラートを設定する方法を示しています。このアラートは、API の 5xx コードのカウントが、いずれかのリージョンで 5 分間に 200 を超えた場合にトリガーされます。この例では、API は、クリティカルな API プロキシのコレクションにキャプチャされます。詳細については、次をご覧ください。

API の使用の詳細は、API を使用して、API の API プロキシ カウントのアラートを設定するをご覧ください。

ターゲット サービスのエラー率のアラートを設定する

次の例は、UI を使用してアラートを設定する方法を示しています。このアラートは、ターゲット サービスのコード 500 の発生率が、いずれかのリージョンで 1 時間に 10% を超えた場合にトリガーされます。この例では、ターゲット サービスは、クリティカルなターゲットのコレクションにキャプチャされます。詳細については、次をご覧ください。

API の使用の詳細は、API を使用して、ターゲット サービスのエラー率のアラートを設定するをご覧ください。

ServiceCallout ポリシーのエラー率のアラートを設定する

次の例は、いずれかのリージョンで ServiceCallout ポリシーによって指定されたサービスにおいて、コード 500 の発生率が 1 時間で 10% を超えるとトリガーされるアラートを UI を使用して設定する方法を示しています。詳細については、次をご覧ください。

API の使用の詳細は、API を使用して、Service Callout ポリシーのエラー率のアラートを設定するをご覧ください。

ポリシーの障害コードのアラートを設定する

次の例は、すべての API の VerifyJWT ポリシーJWT AlgorithmMismatch 障害コードのカウントが 10 分間で 5 を超えた場合にトリガーされるアラートを UI を使用して設定する方法を示しています。詳細については、次をご覧ください。

API の使用の詳細は、API を使用してポリシーの障害コードのアラートを設定するを参照してください。