使用異常偵測 API

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

用於建立及管理異常快訊和收集異常指標指標的 API,大多與固定快訊相同。下列 Alert API 的運作方式與固定和異常快訊有關:

不過,部分 API 的額外屬性可用於支援異常快訊,包括:

  • 接收快訊:列出所有快訊,包括已修正和異常狀況快訊。
  • 建立快訊:建立已修正或異常情況的快訊。
  • 更新快訊:更新已修正或異常的快訊定義。

設定 $ACCESS_TOKEN

下方顯示的所有 API 呼叫都會透過名為 $ACCESS_TOKEN 的環境變數傳送憑證。 按照下列說明將 $ACCESS_TOKEN 設為 OAuth 2.0 存取權杖 取得 OAuth 2.0 存取權杖。 如要瞭解這些範例中使用的 cURL 選項,請參閱 使用 cURL

取得快訊

根據預設,「取得快訊」 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
    • 不支援 durationSecondscomparator 屬性。
  • conditions 陣列的 dimensions 元素中:

    • 您必須將 proxy 屬性的值設為 ALL
    • statusCode 屬性僅支援 4xx, 503, 504, and 5xx 的值。
    • developerAppcollectionfaultCodeCategory、 不支援 faultCodeSubCategoryfaultCodeName 屬性。
  • reportEnabled 屬性不支援異常狀況快訊。

下列 API 呼叫範例會建立在 5xx 狀態碼時觸發的異常快訊 在所有區域的實際工作環境中,所有 API Proxy 的速率都是中等。通知 快訊觸發時,會傳送至指定的電子郵件地址:

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
    }'

使用事件 API 搭配異常狀況

使用「/metrics/events」 取得 API,取得指定時間間隔的機構中所有事件。事件清單包括 由 Edge 偵測到的異常狀況以及所有觸發的快訊。快訊可能包含固定快訊和異常狀況快訊。

根據預設,API 會傳回前一小時的所有事件。使用 fromto 查詢參數,用於指定不同的時間長度。fromto 查詢參數值,用於指定不同的時間長度。

舉例來說,下列 API 呼叫會傳回 myorg 機構中的所有事件 過去 12 小時內的資料

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

按照下列說明將 $ACCESS_TOKEN 設為 OAuth 2.0 存取權杖 取得 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 按照指定類型篩選事件:alertanomaly。 使用逗號分隔清單指定多個值。 所有類型