異常検出 API の使用

現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

異常アラートの作成や管理、および異常指標の収集に使用するほとんどの API は、固定アラートで使用するものと同じです。次のアラート API は、固定アラートと異常アラートの両方で同じように機能します。

ただし、一部の API には異常アラートをサポートする次のような追加のプロパティがあります。

$ACCESS_TOKEN の設定

以下に示されるすべての API 呼び出しでは、$ACCESS_TOKEN という環境変数に認証情報が渡されます。OAuth 2.0 アクセス トークンの取得の説明に従って、$ACCESS_TOKEN を OAuth 2.0 アクセス トークンに設定します。これらの例で使用されている cURL オプションの詳細については、cURL を使用するをご覧ください。

すべてのアラートを取得する

デフォルトでは、Get alerts API は、定義されたすべてのアラートに関する情報を返します。この API でクエリ パラメータを取得して、結果をフィルタできるようになりました。

  • enabled - true が、有効なアラートのみを返すよう指定した場合。デフォルト値は false です。
  • alertType - 返されるアラートの種類を指定します。指定できる値は runtime(デフォルト値の cert)です。
  • alertSubType - 返されるアラートのサブタイプを指定します。デフォルト値は未設定です。この場合、すべてのアラートのサブタイプが返されます。異常アラートを返すには、anomaly を指定します。

たとえば、次の API 呼び出しを使用すると、myorg という名前の組織に対して有効なアラートのみが返されます。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

次の呼び出しでは、有効 / 無効を問わず異常アラートのみが返されます。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

異常アラートを作成または更新する

異常アラートを作成または更新するには、固定アラートの現在のものと同じ API を使用します。異常アラートを作成または更新するための API 呼び出しの本文は、固定アラートの場合と同じですが、次の点が異なります。

  • アラートが異常アラートであることを指定するには、新しく以下のプロパティを追加する必要があります。

    "alertType": "runtime"
    "alertSubType": "anomaly"

    これらのプロパティのデフォルト値は次のとおりです。

    "alertType": "runtime"
    "alertSubType": "fixed"
  • conditions 配列内:

    • metrics プロパティは、次の値のみを受け取ります。

      • count - HTTP エラー数に関するアラートを生成します。
      • totalLatency - レイテンシのアラートを生成します。
    • threshold プロパティでは数値ではなく文字列を指定します。サポートされている値には、slightmoderatesevere があります。
    • durationSeconds プロパティと comparator プロパティはサポートされていません。
  • conditions 配列の dimensions 要素:

    • proxy プロパティの値を ALL に設定する必要があります。
    • statusCode プロパティは 4xx, 503, 504, and 5xx の値のみをサポートしています。
    • developerAppcollectionfaultCodeCategoryfaultCodeSubCategoryfaultCodeName プロパティはサポートされていません。
  • reportEnabled プロパティは、異常アラートではサポートされていません。

次の API 呼び出しの例では、本番環境の本番環境内のすべての API プロキシで、いずれかのリージョンの 5xx ステータス コードが発生した頻度が中程度の場合にトリガーされる異常アラートを作成します。アラートがトリガーされると、指定したメールアドレスに通知が送信されます。

curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
 -X POST \
 -H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -d '{
     "organization":"myorg",
     "name":"5xx Anomaly Alert",
     "description":"My 5xx alert",
     "environment":"prod",
     "enabled":true,
     "alertType": "runtime",
     "alertSubType": "anomaly",
     "conditions":[
     {
        "description":"",
        "dimensions":{
            "org":"myorg",
            "env":"prod",
            "proxy":"ALL",
            "region":"ANY",
            "statusCode":"5xx"
        },
        "metric":"count",
        "threshold": "moderate"
     }
     ],
     "notifications":[{
         "channel":"email",
         "destination":"ops@acme.com"
     }],
     "playbook":"http://acme.com/myplaybook.html",
     "throttleIntervalSeconds":3600
    }'

異常を伴う Events API を使用する

/metrics/events API を使用して、指定した時間間隔で組織内のすべてのイベントを取得します。イベントのリストには、Edge で検出された異常とトリガーされたアラートが含まれます。アラートには、固定アラートと異常アラートの両方を含めることができます。

デフォルトでは、API は過去 1 時間のすべてのイベントを返します。別の期間を指定するには、from および to クエリ パラメータを使用します。異なる所要時間を指定するための from および to クエリ パラメータ値。

たとえば、次の API 呼び出しでは、組織 myorg の過去 12 時間のすべてのイベントが返されます。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

OAuth 2.0 アクセス トークンの取得の説明に従って、$ACCESS_TOKEN を OAuth 2.0 アクセス トークンに設定します。この例で使用されている cURL オプションについては、cURL を使用するをご覧ください。

次の呼び出しは、過去 24 時間に発生した中程度のしきい値を持つすべての異常なイベントを返します。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

この API に必要なのは、org クエリ パラメータのみです。/metrics/events の API ドキュメントに記載されているクエリ パラメータに加え、この API は異常検出をサポートする次のオプションをサポートしています。

名前 説明 デフォルト
threshold

指定したしきい値(slightmoderatesevere)でイベントをフィルタします。

type=anomaly を設定した場合にのみ許可されます。

すべての重大度
type 指定したタイプ(alert または anomaly)でイベントをフィルタします。複数の値をカンマ区切りのリストとして指定します。 すべての種類